• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1178 关闭SPI会导致WRPERR错误的问题分析

03/26 09:25
388
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1178 关闭SPI会导致WRPERR错误的问题分析

483.01 KB

引言

在 STM32 的应用中,SPI 算是用的比较多的外设了,也是单片机最常见外设之一。客户说它执行了关闭 SPI 的代码,竟然会导致 Flash 中的 WRPERR 标志置位,致使应用碰到一些问题。这就奇怪了,SPI 和内部 Flash 看起来是风马牛不相及的事情,为什么会发生这种事呢?一起来看看吧。

问题

客户在使用 STM32L072RBT6 的时候,使用 STM32CubeL0 库,在程序编写时,发现执行关闭 SPI 代码时,会导致 Flash 的写保护错误标志 WRPERR 置位,导致其后面准备写 EEPROM 的时候,就无法对 EEPROM 写入了。

问题解决

本来客户的代码就没有必要这么写,因为 SPI 都没初始化,对它进行关闭并没有什么意义。

小结

在用户代码中,SpiHandle 只是定义了 SPI_HandleTypeDef 结构体,其各种参数并还没有进行实际初始化。在没有初始化的前提下,对其进行操作是不对的,也是危险的,应该在写代码的时候引起重视。

使用 HAL 库的时候,如果要对一个外设进行任何的操作,请务必记得它是被初始化过的。否则,出了问题可能都不一定知道。

在线预览

相关推荐