|
查看: 7|回复: 0

[BLE SDK] suspend唤醒后UART(DMA方式)收不到数据,怎么解决?

[复制链接]

145

主题

338

回帖

1584

积分

管理员

积分
1584
发表于 7 小时前 | 显示全部楼层 |阅读模式 来自 上海
Information
说明:   建议参照本版块置顶帖内容输入必要信息
芯片型号: -
SDK及版本: -
B91 单连接 SDK 使用 DMA 串口,进入 suspend 模式后唤醒,UART 收不到数据包。普通模式串口正常;deepsleep 在 deep init 里初始化串口后正常;只有 suspend GPIO 唤醒后收不到数据。

回答:

1、SDK 底层不会去动串口的配置,串口完全是应用层操作的。建议在 suspend 唤醒回调里把 uart 初始化的相关函数都重新调用一遍,然后用二分法排查是哪个函数造成的异常。

2、在 suspend exit 回调里调用 uart_receive_dma(...) 重新使能接收,这个动作本身不会影响未进入 suspend 的情况,可以先 clean 环境确认问题是否稳定复现。

3、GPIO 唤醒后如果要有接收串口数据的动作,应用层还需要把 PM 的节能机制(suspend)disable 掉,否则收包过程可能再次进入低功耗。

本版积分规则

关注公众号
隐私政策|Telink forum

相关侵权、举报、投诉及建议等,请发 E-mail:forum@telink-semi.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|沪ICP备17008231号-1 |沪公网安备31011502403548号

在本版发帖返回顶部