2019-07-14 18:34发布
zhouxk 发表于 2018-8-14 07:58 用模拟I2C吧,用硬件I2C太操心了。 STM32F103的I2C在操作时得注意,一个不注意就入坑了。比如读状态寄存器,不能立马读,得有一点延时。还有写的时候得按外设器件手册来,该加延时的地方要加延时。
最多设置5个标签!
STM32F103的I2C在操作时得注意,一个不注意就入坑了。比如读状态寄存器,不能立马读,得有一点延时。还有写的时候得按外设器件手册来,该加延时的地方要加延时。
如果是HAL库的话,普通的发送函数HAL_I2C_Master_Transmit,最后一个参数Timeout改大点,我驱动OLED屏的时候发现如果用10就会卡死,改成50就正常。如果是带DMA的,需要开启I2C的中断,否则发不出去
我这里有块 STM32F103 的板子,自己写的硬件 I2C 驱动程序,有中断没有 DMA,一点没有问题啊?每秒钟发和传感器芯片通信两次,不用看门狗也连续三天三夜没卡过。这个看来是 ST 库的毛病,丢掉库自己操作寄存器写一个驱动吧。
我怎么就没碰到过这种问题?直接操作寄存器基本不会有问题啊?
一周热门 更多>