2021年10月27日  22:09   深圳南山  刚刚解决这个BUG

        使用52832的串口一度让我怀疑人生,用个串口一大堆的代码,向来我认为简单的就是稳定的。

        串口发送我宁愿使用死等发送也不愿意使用FIFO加发送完成中断来解决,而且52832还加了DMA,这让我调试更加没有安全感,串口接收也是,我宁愿自己写驱动不想用52832这样的复杂操作,奈何用这个SDK没得选,真实操蛋。

        调试项目发现经常进入 app_error_fault_handler ,在线调试也找不出问题,到处加串口打印log也找不出问题。于是百度上找到 NRF52832 SDK15.2.0致命错误debug排查定位_mygod2008ok的专栏-CSDN博客_app_error_fault_handler 知道解决方法,需要先把DEBUG设置为全局define,公司因为担心收费问题,使用 segger embedded studio 来开发的,又要找一通到底在哪里设置,

右键工程名,选择common,在下图位置加入DEBUG。

 于是定位到程序在 APP_ERROR_HANDLER(p_event->data.error_communication); 此处进入app_error_fault_handler 的,

于是又百度  APP_UART_COMMUNICATION_ERROR 错误原因,

nRF52832频繁打印“APP_UART_COMMUNICATION_ERROR”的问题_fun_tion的博客-CSDN博客

居然仅仅是因为SDK把串口的RX引脚设置为了 NRF_GPIO_PIN_NOPULL ,改为上拉输入就好了。。。。也不知道Nordic的人把SDK写得这么复杂干啥,出现问题难找的一批。

在 nrfx_uarte.c 的 apply_config 函数里面,把RX引脚设置为上拉输入就好了。

也算是第一次写博客记笔记。

下班。22:24。

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐