pursuing
发表于 2024-6-7 10:32:20
modbus很流行,值得学习{:4_174:}
victormore
发表于 2024-6-7 14:58:22
很实在 很常用,学习了
molo
发表于 2024-6-19 16:10:24
在学习modbus rtu,如果用WIFI模块做串口透传,把modbus rtu协议转换成modbus tcp,有没有大侠做过,说一下思路,谢谢!
lzz668
发表于 2024-7-5 23:17:34
STC单片机作主站该如何操作?
karmaing
发表于 2024-7-8 22:33:16
梁工,modbus例程里面有句代码看不懂,能否解释下:
if(MODBUS_CRC16(RX1_Buffer, RX1_cnt) == 0) //首先判断CRC16是否正确, 不正确则忽略, 不处理也不返回信息
比如MODBUS_CRC16(RX1_Buffer, RX1_cnt)=0xABCD,, 这个是怎么判断的?
感谢感谢
无问西东
发表于 2024-7-9 15:43:53
梁工 发表于 2024-5-24 10:27
从未出现过问题:
感谢梁工 费心了
梁工
发表于 2024-7-9 16:34:43
karmaing 发表于 2024-7-8 22:33
梁工,modbus例程里面有句代码看不懂,能否解释下:
if(MODBUS_CRC16(RX1_Buffer, RX1_cnt) == 0) //首先 ...
发送端将两个字节的CRC16放在最后发送,低字节在前,高字节在后(小端模式),则接收端将报文与CRC16一起做CRC16校验时,正确的话,结果将是0,如果非0,则有错误。
梁工
发表于 2024-7-9 16:50:29
lzz668 发表于 2024-7-5 23:17
STC单片机作主站该如何操作?
使用状态机或RTOS的一个任务,不断轮询各个从机,下面为逻辑语句:
比如有10个从机,地址为0x01~0x0A(1~10),读取10个寄存器(首地址0x1000),RTOS任务:
for(addr=1, i=0; i<10; i++, addr++) //
{
发送 addr 03 1000 000A CRCL CRCH;
TimeOut = 50;//限时50ms
while(TimeOut != 0)
{
TaskWait(1); //挂起1ms
if(从机有MODBUS数据返回)
{
处理数据, 标记此目标存在;
break; //结束等待
}
else if(--TimeOut == 0) //50ms超时,没有收到返回
{
标记此目标不存在;
break; //结束等待
}
}
}
梁工
发表于 2024-7-9 16:52:07
bh7ni 发表于 2024-6-4 15:42
请教梁工,串口1和串口2的字符串发送和接收都移植成功了,现在串口1需要发送接收hex,麻烦您给一下串口1发 ...
对于串口来说,都是HEX,每个字节都是0x00~0xff,接收方式一样的,没有区别。
wugqsh
发表于 2024-7-10 21:31:44
收藏学习了
页:
2
3
4
5
6
7
8
9
10
11
[12]
13
14