首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

keil下通过uart中断接收串口数据,解决方案

2012-02-03 
keil下通过uart中断接收串口数据,急急急。。。keil下通过uart中断接收串口数据,急急急。。。程序运行的时候,通过

keil下通过uart中断接收串口数据,急急急。。。
 
  keil下通过uart中断接收串口数据,急急急。。。
  程序运行的时候,通过串口调试助手往串口发数据,下位机程序没有触发串口中断,应该怎么写哦,高手指点一下,最好有个实例。。。
  下面是我定义的uart0中断处理程序
 

C/C++ code
/***************************************************************************** 名称:IRQ_UART0()* 功能:串口UART0接收中断。* 入口参数:无* 出口参数:无****************************************************************************/void  IRQ_UART0(void) __irq{      uint8  i;      switch(U0IIR&0x0F)   {           case 0x04:           {//            for(i=0;i<8;i++)            while((U0LSR&0x01) == 1)               {                   insertQue(&buffer,U0RBR);  //将接收的数据存储在队列中               }           }           break;           case 0x0c:           {               while((U0LSR&0x01) == 1)               {                   insertQue(&buffer,U0RBR);               }           }           break;           default:           break;   }   VICVectAddr = 0x00;                  // 中断处理结束}        



[解决办法]
你这个应该是MDK的吧?没有进入串口中断,确定两个问题,一是软件:开中断了没有?中断向量设置对了没?是否有更高优先级的中断,经常性中断。二是硬件,232工作正常不?串口连接正常不?

其实没进入中断函数,那么你的中断函数里面实现什么,就都不用看了,进入了中断再说,呵呵
[解决办法]
这就看你是什么ARM了。像我现在用的cortexm3的话

startup.s 是用来设置中断向量表及其中断服务函数地址的。

中断向量地址和中断函数地址相关联了之后,再开串口中断,应该就能进入了,呵呵,具体的代码里面,我就帮不上忙了,呵呵!

[解决办法]
中断中尽量不要用到WHILE

热点排行