这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”

共5条 1/1 1 跳转至

【我踩过的那些坑】STM32的硬件通讯调试过程的“坑” 2

高工
2025-07-31 19:55:27   被打赏 50 分(兑奖)     打赏

做为一个从事多年嵌入式的软件工程师,和大家分享一下在使用STM32时遇到的”坑“,其实后来发现是自己的能力不足。

1:在使用硬件IIC时:

STM32的硬件I2C在某些工作频率下(如100kHz和400kHz)可能会出现卡住的现象。这可能是由于硬件设计或驱动程序的限制所导致的。在读取或发送数据时,如果有其他中断事件干扰,也可能导致硬件I2C卡住。我当时在使用的时候在驱动IIC的OLED屏幕时候,就发现了有时候屏幕会有花屏的现象。

解决办法:

需要我们在实际应用中,尽量使用较低的工作频率,以减少卡住的风险。

确保在数据传输过程中没有其他中断事件的干扰。

如果可能的话,使用软件模拟I2C通信,以获得更灵活的控制和更好的兼容性。

2:在调试硬件SPI的时候,:

SPI通信中的时钟极性(CPOL)和时钟相位(CPHA)是两个关键参数。它们定义了时钟信号在空闲状态下的电平和数据采样的时机。当时是利用硬件的SPI读取两个芯片,一个是存储芯片(AT45DB041),一个是AD芯片(CS5530),由于这个两个芯片的时序不一致,一个是在上升沿读取数据,另外一个是在下降沿读取数据,当时也是调试好久才发现,时序不一致,当初也是刚毕业不久,也没有太多的工作经验,还以为是芯片损坏,现在想起来还是真的小白了。后来工作时间久了才发现,影响SPI通讯不正常的原因有很多,需要注意硬件连接、通信协议与时序、数据传输等方面。

就是在调试这两款SPI从机的时候,当时为了减少硬件的引脚,从而将省出的引脚复用其他的功能,从而导致了自己在软件调试时候遇到了不小的麻烦。当时都使用逻辑分析仪一点点的查出来的。

就是这些大大小小的“坑”,铺满了整个嵌入式的道路。



高工
2025-08-01 10:37:34     打赏
2楼

硬件I2C那问题,其实降低速率并不能解决问题,只是降低发生概率罢了,最好的方法是提高中断优先级,把I2C中断设置成最高优先级就行


专家
2025-08-01 10:45:28     打赏
3楼

这个坑活动,是不是可以当自己的日常笔记用


院士
2025-08-01 16:59:41     打赏
4楼

谢谢分享。


院士
2025-08-01 18:53:39     打赏
5楼

IIC的使用还是非常实用的。

楼主对IIC的调试还是要加强哟


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]