更改adv_vendor_self_provision_with_peripheral例程, 添加自定义协议主要添加了串口中断接收数据存入环形队列,添加了解析指令函数,但是只能发送4条之后就复位重启了,这个是什么原因导致的?帮忙分析一下!
热门产品 :
CH641: PD及无线充电专用MCU
更改adv_vendor_self_provision_with_peripheral例程, 添加自定义协议主要添加了串口中断接收数据存入环形队列,添加了解析指令函数,但是只能发送4条之后就复位重启了,这个是什么原因导致的?帮忙分析一下!
您好,代码中有没有启用看门狗。可以在硬件错误中断中加打印,查看一下复位前有没有进入该中断。可以参考下篇博客添加代码。
CH57x/CH58x/CH32V wch risc-v 芯片hardfault问题追踪&程序卡死追踪 - iot-fan - 博客园 (cnblogs.com)
针对串口的环形缓存,可以参考BLE_UART代码进行移植。如果使用到了内存申请与释放,建议使用 uint8_t *tmos_msg_allocate( uint16_t len ); 和 bStatus_t tmos_msg_deallocate( uint8_t *msg_ptr ); 这两个接口进行内存管理。这两个接口管理的内存,在协议栈的监管下运行,不会对协议栈产生预期外的干扰。