2019-07-21 08:56发布
323232 发表于 2018-10-19 13:12 首先看看协议是否正确,看看有没有什么多发漏发的。 上一步确认好后,把单片机接到电脑上,打开串口助手 ...
Slogan 发表于 2018-10-19 09:42 while(1) {
Slogan 发表于 2018-10-19 16:39 while(1) {
245925587 发表于 2018-10-19 16:44 发整个工程出来吧
Slogan 发表于 2018-10-19 16:52 就是这个,在战舰的基础上改的
最多设置5个标签!
while(1)
{
rs485buf[0]=0X01;
rs485buf[1]=0X03;
rs485buf[2]=0X00;
rs485buf[3]=0X04;
rs485buf[4]=0X00;
rs485buf[5]=0X01;
rs485buf[6]=0XC5;
rs485buf[7]=0XCB;
RS485_Send_Data(rs485buf,8);
}
我现在以这样的格式发送指令,后面两个crc校验数据也是有的,但是变送器没有响应原因可能是什么?
modbus协议是发送完一帧数据 后,接收方在一个一定的时间内没有接收到数据,代表,一帧结束,发送的时候,不能一直发,发送完一帧,等待下,然后再发第二帧,发送完一帧,加个延时发第二帧
发整个工程出来吧
就是这个,在战舰的基础上改的
RS485_Send_Data(rs485buf,8);//·¢Ëí8¸ö×Ö½ú
delay_ms(500);
//这里加一个延时先测试下 ,如果可以,就改一下,用一定时器来判断一帧结束否,然后再主程序中发送一帧数据后,查询接收完成否,如果接收完成,就处理,如果在一定时间内没接收到,就重新发送一次;
如果一直测试都没有,用USB转485工具,电脑串口助手,看下单片机发送的数据正不正确,然后用这个USB转485工具连接传感器,用串口助手发送这个命令,看下传感器有没数据传回,一个一个去测试
RS485_Receive_Data(rs485buf,&key);
一周热门 更多>