CH59X/CH58X/CH57X sleep模式下串口唤醒收发数据

发布时间 2023-09-08 17:30:19作者: 小舟从此逝_1

整体程序逻辑:

下方的具体程序及使用是基于CH592进行的

SLEEP模式睡眠唤醒是由协议栈管理的,还在睡眠时,无法接收到数据。

已经通过使能HAL_SLEEP开启睡眠。如果需要在睡眠时实时接收串口传来的数据是不可行的,需要先将设备唤醒之后再进行串口数据的接收;

将唤醒的条件设置为下降沿唤醒,当串口接收口(RXD)接收数据时io会从高电平变为低电平;触发GPIO中断将设备唤醒,唤醒后切换为串口接收数据(需要此时要退出睡眠避免又睡下去无法进收发数据);在接收完数据后再睡下再切换为GPIO唤醒等待下次数据来再将设备唤醒后接收。

以下的示例是基于串口1完成的:

例程中的打印口是串口一;可以将打印口修改为串口0;通过宏开启睡眠

 具体的修改可参考下方链接;如有错误请指正;

相关程序下载链接:Peripheral_UART1_WAKE_UP_RXD.7z · 江海寄余生/share - 码云 - 开源中国 (gitee.com)