void i2c_config(void)
{
/* enable GPIOB clock */
rcu_periph_clock_enable(RCU_GPIOG);
rcu_periph_clock_enable(RCU_GPIOI);
gpio_mode_set(GPIOI, GPIO_MODE_ANALOG, GPIO_PUPD_PULLUP, GPIO_PIN_11);
gpio_output_options_set(GPIOI, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_11);
gpio_mode_set(GPIOG, GPIO_MODE_ANALOG, GPIO_PUPD_PULLUP, GPIO_PIN_15);
gpio_output_options_set(GPIOG, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_15);
}
这个GPIO_MODE_ANALOG模式干嘛用的,我设成GPIO_MODE_ANALOG模式可以检测到我的I2C,但是读取的数据全是0.
设置成GPIO_MODE_OUTPUT就检测不到。有没有帮忙看看的
而且我在主程序中把这两个引脚拉低
gpio_bit_reset(GPIOI,GPIO_PIN_11);gpio_bit_reset(GPIOG,GPIO_PIN_15);
用示波器去检测这两个引脚还是没有被拉低。
|