昨天我调试spi flash烧录功能,死活无法触发启动信号。
看了Programmer\LuaLib文件结果发现了如下函数
[Lua] 纯文本查看 复制代码 --读START引脚电平
function ReadStartLevel(void)
local x = 1
local v1
if (MANUFACTURER == "SPI-Flash") then --SPI转接板没做启动按钮
return 1
end
--if MACHINE_INTERFACE > 0 then V2.1.1 取消机台使能就可以启动
if (SWD_BOARD == 0) then
if (TVCC_VOLT == nil) then TVCC_VOLT = 3.3 end
if (read_analog(4) < TVCC_VOLT * 0.6) then
x = 1
else
if (MULTI_MODE == 0) then --单路
x = gpio_read(7) --D7 = START信号(内带上拉)
else --多路模式
x = gpio_read(1) --D1 = START信号
end
end
elseif (SWD_BOARD == 1) then -- RS232机台接口板,通过串口指令判断
local re
--发串口指令读
--modbus_read_di(port, timeout, addr485, regaddr, regnum)
re,x = modbus_read_di(1, 20, 1, 1, 1) --读X1寄存器 START
if (re == 0) then
if (x == 0) then
x = 1
else
x = 0
end
else
x = 1
end
elseif (SWD_BOARD == 2) then --1拖16转接板,通过CH1电压检测启动
v1 = read_analog(0) --CH1电压 低表示启动 3.3V恢复
if (v1 < 1.0) then
x = 0
else
x = 1
end
else --未知
x = 1
end
return x
end
其中, 如下代码永远返回true,而注释提示SPI转接板没做启动按钮
[Lua] 纯文本查看 复制代码 if (MANUFACTURER == "SPI-Flash") then --SPI转接板没做启动按钮
return 1
end
于是我在高级脚本里重载了这个函数,去除了上边的逻辑,短接d7和gnd成功触发启动信号。
但是我看了看手上其他转接板也没有启动按钮啊,为什么要有上边的逻辑啊。建议库文件调整一下。
|