您的位置:首页 > 其它

RS485通信字符串数据接收处理的问题

2017-12-02 13:15 369 查看

RS485通信字符串数据接收处理的问题

前段时间用51单片机写了一个步进电机的控制程序,想模仿一下云台的运行,但是在对通过485通信接收到上位机传来的数据进行分析时,发生了一个比较智障的小插曲,所以特地把它记下来,时时警醒自己这个菜鸡~~~

RS485通信程序参考了金沙滩工作室宋雪峰老师的《手把手教你单片机》中的例程。设置接收字节数为8位,粗糙的从接收数组中提取数据给步进电机的各种状态量进行初始化

void UartDrive()
{
unsigned char len;
unsigned char pdata buf[8];

if(flagFame)
{
flagFame=0;
recTimes=1;
len=UartRead(buf,sizeof(buf));
UartWrite(buf,len);
SFLAG=buf[0]-48;
recNum=buf[1]-48;
Speed_Levle=buf[2]-48;
}
}


其中如

Speed_Levle=buf[2]-48


将上位机发来的ASCALL码值转化对应的数值,这样后面处理会匹配了。

if(recNum==0 || Speed_Levle==0);


当然,转化为16进制数会方便一点,或者用单引号,如 ‘1’。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  单片机 通信 数据
相关文章推荐