STM32学习
文章平均质量分 60
在实际项目中运用STM32遇到的问题及解决方法
暮梧寒
这个作者很懒,什么都没留下…
展开
-
STM32 HAL库串口突然不再接收数据的异常情况
如果串口中断重新接收打开频繁且间隔短的话,有可能会出现BUSY标志位持续置高的情况,此时在重新打开中断接收前,需要先判断串口状态是否为HAL_BUSY,再判断是否能重新打开。阻塞式接收为定长字节字节数,阻塞式接收突然不再接收数据的异常情况,大多数都是因为实际接收的字节超过了设定接收的字节长度,此时会导致ORE错误,且ORE错误一旦出现,后续的串口数据就不会再写入到缓存中。函数没有清除ORE错误的功能,只要在调用这个函数前使用__HAL_UART_CLEAR_OREFLAG(huart);原创 2023-03-15 08:49:01 · 5350 阅读 · 0 评论 -
STM32Cube配置LTDC驱动RGB LCD
正点原子STM32H750开发板驱动4.3寸RGBLCD原创 2023-07-24 15:56:44 · 2352 阅读 · 4 评论 -
STM32 HAL库形式制作SPI Flash(W25Q16)的 Keil下载算法
此时需要自己从别的项目工程中拷贝一份system_stm32g0xx.c放到本工程中,同时在工程文件中添加,此时顺便将W25Qxx.c(FLASH驱动代码)和system_stm32g0xx.c一起添加进来,如下图。进入下载设置界面,添加我们的FLM算法,然后将RAM空间暂时改大,否则算法下不进去(算法是下载到MCU中运行的),如下图,配置完IO口和时钟频率之后(注意时钟频率会影响SPI的通讯速率),配置结束之后,点击项目设置,只需要设置如下选项即可,/* 校验成功 */原创 2023-06-21 15:50:52 · 1571 阅读 · 0 评论 -
STM32 IAP固件升级跳转后卡死可能存在的原因
导致跳转到APP代码时运行到时钟配置就卡死,而时钟没配置成功就无法初始化IO口,也没法发出信号做出提示,看着像app区的代码不运行,但其实还是运行了的。分析:APP代码中需要清除bootload中外设的初始化,否则在APP中的初始化无法成功,而且STM32CubeMX生成的HAL,下层函数大部分都是while形式的,初始化不成功就会卡死,如果这个时候设置了看门狗,就会复位。使用IAP固件升级,本质上就是代码地址的跳转,从bootload代码跳转到APP代码。2、APP区重新清除设置并配置时钟参数。原创 2023-05-26 15:53:31 · 1845 阅读 · 1 评论