51单片机串口通信问题

[复制链接]
2405|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

粉丝
快速回复 在线客服 返回列表 返回顶部