【案例分享】新唐ML51FB9AE的UART2功能无法正常通信

新唐ML51FB9AE开启UART2中断,会一直进入中断服务程序的异常现象,无法正常通信

问题详细描述

使用UART2用于485通信,发现一个问题,开启UART2中断,发现会一直进入中断服务程序,并且触发的既不是发送中断也不是接收中断

我们参考的例程是:ML51_BSP_KEIL-master202003\ML51_BSP_KEILmaster\SampleCode\StdDriver\UART2_interrupt

这个目录下的例程,该例程的功能是只要uart2接收到任意一个字节数据同时返回该数据

问题具体分析

ML51FB9AE的UART2是将ISO-7816的智能卡接口当作UART来使用,但中断函数入口还是SC的中断源,且SampleCode 里面的UART_Interrupt_Enable函数默认将发送中断打开了,故才会误触发中断,建议客户将UART.C文件 里面的UART_Interrupt_Enable函数中关于UART2的Set_SC0IE_TBEIEN屏蔽掉,这样UART2只会在接收到数据的时候才会进中断,并根据客户要求编写UART2的通信程序,借助串口调试助手验证OK后提供给客 户,具体代码及测试情况如下:

【案例分享】新唐ML51FB9AE的UART2功能无法正常通信

【案例分享】新唐ML51FB9AE的UART2功能无法正常通信