恭喜,你发布的帖子
发布于 2022-07-25 07:29:43
4楼
情况:我用两个1200为了模拟1200和第三方设备TCP通信,用的是TSEND_C和TRCV_C两个指令。
主站发送区为20个Char,从站接收区为40个Char,这是编程之初不小心造成数据区长度不一致的
后来发现:从站反馈一次信息,主站TRCV_C接收完成Done脚会发出2个脉冲,
然后改变主站接收区长度,发现主站TRCV_C接收完成Done发出的脉冲次数,为从站发送区长度 (除以)主站接收区的长度。
因为我有很多指令要发送,每发一次信息,从站反馈一次信息,主站根据反馈信息接收完成Done,执行下一步。
结果由于主站Done发出多次完成信号,导致程序不能正常轮训。网上有人说TRCV_C有个ADHOC引脚为1时,可以不同数据长度接收,我把这个引脚为1,为0,都不能改变这个现状。
问题:有老司机知道除了让数据区长度一样的方法外,还有其他办法吗?
我这两天测试通信,只知道第三方用TCP、端口号和支持SCPI指令,收发的数据长度不定。每次开机只接收一次,再不接收第二次数据,各种办法试了N多次,最后只能,每接收完一次数据结束后(收到结束符),COM_RST置位一次。才可以再次接收数据。
请填写推广理由:
分享
只看
楼主