打印
[N32WBxxx]

N32WB031KEQ6 BLE程序中如何使用LPUART?

[复制链接]
428|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szdbg|  楼主 | 2025-7-14 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
官方开发包提供的LPUART例程中是在非BLE环境中运行的,我测试运行也没有问题,STOP模式下,LPUART收发数据正常。

但是当我将这代码移植么rtdss例程中去时,LPUART工作就不正常了,调试跟踪发现,是主循环中rwip_schedule();一句引起的,如果注释这一句LPUART工作就正常,恢复这一句后,LPUART就接收不到数据了?

不知如何解决,请高手指点,谢谢!

使用特权

评论回复
沙发
天灵灵地灵灵| | 2025-7-22 10:17 | 只看该作者
调整LPUART中断优先级

使用特权

评论回复
板凳
天灵灵地灵灵| | 2025-7-22 10:17 | 只看该作者
修改BLE调度处理方式

使用特权

评论回复
地板
天灵灵地灵灵| | 2025-7-22 10:17 | 只看该作者
确保LPUART和BLE使用的时钟源在低功耗模式下都能正常工作:

// 在系统初始化时配置
RCC_APB1PeriphClockCmd(RCC_APB1Periph_LPUART1, ENABLE);
// 确保低功耗模式下时钟仍然有效
PWR_LowPowerModeClockConfig(PWR_LowPowerModeClock_LPUART1_ENABLE);

使用特权

评论回复
5
天灵灵地灵灵| | 2025-7-22 10:17 | 只看该作者
使用DMA传输
考虑使用DMA进行LPUART数据传输,减少中断冲突:

// 配置LPUART DMA
DMA_InitTypeDef DMA_InitStructure;
// ... DMA初始化代码
LPUART_DMACmd(LPUART1, LPUART_DMAReq_Rx, ENABLE);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

10

帖子

1

粉丝