打印
[AVR单片机]

求解,串口进中断后单步可以出来,连续出不来。。。

[复制链接]
1645|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
changing753|  楼主 | 2017-2-13 19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
changing753|  楼主 | 2017-2-13 19:11 | 只看该作者
求解答,想不通啊,一次中断事件 感觉要进2次中断才可以。。。

使用特权

评论回复
板凳
changing753|  楼主 | 2017-2-14 14:00 | 只看该作者
求指点,求关注,求围观

使用特权

评论回复
地板
changing753|  楼主 | 2017-2-14 14:33 | 只看该作者
void UART1_Isr(void)
{

    uint8_t u8RxChar;
    uint32_t i;
   
    for (i = 0; i < 8; i++)  
    {
       while (!UART_IsRxBuffFull(UART1))
        {
          #if defined(ENABLE_WDOG)
                WDOG_Feed();
            #endif      
        }   
        u8RxChar = UART_ReadDataReg(UART1);
        Rec_buf[i] = u8RxChar;
    }
  
    Rec_ok=1;
}
这是我的中断函数,没啥特别的啊

使用特权

评论回复
5
xuyaqi| | 2017-2-14 20:28 | 只看该作者

中断里忌讳占得时间太多,你又是for,又是while这些工作要放在中断外,中断里只是简单接收。

使用特权

评论回复
6
changing753|  楼主 | 2017-2-20 16:11 | 只看该作者
xuyaqi 发表于 2017-2-14 20:28
中断里忌讳占得时间太多,你又是for,又是while这些工作要放在中断外,中断里只是简单接收。 ...

感谢关注,这是测试程序,写的不合理,问题解决了,开始思路是进入中断把数据都读完,然后出中断,这个片子 这样不行。后来改为每次进中断只读一个字节,这样它就可以完整工作了。

使用特权

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

本版积分规则

15

主题

53

帖子

0

粉丝