|
-- 加载配置RW中存储的COM配置参数,来初始化串口
set_uint32(VT_LW,system_LW_addr.BaudRateAddr,19200) --第一次上电无用户设置数据时,初始化串口
set_uint16(VT_LW,system_LW_addr.ComDataBit,1) --数据位:8bit
set_uint16(VT_LW,system_LW_addr.ComParityBit,2) --校验位:EVEN偶校验
set_uint16(VT_LW,system_LW_addr.ComStopBit,0) --停止位:1bit
set_uint16(VT_LW,system_LW_addr.ComSetAddr,ConstComSetValue) --解锁COM口
-- 轮巡指令
select_slave(0)--选择第1个从站
start_read(1,VT_4x, 0x040A, 1)--读取绝缘监测仪温度状态
start_read(2,VT_4x, 0x03FC, 2)--读取绝缘监测仪绝缘值
start_read(3,VT_4x, 0x0408, 2)--读取绝缘监测仪负载状态
你好,上面是我放在on_init()中的代码,工程配置串口配置为19200-8-even-1,由于我有一个修改串口参数的要求,
修改后参数我放在RW中,以便断电保存,然后在上电初始化时进行配置
结果发现,在没有上面初始化加载串口配置的情况下,MODBUS是正常的,可以读取从机数据
但只要加上上述COM加载初始化参数代码后,就无法正常读取从机数据。
我用串口程序看
也就是上电后,第二条轮巡指令返回了一次正确结果,接着发码是正常继续的,但再没有回复
去掉上电加载串口参数那几行代码后,也就是不去修改MDOBUS串口参数情况下,上电收发一直正常
|
|