一.硬件iic的初始化解读
1.stm32上硬件iic一般有三个,与模拟iic区别在于引脚固定。
2.硬件iic是属于外设的,和串口一个性质。
3.既然是外设,就有其对应的固件库。
typedef struct
{
uint32_t I2C_ClockSpeed; /*时钟频率。
该参数必须设置为小于400kHz的值 */
uint16_t I2C_Mode; /*!< I2C模式。
取值为@ref I2C_mode */
uint16_t I2C_DutyCycle;/*!< I2C快速模式占空比。
取值为@ref I2C_duty_cycle_in_fast_mode */
uint16_t I2C_OwnAddress1;/*!< 指定第一个设备自己的地址。
取值为7位或10位地址。*/
uint16_t I2C_Ack; /*!< 启用或禁用确认。
可以是@ref I2C_acknowledgement */
uint16_t I2C_AcknowledgedAddress; /*指定是否确认7位或10位地址。
取值为@ref i2c_acknowledgement d_addres */
}I2C_InitTypeDef;
//----------------------------------------------------------------------------------
此为iic的初始化所需要的结构体,各个成员为所要设置的参数
void I2C_DeInit(I2C_TypeDef* I2Cx);//重置初始化
void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct);//初始化
void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState);//使能
void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data);