整体程序逻辑:
下方的具体程序及使用是基于CH592进行的
SLEEP模式睡眠唤醒是由协议栈管理的,还在睡眠时,无法接收到数据。
已经通过使能HAL_SLEEP开启睡眠。如果需要在睡眠时实时接收串口传来的数据是不可行的,需要先将设备唤醒之后再进行串口数据的接收;
将唤醒的条件设置为下降沿唤醒,当串口接收口(RXD)接收数据时io会从高电平变为低电平;触发GPIO中断将设备唤醒,唤醒后切换为串口接收数据(需要此时要退出睡眠避免又睡下去无法进收发数据);在接收完数据后再睡下再切换为GPIO唤醒等待下次数据来再将设备唤醒后接收。
以下的示例是基于串口1完成的:
例程中的打印口是串口一;可以将打印口修改为串口0;通过宏开启睡眠
具体的修改可参考下方链接;如有错误请指正;
相关程序下载链接:Peripheral_UART1_WAKE_UP_RXD.7z · 江海寄余生/share - 码云 - 开源中国 (gitee.com)
标签:睡眠,CH57X,数据,CH59X,收发,串口,接收,唤醒 From: https://www.cnblogs.com/frontier/p/17688150.html