硬件IIC
自我总结一下stm32的硬件IIC。
硬件IIC和模拟IIC的优缺点就不再分析,普遍的观点就是模拟IIC好移植、不受管脚的限制,硬件IIC效率高,可以使用DMA、中断等,但是也存在bug。
先不管bug吧,本着人人都是懒狗的理由,用cube生成代码,先学会怎么使用吧。
生成IIC代码
- cube软件里面设置比较简单
2. 代码
基础的配置就按cube生成就好,一处需要修改的地方是,需要把IIC的时钟使能放置到GPIO初始化之前,如图
否则iic就不能工作,应该是一个小bug。
这样基本的工作就完成了。
读写操作
-
写操作
///IIC写操作
///返回操作结果
///在循环调用时需要加一定的延时HAL_StatusTypeDef EE_I2C_Write(uint16_t Write_Address, uint16_t InChipReg_Address, uint16_t OSSetSize, uint8_t *Data_Buffer, uint16_t Data_Length)
{
HAL_StatusTypeDef status =HAL_OK;status