北宸 发表于 2014-8-23 17:19:39

STM32 有没USART地址匹配功能

 我在做个项目,想这样做:
本机处于低功耗状态,当USART接收到第一个数据为地址码,与本机地址一致才唤醒。
这种方式也中听别人说过下,想请教下,这样要怎么实现?

北宸 发表于 2014-8-24 10:39:24

RE:STM32 有没USART地址匹配功能

怎么没人回复呢?

霹雳之火 发表于 2014-8-24 19:17:08

RE:STM32 有没USART地址匹配功能

没做过,但是这个可以实现,不过有点复杂,涉及到模式之就爱你的切换,楼主解决了来论坛里分享一下:P

发表于 2014-8-26 11:01:13

RE:STM32 有没USART地址匹配功能

这个还是看手册吧。里面有详细的说明。
地址标记(address mark)检测(WAKE=1)
在这个模式里,如果MSB是1,该字节被认为是地址,否则被认为是数据。在一个地址字节中,目标接收器的地址被放在4个LSB中。这个4位地址被接收器同它自己地址做比较,接收器的地址被编程在USART_CR2寄存器的ADD。
如果接收到的字节与它的编程地址不匹配时,USART进入静默模式。此时,硬件设置RWU位。接收该字节既不会设置RXNE标志也不会产生中断或发出DMA请求,因为USART已经在静默模式。
当接收到的字节与接收器内编程地址匹配时,USART退出静默模式。然后RWU位被清零,随后的字节被正常接收。收到这个匹配的地址字节时将设置RXNE位,因为RWU位已被清零。
当接收缓冲器不包含数据时(USART_SR的RXNE=0),RWU位可以被写0或1。否则,该次写操作被忽略。下图给出利用地址标记检测来唤醒和进入静默模式的例子。
页: [1]
查看完整版本: STM32 有没USART地址匹配功能