[MCU] 接收一个字符串

[复制链接]
2200|44
 楼主| wuhany 发表于 2020-2-9 12:30 | 显示全部楼层 |阅读模式
最近我在弄一个项目,其中需要一个串口通信的,但是我写的程序不用中断接收的时候可以接收字符串,但用中断后,我发觉自己不知道怎样去写接收一个字符串的代码。
 楼主| wuhany 发表于 2020-2-9 12:34 | 显示全部楼层
而且也忘了咋判断它是否接收完毕
zhaoxqi 发表于 2020-2-9 12:37 | 显示全部楼层
没看出你本意思。。。
 楼主| wuhany 发表于 2020-2-9 12:40 | 显示全部楼层
是要通过串口发送一个串到PC机,然后PC机正确接收后会返回“OK”两个字符。
huangchui 发表于 2020-2-9 12:44 | 显示全部楼层
还是接收一个确认字符比较省事,两个麻烦点
volatile sbit OK = 0;
void Receive(void)interrupt xx using 1
{
      static sbit i = 0;
      if(RI)
      {
            if(!i)
            {
                  if(SBUF == 'O')i = 1;
             }
             else
            {
                  if(SBUF == 'K') OK = 1;//OK由主程序清零
                   i = 0;  //即使错了也置零
             }
       else
       {
        }
}
 楼主| wuhany 发表于 2020-2-9 12:49 | 显示全部楼层
heweibig 发表于 2020-2-9 12:55 | 显示全部楼层
貌似RI得手工清除吧,上面的程序还要清除一下下RI
heweibig 发表于 2020-2-9 12:57 | 显示全部楼层
将中断标志位清除一下  看看效果明显不
yszong 发表于 2020-2-9 13:01 | 显示全部楼层
这样的串口通信函数应该不少
jlyuan 发表于 2020-2-9 13:04 | 显示全部楼层
中断程序 中尽量不过多执行代码,串口通信考虑到速度及资源还是用中断做,用串口工具调试试一下!
 楼主| wuhany 发表于 2020-2-9 13:08 | 显示全部楼层

哦,好的,明白了,多谢
还是这儿的高手多啊
zhaoxqi 发表于 2020-2-9 13:08 | 显示全部楼层
接收字符串数据还是跟单个接收数据一样的,只是在接受的过程中加上接收数据结束的机制的。
zhenykun 发表于 2020-2-9 13:14 | 显示全部楼层
一般的字符串结尾都是OD OA结尾的,,接收到该数据字符的就表示本次接受完成了。
yszong 发表于 2020-2-9 13:16 | 显示全部楼层

当然还需要加上个最长接收时间的,不然系统会一直陷入接收的循环中。
heweibig 发表于 2020-2-9 13:19 | 显示全部楼层
楼上意见很好的,,接收字符串数据的也不是很难的哦。
jiaxw 发表于 2020-2-9 13:21 | 显示全部楼层

ulong i = a+b;
printf("%d",i);这样就得了
huangchui 发表于 2020-2-9 13:27 | 显示全部楼层
加法确实如上所述,不过加法器编程真是上面的那么简单吗
 楼主| wuhany 发表于 2020-2-9 13:30 | 显示全部楼层

要设计一个加法器?编程应该不是难点吧
huangchui 发表于 2020-2-9 13:33 | 显示全部楼层

http://www.doc88.com/p-67516635171.html
看你的设计要求是不是和这个有点类似
jiahy 发表于 2020-2-9 13:37 | 显示全部楼层

你是要汇编还是什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

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