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

[复制链接]
3840|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
angerbird 发表于 2013-4-17 18:29 | 显示全部楼层
直接利用中断法,在中断里面直接读出RXBUF0的数据即可的
 楼主| 苍昊丹曦 发表于 2013-4-17 19:48 | 显示全部楼层
谢谢 帮忙给改下吧  拯救小白:handshake
tianm 发表于 2013-4-19 00:23 | 显示全部楼层
中断执行要简单
u880 发表于 2013-4-19 19:51 | 显示全部楼层
按照ti的源码改吧
huigoushang 发表于 2013-4-19 20:17 | 显示全部楼层
木有看出来 汗啊
G21372 发表于 2013-4-19 20:41 | 显示全部楼层
说实话没有明白楼主的意思
 楼主| 苍昊丹曦 发表于 2013-4-21 21:22 | 显示全部楼层
谢谢大家  虽然还是不会
pmp 发表于 2013-4-24 00:13 | 显示全部楼层
你要等待标志位吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

6

帖子

1

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