STM32 IIC读写函数
时间: 2023-10-18 14:07:02 浏览: 43
以下是基于HAL库的STM32 IIC读写函数示例:
初始化IIC:
```
void IIC_Init(void)
{
hi2c1.Instance = I2C1;
hi2c1.Init.Timing = 0x00C0EAFF;
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
hi2c1.Init.OwnAddress2 = 0;
hi2c1.Init.OwnAddress2Masks = I2C_OA2_NOMASK;
hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
if (HAL_I2C_Init(&hi2c1) != HAL_OK)
{
Error_Handler();
}
}
```
写入数据到IIC设备:
```
HAL_I2C_Mem_Write(&hi2c1, IIC_ADDR, IIC_REG, I2C_MEMADD_SIZE_8BIT, &data, 1, 100);
```
从IIC设备读取数据:
```
HAL_I2C_Mem_Read(&hi2c1, IIC_ADDR, IIC_REG, I2C_MEMADD_SIZE_8BIT, &data, 1, 100);
```