本帖最后由 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 中断,以决定是否接收后续的数据。
手上就一个开发板,不方便模拟这种场景,请大神指点!!! |