stm32开发遇到的问题及后续

STM32开发问题记录

HAL库开发,问题罗列以及后续排查简单记录(仅适用于个人)


一、uart

1.1 问题:

打印正常,但是加入接收中断后,开始出bug,最后锁定接收中断挂掉了(备注

原因: HAL库的串口接收发送函数有bug,就是收发同时进行的时候,会出现锁死的现象
解决: 需要注释掉 HAL_UART_Receive_IT 和 HAL_UART_Transmit_IT 中的 __HAL_LOCK(huart) 函数。或者不要在接收里面,每接收到一个字符就printf一下。

1.2 问题:

在接收中断中使用HAL_UART_Receive_IT()函数,会导致CR1的RXNEIE 置0,最后一直处于错误状态,无法进行接收。
解决 注释掉 HAL_UART_Receive_IT 中的 HAL_LOCK(huart) 函数

二、freertos+fatfs+sdio

2.1 问题:

没有加freertos时候,sd卡读写正常;加上freertos时候,mout成功,但read等其他操作返回错误3 not ready

解决: sdio和sddma的中断优先级要小于freertos的最小优先级

2.2 问题:串口接受数据异常

串口以DMA方式接受数据;但是收不到数据;
解决: 串口接收数据的任务优先级低于主任务,故经常被打断;接受数据异常;


欢迎指正


版权声明:本文为CSDN博主「weixin_45459482」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45459482/article/details/122165708

STM32开发问题记录

HAL库开发,问题罗列以及后续排查简单记录(仅适用于个人)


一、uart

1.1 问题:

打印正常,但是加入接收中断后,开始出bug,最后锁定接收中断挂掉了(备注

原因: HAL库的串口接收发送函数有bug,就是收发同时进行的时候,会出现锁死的现象
解决: 需要注释掉 HAL_UART_Receive_IT 和 HAL_UART_Transmit_IT 中的 __HAL_LOCK(huart) 函数。或者不要在接收里面,每接收到一个字符就printf一下。

1.2 问题:

在接收中断中使用HAL_UART_Receive_IT()函数,会导致CR1的RXNEIE 置0,最后一直处于错误状态,无法进行接收。
解决 注释掉 HAL_UART_Receive_IT 中的 HAL_LOCK(huart) 函数

二、freertos+fatfs+sdio

2.1 问题:

没有加freertos时候,sd卡读写正常;加上freertos时候,mout成功,但read等其他操作返回错误3 not ready

解决: sdio和sddma的中断优先级要小于freertos的最小优先级

2.2 问题:串口接受数据异常

串口以DMA方式接受数据;但是收不到数据;
解决: 串口接收数据的任务优先级低于主任务,故经常被打断;接受数据异常;


欢迎指正


版权声明:本文为CSDN博主「weixin_45459482」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45459482/article/details/122165708

生成海报
点赞 0

weixin_45459482

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

stm32开发遇到的问题及后续

STM32开发问题记录 HAL库开发,问题罗列以及后续排查简单记录(仅适用于个人) 一、uart 1.1 问题: 打印正常,但是加入接收中断后,开始出bu

rt_thread hc32f460开发四:pwm驱动移植

RT-Thread 驱动开发简介 RT-Thread驱动开发最开始应该是要阅读官方的文档,理解驱动的运行原理和使用方法。PWM部分的文档在这里https://www.rt-thread.org/document/site/#/rt

w25qxx spi flash WP写保护引脚的正确使用方式

WP引脚使用方式 spi flash有一个外部写保护引脚WP, 此引脚并不是直接保护flash上的数据内容,而是保护状态寄存器不被异常改写.flash上的内容写保护是通过状态寄存器的BPxbit的不同组合来实现的. 对于环境相对恶劣的使用场景