打印

51单片机串口通信问题

[复制链接]
1751|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stcome|  楼主 | 2012-9-18 14:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好,
我最近想弄清51单片机关于字符串的收发,但折磨我一个星期,还没想通,请各位高手指点指点一下,我想要的程序是这样的, 上位机发送字符串后存起来与设定好的字符串作对比,对比完全一样后返回同一个字符串,并点亮一个小灯.不知道为什么,在接受字符串时老是不行,望各路好友发发程序让我去理解谢谢(我想把存字符串的数组或指针放在子程序,每次都不用清除旧数据,会不会更好些)

相关帖子

沙发
joyme| | 2012-9-18 17:17 | 只看该作者
全局变量:
BYTE    bStored[STRLEN] = {'a',b','e' ....};
BYTE    bCmpIndex = 0;

接受中断处理函数
BYTE   tmp;
tmp = SBUF;
if(tmp == bStored[bCmpIndex])
{
       bCmpIndex++;
       if(bCmpIndex  == STRLEN)
             sendstr(bStored);                   //发送字符串
}
else
       bCmpIndex = 0;                            //有不一样的,从头开始比较

使用特权

评论回复
板凳
joyme| | 2012-9-18 17:19 | 只看该作者
全局变量:
BYTE    bStored[STRLEN] = {'a',b','e' ....};
BYTE    bCmpIndex = 0;
BIT      bMatched = FALSE;

接受中断处理函数
BYTE   tmp;
tmp = SBUF;
if(tmp == bStored[bCmpIndex])
{
       bCmpIndex++;
       if(bCmpIndex  == STRLEN)
       {
               bMatched = TRUE;                   //设置匹配成功,以便调用发送字符串函数及点灯,处理完之后记得清楚此标志
     }
}
else
       bCmpIndex = 0;                            //有不一样的,从头开始比较

使用特权

评论回复
地板
stcome|  楼主 | 2012-9-18 17:27 | 只看该作者
JOYME
可发整个出来么,这样我不好理解,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

43

帖子

0

粉丝