场景 :
如果蓝牙长时间未被连接读取数据,
会通过一颗4G模组向服务器上报数据,
ch573使用uart3 (PA4、PA5)连接4G模组。
项目为电池供电,需要低功耗。
问题:
当ch573开启 “HAL_SLEEP=1”后,uart3无法正常接收数据。
期待方案:
一、使uart3可以在“HAL_SLEEP=1”的状态下正常收发数据。
二、是否可以使系统在短时间内不再进入低功耗。
场景 :
如果蓝牙长时间未被连接读取数据,
会通过一颗4G模组向服务器上报数据,
ch573使用uart3 (PA4、PA5)连接4G模组。
项目为电池供电,需要低功耗。
问题:
当ch573开启 “HAL_SLEEP=1”后,uart3无法正常接收数据。
期待方案:
一、使uart3可以在“HAL_SLEEP=1”的状态下正常收发数据。
二、是否可以使系统在短时间内不再进入低功耗。
您好,“使uart3可以在“HAL_SLEEP=1”的状态下正常收发数据”,可以复用UART3的RX引脚作为GPIO唤醒脚,利用第一个字节的数据唤醒MCU,唤醒后后续的数据可以正常接收。
“是否可以使系统在短时间内不再进入低功耗”,在GPIO唤醒后,可以置标志,在sleep.c中的CH57x_lowpower函数开头判断改标志,不希望休眠就使能标志,判断到标志就直接return即可。
好的,我理解了,
rx作为gpio唤醒引脚的话,接收到的byte0应该会丢失,4G侧用的是AT接口,应该只能用阻止唤醒的方式了。
谢谢
实现了吗? 方法可行?