完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的ESP32 Dev开发板运行修改自bt_spp_acceptor的例程,就用它来传输八个压力传感器和一个MPU6050模块的数据,连接上传输几分钟后就出现下面这种情况
E (429911) BT_BTC: btc_spp_rfcomm_inter_cb btc_transfer_context failed E (429961) BT_BTC: btc_spp_rfcomm_inter_cb btc_transfer_context failed E (430061) BT_BTC: btc_spp_arg_deep_copy 7 osi_maloc faild assert failed: fixed_queue_enqueue fixed_queue.c:135 (data != NULL) Backtrace:0x40081be2:0x3ffcd9c00x400912e9:0x3ffcd9e0 0x40096901:0x3ffcda00 0x400ed03f:0x3ffcdb20 0x400d97ad:0x3ffcdb40 0x400da07a:0x3ffcdc00 0x400ec92d:0x3ffcdc30 0x400edbc0:0x3ffcdc50 0x40094109:0x3ffcdc70 然后就重启了... 我也没有在回调函数中发送,重新创建了一个低优先级的任务来专门发送蓝牙数据,另一个高优先级的任务来处理传感器数据 |
|
相关推荐
1个回答
|
|
从您提供的错误信息来看,这个问题可能是由以下几个原因导致的:
1. **内存不足**:错误信息中的 "osi_maloc faildassert failed: fixed_queue_enqueue" 表明在尝试分配内存时失败了。这可能是因为ESP32的内存不足,尤其是在长时间运行和大量数据传输的情况下。 2. **数据传输问题**:错误信息中的 "btc_transfer_context failed" 表明在数据传输过程中出现了问题。这可能是由于数据传输速率过快,导致ESP32无法及时处理所有数据。 3. **软件问题**:可能是您修改的bt_spp_acceptor例程中存在一些问题,导致在运行过程中出现错误。 为了解决这个问题,您可以尝试以下方法: 1. **优化内存使用**:检查您的代码,看看是否有内存泄漏或者不必要的内存分配。您可以尝试使用更高效的数据结构或者算法来减少内存使用。 2. **降低数据传输速率**:尝试降低数据传输的频率,看看是否能够减少错误发生的概率。这可能需要您调整传感器数据采集的速率或者调整MPU6050模块的采样率。 3. **检查代码**:仔细检查您修改的bt_spp_acceptor例程,看看是否有逻辑错误或者潜在的问题。您可以尝试使用调试工具来帮助您找到问题所在。 4. **更新固件和库**:确保您使用的ESP32开发板固件和Bluedroid库是最新版本的,因为新版本可能修复了一些已知的问题。 5. **硬件问题**:如果以上方法都不能解决问题,您可能需要检查您的ESP32开发板是否存在硬件问题。您可以尝试使用其他开发板来排除硬件故障的可能性。 希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。 |
|
|
|
只有小组成员才能发言,加入小组>>
1143 浏览 1 评论
582浏览 6评论
480浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
464浏览 5评论
466浏览 4评论
441浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 16:59 , Processed in 0.815445 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号