打印

不知道怎样去写接收一个字符串的代码

[复制链接]
367|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhany|  楼主 | 2015-9-11 20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wuhany|  楼主 | 2015-9-11 20:52 | 只看该作者
而且也忘了咋判断它是否接收完毕

使用特权

评论回复
板凳
zhaoxqi| | 2015-9-11 20:52 | 只看该作者
没看出你本意思。。。

使用特权

评论回复
地板
wuhany|  楼主 | 2015-9-11 20:53 | 只看该作者
是要通过串口发送一个串到PC机,然后PC机正确接收后会返回“OK”两个字符。

使用特权

评论回复
5
huangchui| | 2015-9-11 20:53 | 只看该作者
还是接收一个确认字符比较省事,两个麻烦点
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
       {
        }
}

使用特权

评论回复
6
wuhany|  楼主 | 2015-9-11 20:53 | 只看该作者
哦~~~

使用特权

评论回复
7
heweibig| | 2015-9-11 20:53 | 只看该作者
貌似RI得手工清除吧,上面的程序还要清除一下下RI

使用特权

评论回复
8
dengdc| | 2015-9-11 20:54 | 只看该作者
将中断标志位清除一下  看看效果明显不

使用特权

评论回复
9
yszong| | 2015-9-11 20:54 | 只看该作者
这样的串口通信函数应该不少

使用特权

评论回复
10
jlyuan| | 2015-9-11 20:54 | 只看该作者

中断程序 中尽量不过多执行代码,串口通信考虑到速度及资源还是用中断做,用串口工具调试试一下!

使用特权

评论回复
11
wuhany|  楼主 | 2015-9-11 20:54 | 只看该作者
哦,好的,明白了,多谢
还是这儿的高手多啊

使用特权

评论回复
12
vivilzb1985| | 2015-9-11 21:51 | 只看该作者
接收字符串数据还是跟单个接收数据一样的,只是在接受的过程中加上接收数据结束的机制的。

使用特权

评论回复
13
vivilzb1985| | 2015-9-11 21:52 | 只看该作者
一般的字符串结尾都是OD OA结尾的,,接收到该数据字符的就表示本次接受完成了。

使用特权

评论回复
14
vivilzb1985| | 2015-9-11 21:53 | 只看该作者
当然还需要加上个最长接收时间的,不然系统会一直陷入接收的循环中。

使用特权

评论回复
15
shenmu2012| | 2015-9-12 15:51 | 只看该作者
楼上意见很好的,,接收字符串数据的也不是很难的哦。

使用特权

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

本版积分规则

879

主题

10435

帖子

4

粉丝