一个很bug的函数gpio_bit_write
/*!\brief write data to the specified GPIO pin\param[in] gpio_periph: GPIOx(x = A,B,C,D,E,F,G)\param[in] pin: GPIO pinone or more parameters can be selected which are shown as below:\arg GPIO_PIN_x(x=0..15), GPIO_PIN_ALL\param[in] bit_value: SET or RESET\arg RESET: clear the port pin\arg SET: set the port pin\param[out] none\retval none*/void gpio_bit_write(uint32_t gpio_periph, uint32_t pin, bit_status bit_value){if(RESET != bit_value){GPIO_BOP(gpio_periph) = (uint32_t)pin;}else{GPIO_BC(gpio_periph) = (uint32_t)pin;}}
bit_value 只能是SET or RESET 想弄成 0 1
解决办法:


搞了一天,I2C驱动OLED,没想到问题出在时钟上,不仅要打开GPIO的时钟,I2C也要同时打开。
