完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如标题,我的串口在定时循环发送一个达10K左右的大数据包,两秒一次,波特率115200,间隔时间内是够发完的。
发送时蓝牙信号可以搜索到,但连接后停几秒就会自动断开,请问可能是什么原因? 串口通过DMA发送,中断方式也试过了,都会影响 测试发现如果只发几十个字节则没有问题。但我必须要整包发出去,,,不知道为什么不阻塞还会影响cpu2的蓝牙连接 另外,发送大量数据是蓝牙连接需要的时间也大幅增加 请大佬解答,谢谢 |
|
相关推荐
1个回答
|
|
在这种情况下,STM32WB55在串口发送大量数据时BLE断开连接的原因可能有以下几点:
1. **CPU资源竞争**:STM32WB55具有两个CPU核心,CPU1负责应用处理,CPU2负责无线通信(包括蓝牙)。当你在CPU1上进行大量数据的串口发送时,可能会占用大量的CPU资源,导致CPU2的性能受到影响,从而影响蓝牙连接的稳定性。 2. **DMA冲突**:虽然你提到使用了DMA发送数据,但如果DMA通道与蓝牙通信使用的DMA通道相同或存在资源竞争,可能会导致蓝牙通信受到影响。 3. **中断处理**:在使用中断方式发送数据时,如果中断优先级设置不当或者中断服务程序执行时间过长,可能会影响蓝牙通信的正常进行。 4. **蓝牙连接超时**:在大量数据发送过程中,如果蓝牙连接的保活机制(如定期发送信标或心跳包)受到影响,可能导致蓝牙连接超时断开。 为了解决这个问题,你可以尝试以下几种方法: 1. **优化代码**:检查并优化你的代码,确保在发送大量数据时不会占用过多的CPU资源。 2. **调整DMA设置**:确保DMA通道分配合理,避免与蓝牙通信的DMA通道产生冲突。 3. **优化中断处理**:调整中断优先级,确保中断服务程序尽可能简洁高效。 4. **调整蓝牙连接参数**:尝试调整蓝牙连接的超时时间、信道选择等参数,以提高连接的稳定性。 5. **分包发送**:如果可能,可以考虑将大量数据分包发送,以降低单次发送对系统资源的影响。 希望这些建议能帮助你解决问题。如果问题仍然存在,请提供更多详细信息,以便进一步分析。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1810 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
737 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1687 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
749浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
584浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
567浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 08:37 , Processed in 0.912778 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号