打印

GD32E230的USART0中断求助,DEBUG断点再运行,会一直进入中断

[复制链接]
3916|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jiangjiayu 于 2021-7-29 12:30 编辑

GD32E230K8使用USART0,使能RBNE中断,进入DEBUG全速运行,可以正常接受串口数据,每接受1Byte,进入一次中断
但是,打个断点,无论打在哪里,只要干扰串口接收数据了,然后取消断点,全速运行,USART0就会一直进入中断,就算没有任何中断标志置位



下图是正常情况,每接受 1 Byte,翻转一次IO



下面是异常情况


这个问题要如何解决?是debug停止的问题吗?正常使用万一也有这个情况怎么办?

使用特权

评论回复
沙发
h_x_zhong| | 2021-7-30 09:23 | 只看该作者
本帖最后由 h_x_zhong 于 2021-7-30 09:24 编辑

    if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE))
    {
        /* receive data */
        vInChar0 = usart_data_receive(USART0);
        Uart0FIFO_addbyte_Handler(vInChar0);   }        //---------------------------------------------------------------------------------------------------
    usart_interrupt_flag_clear(USART0,USART_INT_FLAG_RBNE_ORERR);//clear receive FIFO full interrupt and flag
    usart_interrupt_flag_clear(USART0,USART_INT_FLAG_ERR_FERR);
    usart_interrupt_flag_clear(USART0,USART_INT_FLAG_ERR_ORERR);

试一下这段程序,我用过是可以用。

使用特权

评论回复
板凳
jiangjiayu|  楼主 | 2021-7-30 11:10 | 只看该作者
h_x_zhong 发表于 2021-7-30 09:23
if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE))
    {
        /* receive data ...

这个可以,十分的感谢
看来是硬件报错了

使用特权

评论回复
地板
HJD001| | 2021-8-20 13:30 | 只看该作者
GD32E230K8U6大量现货,价格美丽!

使用特权

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

本版积分规则

14

主题

84

帖子

1

粉丝