void i2c_gpio_init(void)
{
/* enable GPIOB clock */
rcu_periph_clock_enable(IIC1_GPIO_GPIO_CLK);
/* enable I2C1 clock */
rcu_periph_clock_enable(RCU_I2C1);
/* ÅäÖà IIC_SCL --> PB10 Òý½ÅΪODÊä³ö */ 硬件iic
gpio_init(IIC1_GPIO_GPIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, IIC1_GPIO_SCL_PIN);
/* ÅäÖà IIC_SDA --> PB11 Òý½ÅΪODÊä³ö */ 硬件iic
gpio_init(IIC1_GPIO_GPIO_PORT, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, IIC1_GPIO_SDA_PIN);
// soft: gpio_init(IIC1_GPIO_GPIO_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, IIC1_GPIO_SCL_PIN);
// /* ÅäÖà IIC_SDA --> PB11 Òý½ÅΪODÊä³ö */
// soft: gpio_init(IIC1_GPIO_GPIO_PORT, GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, IIC1_GPIO_SDA_PIN);
/* I2C clock configure */
i2c_clock_config(I2C1, 100000, I2C_DTCY_16_9);
/* I2C address configure */
i2c_mode_addr_config(I2C1, I2C_I2CMODE_ENABLE, I2C_ADDFORMAT_7BITS, 0x40);
/* enable I2C1 */
i2c_enable(I2C1);
/* enable acknowledge */
i2c_ack_config(I2C1, I2C_ACK_ENABLE);
}
|
———————————————— 版权声明:本文为CSDN博主「lovelovetome」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_40955731/article/details/124291968