N32WB031KEQ6 BLE程序中如何使用LPUART?
官方开发包提供的LPUART例程中是在非BLE环境中运行的,我测试运行也没有问题,STOP模式下,LPUART收发数据正常。但是当我将这代码移植么rtdss例程中去时,LPUART工作就不正常了,调试跟踪发现,是主循环中rwip_schedule();一句引起的,如果注释这一句LPUART工作就正常,恢复这一句后,LPUART就接收不到数据了?
不知如何解决,请高手指点,谢谢! 调整LPUART中断优先级 修改BLE调度处理方式 确保LPUART和BLE使用的时钟源在低功耗模式下都能正常工作:
// 在系统初始化时配置
RCC_APB1PeriphClockCmd(RCC_APB1Periph_LPUART1, ENABLE);
// 确保低功耗模式下时钟仍然有效
PWR_LowPowerModeClockConfig(PWR_LowPowerModeClock_LPUART1_ENABLE); 使用DMA传输
考虑使用DMA进行LPUART数据传输,减少中断冲突:
// 配置LPUART DMA
DMA_InitTypeDef DMA_InitStructure;
// ... DMA初始化代码
LPUART_DMACmd(LPUART1, LPUART_DMAReq_Rx, ENABLE);
页:
[1]