对硬件IIC不太懂的话建议使用STM32Cube生成代码,里面的需要配置的东西都很明了。该软件也是ST以后大力推广的初始化代码生成软件。配置好之后只需要调用HAL库中的发送和接收函数便可以收发数据了。另微雪课堂有详细配置教程。
STM32F1XX系列的I2C有错误;所以用I2C硬件去实现的时候,出现的异常,很难排除;可是ST一直不承认。好象STM8也有这个问题。但ST后续的一些产品中,申明了I2C部分进行了全新的设计。(没有问题为何要重新设计?);我被它坑的极惨。损失极大!浪费很多的时间来查问题所在,结论是用IO端口模拟I2C的通讯正常;用硬件模块自动处理,行不通!
它不是摆设,是陷阱!
一般51是5V的STM32是3.3V的,是不是芯片电源电压不合适或是IIC接在IO上的上拉电阻过大?
硬件IIC只能接到它固定的管脚上,而且好像只有一两组,另外IO固定有时画板不好布线,有一定的局限性;
模拟I2C随便两个IO口就可以用了,另外同样的代码移值到其他类型的MCU上很方便,重新绑下IO口的就可以了。
本文标签:stm32模拟iic读取mpu