STM32
直播中

刘伟

7年用户 1643经验值
私信 关注
[问答]

STM32F407+freertos+lwip串口报错的原因?怎么解决?

STM32F407+FreeRTOS+LwIP

错误现象:程序编译无错,能够在板子上正常运行,但是串口会持续打印Error:..FreeRTOSportableRVDSARM_CM4Fport.c,441

已采取措施:经过网上查询,检查了中断优先级,并将系统可管理的最高中断优先级
configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY提高到了1,用到的外设中断优先级从2开始

回帖(1)

张超

2024-4-30 17:40:50
STM32F407 + FreeRTOS + LwIP串口报错的原因可能有以下几点:

1. 中断优先级配置不当:确保中断优先级正确配置,避免中断嵌套和优先级反转。

2. 内存管理问题:FreeRTOS和LwIP都需要一定的内存管理,确保为它们分配了足够的内存。

3. 串口配置错误:检查串口的波特率、数据位、停止位和奇偶校验位等参数是否正确配置。

4. 串口中断冲突:确保没有其他中断与串口中断冲突。

5. 代码中的错误:检查FreeRTOS和LwIP的代码实现,确保没有逻辑错误。

针对这些可能的原因,可以尝试以下解决方案:

1. 重新检查中断优先级配置,确保没有错误。

2. 增加内存分配:为FreeRTOS和LwIP分配更多的内存,确保它们有足够的空间进行操作。

3. 检查串口配置:确保串口的波特率、数据位、停止位和奇偶校验位等参数正确配置。

4. 避免中断冲突:确保没有其他中断与串口中断冲突,如果有冲突,调整中断优先级或中断服务程序。

5. 检查代码实现:仔细检查FreeRTOS和LwIP的代码实现,确保没有逻辑错误。

6. 使用调试工具:使用调试工具(如ST-Link)逐步调试程序,找出错误发生的具体位置。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分