打印
[技术问题解答]

关于kinetis MK22FX512AVLH12 UART idle eDMA问题

[复制链接]
1262|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
韬铸88|  楼主 | 2016-2-1 22:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下大家,在UART采用eDMA接收一帧数据后,利用UART IDLE产生中断,再进行一帧数据的处理。但是UART接收一帧数据后未进入空闲中断,该如何配置UART0_C1、UART0_C2、UART0_S1、UART0_C5这几个寄存器呢?调试的时候,eDMA可以接收到数据,但是无法进入UART IDLE中断,望大家知道的指点一下,谢谢!

相关帖子

沙发
韬铸88|  楼主 | 2016-2-1 22:29 | 只看该作者
怎么总是刚发帖,就显示已结帖了呢

使用特权

评论回复
板凳
韬铸88|  楼主 | 2016-2-2 10:34 | 只看该作者
如果不使用eDMA,仅仅配置UART发送接收,发送、接收、空闲中断,程序运行,在接收到一帧数据后,就会进入空闲中断;问题又来了,一旦进入空闲中断,就出不来了,一直空闲中断。该如何消除空闲中断呢?使得只有接收到一帧数据后只进行一次空闲中断,没有接收到数据,就不产生空闲中断。如何设置呢?

使用特权

评论回复
地板
韬铸88|  楼主 | 2016-2-2 11:32 | 只看该作者
在UART接收到一帧数据后,UART IDLE 空闲中断,先进行UART0_S1 |= UART_S1_IDLE_MASK;清除中断标准位,再进行读取数据UART_D中的数据。这样就不会再进入空闲中断了。只有在下次接收到数据后空闲,才进入空闲中断。这是在没搭配eDMA情况下做的。之前我没有在进行UART0_S1 |= UART_S1_IDLE_MASK;清除中断标准位后,进行读取UART_D中的数据,所以一直进入空闲中断。

使用特权

评论回复
5
韬铸88|  楼主 | 2016-2-2 11:33 | 只看该作者
现在搭配eDMA试试看,情况是怎么样的。

使用特权

评论回复
6
a305566| | 2016-3-8 21:26 | 只看该作者
是调用库还是直接寄存器配置操作,现在edma可以用了吗?

使用特权

评论回复
7
韬铸88|  楼主 | 2016-4-11 14:06 | 只看该作者
a305566 发表于 2016-3-8 21:26
是调用库还是直接寄存器配置操作,现在edma可以用了吗?

现在可以使用了,但是UART不能使用缓冲,开缓冲,接收数据重复错误;不知道是否是配置寄存器的问题或者的判断寄存器一些标志位问题。

使用特权

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

本版积分规则

12

主题

126

帖子

1

粉丝