小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
楼主: liuviking

51单片机版WIFI小车下位机程序(通信协议版)

  [复制链接]
 楼主| 发表于 2013-2-3 19:19:15 | 显示全部楼层
zwqatzjg 发表于 2013-2-3 18:35
串口中断接收部分,程序不严谨,包括五位数据的程序,接收部分,接收数组是五个二进制数,如果,中间因误信 ...

是这样的,所以串口接收部分要参考论坛驱动板源码的串口接收算法,重新改写。
回复 支持 反对

使用道具 举报

发表于 2013-2-3 22:50:53 | 显示全部楼层
本帖最后由 zwqatzjg 于 2013-2-3 22:53 编辑

void Com_Int(void) interrupt 4
{
uchar temp;
ES=0; //关串口中断
RI=0; //软件清除接收中断

temp=SBUF;

if(temp==0xff)
{
        flag=1;(0xff标志)
}

tempdatetable[0]=tempdatetable[1];
tempdatetable[1]=tempdatetable[2];
tempdatetable[2]=tempdatetable[3];
tempdatetable[3]=tempdatetable[4];
tempdatetable[4]=temp;

if(tempdatetable[0]==0xff&&flag)
{
        CommandDatatable[0]=Tempdatatable[0];
        CommandDatatable[1]=Tempdatatable[1];
        CommandDatatable[2]=Tempdatatable[2];
        CommandDatatable[3]=Tempdatatable[3];
        CommandDatatable[4]=Tempdatatable[4];

}
flag=0;


ES=1;//开串口中断


}


这样接收组包的程序是否更简单,更容易理解呢?但也许存在什么问题,版主你看看有没有问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-3 23:05:55 | 显示全部楼层
zwqatzjg 发表于 2013-2-3 22:50
void Com_Int(void) interrupt 4
{
uchar temp;

这种组包,如果发下来的是FF000100FF这个位数错误的包,然后再发一个FF0001FF这个正确的包,就会变成解析不对了。
应该再搞一个计数器,计满4位后清零,不然等于队列中还有残余的包头或包尾数据存在。
回复 支持 反对

使用道具 举报

发表于 2013-2-3 23:20:18 | 显示全部楼层
不明白,感觉没影响啊?初始化的时候commanddatetable=ff000000ff   ,如果上位机发过来的都是5位数据,不管前面的数据是什么,都不影响上位机发来的连续5位数据,都被顶掉了呀。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-3 23:54:42 | 显示全部楼层
zwqatzjg 发表于 2013-2-3 23:20
不明白,感觉没影响啊?初始化的时候commanddatetable=ff000000ff   ,如果上位机发过来的都是5位数据,不管 ...

如果第一次发过来6位数据,第二次发过来5位正确数据,那么会出现什么情况呢?
回复 支持 反对

使用道具 举报

发表于 2013-2-4 07:12:42 | 显示全部楼层
如果先收到FF0000,0100FF 再收到FF000100FF,当先收到6位数据前五位时,因为包尾不是0xFF,所以临时包不会被写命令包去,当接到到第六位时,因首位变成了00,命令包也不会被赋值,当接收第二个五位数据时,接收到第四位时,临时包是FFFF000100包尾也不是FF,也不会被执行。命令时排着队过去的,当接受完第二个五位数时,临时包才会变成FF000100FF包头包尾触发写入命令包。

如果要出错,也只有出现FFXXYYZZFF的命令被写入时才会出现误信号。单独插入任意XX,这样的临时包都会被忽略
回复 支持 反对

使用道具 举报

发表于 2013-2-4 11:01:16 | 显示全部楼层
经测试,这个接收代码还可以,小车运行良好
回复 支持 反对

使用道具 举报

发表于 2013-3-26 21:11:57 | 显示全部楼层
请问下楼主那上面的*****也是代码么!需要也下载到单片机里么!刚接触不懂!呵呵
回复 支持 反对

使用道具 举报

发表于 2013-4-6 13:45:46 | 显示全部楼层
好动动,必须顶{:3_41:}
回复 支持 反对

使用道具 举报

发表于 2013-4-6 13:47:02 | 显示全部楼层
泰州搜宝 发表于 2012-8-24 08:03
实在是看不懂,就是想找个能直接刷到单片机里面控制的程序。

直接刷,你还能学习单片机了

不如直接去买个遥控车玩
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2022-7-7 06:29 , Processed in 1.118399 second(s), 16 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表