单片机连接一个基于485协议的土壤传感器,想要实现土壤数据(温湿度)的采集并在lcd上显示出来。我写的发送接收函数如下,发送数据可以在lcd上显示出来,但是传感器返回的数据不正确,哪位大神能帮忙看看问题到底出啊在哪里?
if(key==KEY0_PRES)//KEY0按下,发送一次数据
{
rs485buf[0]=0X02;
rs485buf[1]=0X03;
rs485buf[2]=0X00;
rs485buf[3]=0X00;
rs485buf[4]=0X00;
rs485buf[5]=0X02;
rs485buf[6]=0XC4;
rs485buf[7]=0X38;
RS485_Send_Data(rs485buf,8);//发送8个字节
for(i=0;i<8;i++)
{
LCD_ShowxNum(i*24,190,rs485buf[i],3,16,0X80); //显示数据
}
}
RS485_Receive_Data(rs485buf2,&key2);
for(i=0;i<key1;i++)
LCD_ShowxNum(i*24,240,rs485buf2[i],3,16,0X80); //显示接收数据
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
可能是软件,有可能是硬件,
根据你的物理过程来查。
比如物理过程是:主机发命令,传感器返回数据,
先看主机命令发出去没有,发得对不对,
然后看主机有没有收到,为什么没收到。
只能这么查,还有简洁的办法吗?!
有时候比这还“繁琐”。搞研发就是这样。
想简洁,基本都是蒙、撞大运,
一旦没有奏效,还得回头这么查,最后反而是这样更简洁。
一周热门 更多>