本帖最后由 castle520 于 2020-11-18 20:38 编辑
(1)GPIO_MODE_ANALOG是模拟输入,主要用在ADC采样上
(2)硬件IIC引脚应该这样配置(PB6\PB7为例)
/* I2C0 GPIO ports */
/* connect PB6 to I2C0_SCL */
gpio_af_set(GPIOB, GPIO_AF_4, GPIO_PIN_6); //AF数值根据数据手册来设置
/* connect PB7 to I2C0_SDA */
gpio_af_set(GPIOB, GPIO_AF_4, GPIO_PIN_7);
/* configure I2C0 GPIO */
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_6);
gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_6);
gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_7);
gpio_output_options_set(GPIOB, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_7);
(3)模拟IIC引脚配置:
gpio_mode_set(GPIOF, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_7);
gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_7);
gpio_mode_set(GPIOF, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE,GPIO_PIN_6);
gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,GPIO_PIN_6);
模拟IIC参考demo:https://pan.baidu.com/s/1mhQsNpu#list/path=%2F%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E5%A4%B9%2F%E5%BA%94%E7%94%A8%E7%BB%8F%E9%AA%8C%E5%8F%8ADemo%E5%88%86%E4%BA%AB%2FGPIO%E6%A8%A1%E6%8B%9FIIC%20Demo
(4)SCL、SDA引脚加上拉
|