首页 » 互联网 » 【案例分析】STM32F4运用RT-Thread时出现因为串口异常导致去世机_串口_代码

【案例分析】STM32F4运用RT-Thread时出现因为串口异常导致去世机_串口_代码

乖囧猫 2024-12-24 07:50:38 0

扫一扫用手机浏览

文章目录 [+]

板级配置和驱动代码是我根据芯片和事理图创建,官方板级样例并没有该芯片和类似board包。
在板级能干创建完成后。
开拓业务框架给运用工程师接口。
板级框架测试涉及串口,4G模块,网络通信,任务间通信,曾测试324小时,当时没创造去世机或者其他情形。

问题详细剖析

板级配置如下:

【案例分析】STM32F4运用RT-Thread时出现因为串口异常导致去世机_串口_代码 互联网

除界面配置外,还需变动board.c适配公司板卡外设,这里不做赘述。
总之外设驱动和网络库在板级驱动测试中没有显现问题。
运用工程师仅需用C标准库写业务逻辑,其后测试创造去世机问题。
开始逐步排查。

rtThread给出msh环境可在线调试系统问题,输出系统运行信息。
此外考试测验在各个任务中加入一些打印信息帮忙测试查找问题。
末了创造GPS定位模块任务无输出,并占用大量资源,涌现类似去世锁问题,导致产品假去世。

定位模块处理任务紧张处理串口数据并转发给其他任务,开始排查串口问题初步疑惑串口可能乱码导致业务处理程序崩溃,开始检讨电平匹配,电容电阻等,均未创造缺点。
这也验证了业务框架测试时未创造问题。

下一步打算检讨固件驱动库代码。
一样平常的不会认为RT-Thread官方给出的串口驱动部分代码有问题,但永劫光未找到缘故原由,就开始在驱动代码进行检讨。

整体浏览串口处理样例,其系统串口处理程序为中断和旗子暗记量搭配利用,从串口读取一个字节的数据,没有读取到则等待吸收旗子暗记量,串口数据帧的首尾判断根据GPS数据进行设定。
根据代码追踪,末了创造问题,输出函数stm32_putc的timeout存在问题。

问题办理方案

变动库代码:做如下修正;

drv_usart.c 520行旁边:

drv_usart.c 660行旁边:

总结和建议

此代码库变动的条件是运用工程师业务涌现串口资源占用,合理变动代码。

建议参考RT-Thread社区提交样例,合理变动库代码及运用代码。

标签:

相关文章