• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

S32DS中串口接收中断怎么清除

Angel_YY 2018-08-20 浏览量:2927

在S32DS中做S32K144的串口接收,使用中断方式。初始化时如下

    LPUART_DRV_Init(INST_DEBUG &Debug_State &Debug_InitConfig0);
    LPUART_DRV_InstallRxCallback(INST_DEBUG&DebugUartRx_ISR(void *)0);
    LPUART_DRV_ReceiveData(INST_DEBUGCommRecvBuff1);
但是在上位机发送一个字节数据后,中断处理函数一直不停的产生中断。

void DebugUartRx_ISR(void *driverState uart_event_t event void *userData)
{
    switch(event)
    {
        case UART_EVENT_RX_FULL:
            LPUART_DRV_AbortReceivingData(INST_DEBUG);
        	LPUART_DRV_ReceiveData(INST_DEBUGCommRecvBuff1);
        	break;
        default:
        	break;
    }
}
使用LPUART_DRV_AbortReceivingData也不能清除这个中断。如何解决?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在蓝宙给的S32K资料中有寄存器方式清除串口中断​,楼主可以参考一下,我之前用过。

    • 发布于 2018-08-26
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • default那里不要选择break,将所有可能产生的中断标志全部清除一遍,因为有可能串口接收时出错产生了别的中断
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个寄存器的操作要根据实际的操作手册来操作,最好是参考一下官网的demo
    • 发布于2018-09-18
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接在你的串口中断里面清除你的标志位就可以,也就是第一个
    • 发布于2018-09-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

S32DS中串口接收中断怎么清除