关于定时A与串口二者应用的问题,求大神帮忙

2019-03-24 14:54发布

我想做的是定时器A每两秒产生一次中断,然后在中断服务程序中用串口发送两个字节的数据,但是现在只能实现发送一个字节的数据,如果改为发送两个字节的数据,就会在发送第二个字节的数据时,表示上一字节发送完成的标志位一直是发送未完成,导致卡在等待第一个字节发送完的语句,请问,这是为什么呢?
定时器A的中断服务程序的长度与时间有什么要求嘛?
我定时器A设定的是采用ACLK,32768HZ,工作在连续计数模式,溢出产生中断~
附部分程序:
#pragma vector = TIMERA1_VECTOR
  __interrupt void TIMER_A (void)
  {
    switch (TAIV)
    {
      case 2: break;
      case 4: break;
      case 10:
      {
        switch (TANUM)
        {
          case 0:UART_PutChar('S');TANUM++;break;
          case 1:UART_PutChar('B');TANUM++;break;
          case 2:UART_PutChar('E');TANUM=0;break;
        }
      }
    }
  }
其中,如果UART_PutChar('S');改为连续的两句,就会卡住~求好心人帮忙啊~~~·~~ 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
woodwoodlyn
1楼-- · 2019-03-24 19:30
< 建议中断里面不要做过多的事情。
可以在中断里面跳出中断,设置发送2个字节的标志位
在程序外发送2个字节后再次进入睡眠模式

或者修改UART_PutChar('B'); 这个函数

一周热门 更多>

相关问题

    相关文章