打印
[STM32F1]

关于UART 的 IDLE LINE WAKE UP功能的迷惑???请大神指点或讨论

[复制链接]
2086|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hellonihao|  楼主 | 2015-11-29 21:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hellonihao 于 2015-11-30 15:50 编辑

最近一项目,学习ST的STM32F103单片机,用到UART的idle line wake up功能,看了些资料,发现越看越迷惑,描述如下,搞的我不知哪个才是对的或者我理解错了:
1. STM32F1XX系列的datasheeet中idle line wake up这一小节中说,“idle line 检测到后,RWU硬件自动复位,但此时状态寄存器中IDLE标志位不置1” ,然而,在状态寄存器UART_SR中描述IDLE位时却说,“当检测到idle line frame后硬件给IDLE位置1。在RX数据寄存器非空(RXNE=1)时IDLE状态位才会置1”,感觉前后有点矛盾,不知哪个是对的!!!
2. 关于这个功能的用途。① 在百度上,有人说是:用来和DMA配合用,即当一帧信息接收完,同时又收到idle frame后,会产生IDLE interrupt,此时表明这一帧信息发完了,DMA可以读数了,这样说貌似就是和idle frame后续的第一个字符无关。 ② 另有人说是,在多机通信中,用来接收匹配自己地址的数据块,即idle frame后接着的第一个字符表示地址,该地址字符接收完后产生IDLE标志或IDLE 中断,以决定是否接收后续的数据。
手上就一个开发板,不方便模拟这种场景,请大神指点!!!
沙发
小小刀| | 2015-12-4 10:07 | 只看该作者
1/参看UART_SR中的原版描述Note: The IDLE bit will not be set again until the RXNE bit has been set itself (i.e. a new idle line occurs).
是说如果当前IDLE被置位,又出现一个新的IDLE,不会重复置位,直到RX数据寄存器非空(RXNE=1).
2/有两种模式: WAKE = 0 (USART_CR1寄存器中)时,用于总线空闲检测;WAKE = 1(用于地址标记)

使用特权

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

本版积分规则

14

主题

55

帖子

1

粉丝