打印

430串口中断接收一个字符串

[复制链接]
3343|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
苍昊丹曦|  楼主 | 2013-4-17 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
////接收一个字符////
      char Getchar1()                 //////函数定义???返回值为char
      {  
        while ((IFG1&UTXIFG0)==0);
        return RXBUF0;
      }
     //////接收字符串   
  #pragma vector=USART0RX_VECTOR
  __interrupt void UART0_RX(void)
     {
        int i;
        i=0;
        do
         {
           if(i<30)
             gRecieveBuffer[i++]=Getchar1();
            
           else
            break;
              
         }while (gRecieveBuffer[i-1]!='\0');
   
      }
烦劳各位大神  接收一个字符串长度未知(小于30) 无结束标识符 gRecieveBuffer初始值全为‘\0’
  若现在接收一个长度为10的字符串 程序这样写可以不   是在中断里跑了10次还是 跑进中断10次??
该怎样写呢

相关帖子

沙发
angerbird| | 2013-4-17 18:27 | 只看该作者
楼主这样写也可以的,不过感觉挺复杂的,不应该在中断里面调用函数的

使用特权

评论回复
板凳
angerbird| | 2013-4-17 18:28 | 只看该作者
哦,再看了下的,你这样不对的,上边那个函数是查询方法的,下边有时利用的是中断方法的,然后又把查询法的放到接收中断里面的

使用特权

评论回复
评论
苍昊丹曦 2013-4-21 21:23 回复TA
好像在理 我再查下 谢谢 
地板
angerbird| | 2013-4-17 18:29 | 只看该作者
直接利用中断法,在中断里面直接读出RXBUF0的数据即可的

使用特权

评论回复
5
苍昊丹曦|  楼主 | 2013-4-17 19:48 | 只看该作者
谢谢 帮忙给改下吧  拯救小白:handshake

使用特权

评论回复
6
tianm| | 2013-4-19 00:23 | 只看该作者
中断执行要简单

使用特权

评论回复
7
u880| | 2013-4-19 19:51 | 只看该作者
按照ti的源码改吧

使用特权

评论回复
8
huigoushang| | 2013-4-19 20:17 | 只看该作者
木有看出来 汗啊

使用特权

评论回复
9
G21372| | 2013-4-19 20:41 | 只看该作者
说实话没有明白楼主的意思

使用特权

评论回复
10
苍昊丹曦|  楼主 | 2013-4-21 21:22 | 只看该作者
谢谢大家  虽然还是不会

使用特权

评论回复
11
pmp| | 2013-4-24 00:13 | 只看该作者
你要等待标志位吧。

使用特权

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

本版积分规则

1

主题

6

帖子

1

粉丝