CH59X/CH58X/CH57X sleep模式下串口唤醒收发数据
整体程序逻辑:
下方的具体程序及使用是基于CH592进行的
SLEEP模式睡眠唤醒是由协议栈管理的,还在睡眠时,无法接收到数据。
已经通过使能HAL_SLEEP开启睡眠。如果需要在睡眠时实时接收串口传来的数据是不可行的,需要先将设备唤醒之后再进行串口数据的接收;
将唤醒的条件设置为下降沿唤醒,当串口接收口(RXD)接收数据时io会从高电平变为低电平;触发GPIO中断将设备唤醒,唤醒后切换为串口接收数据(需要此时要退出睡眠避免又睡下去无法进收发数据);在接收完数据后再睡下再切换为GPIO唤醒等待下次数据来再将设备唤醒后接收。
以下的示例是基于串口1完成的:
例程中的打印口是串口一;可以将打印口修改为串口0;通过宏开启睡眠
具体的修改可参考下方链接;如有错误请指正;
相关程序下载链接:Peripheral_UART1_WAKE_UP_RXD.7z · 江海寄余生/share - 码云 - 开源中国 (gitee.com)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?