STM8 I2C问题(STM8S003的I2C初始化)
STM8S003的I2C初始化遇到些问题,单片机上电后将所有IO口设置为推挽输出低电平GPIO_Init(GPIOA, GPIO_PIN_ALL, GPIO_MODE_OUT_PP_LOW_SLOW);
GPIO_Init(GPIOB, GPIO_PIN_ALL, GPIO_MODE_OUT_PP_LOW_SLOW);
GPIO_Init(GPIOC, GPIO_PIN_ALL, GPIO_MODE_OUT_PP_LOW_SLOW);
GPIO_Init(GPIOD, GPIO_PIN_ALL, GPIO_MODE_OUT_PP_LOW_SLOW);
之后初始化I2C
GPIO_DeInit(GPIOB);
I2C_DeInit();
I2C_Init(400000, 0x0123, I2C_DUTYCYCLE_16_9, I2C_ACK_NONE, I2C_ADDMODE_7BIT, 16);
I2C的SR3的BUYS位一直置位,如果一开始不设置IO口为推挽输出低电平就不会出现这种情况,这是啥原因
帮顶 :):) STM8S003的I2C初始化后,一直总线在忙,while((I2C_SR3&0X02));楼主是怎么解决的?I2C寄存器初始化在STM8S005K6上是可以直接运行的,I2C寄存器初始化直接复制过来的,STM8S003F3I2C不用配制,STM8S005K6需要配制,
硬件上PB4与PB5有加上拉电阻4.7K,IO口初始化如下:
PB_DDR=0XFF;//输出模式PB5-->I2C_SDA PB4-->I2C_SCL
PB_CR1=0XCF;
PB_CR2=0XCF;
PB_ODR=0XFF;
wdshuang09 发表于 2017-8-24 14:28
STM8S003的I2C初始化后,一直总线在忙,while((I2C_SR3&0X02));楼主是怎么解决的?I2C寄存器初始化在STM8S0 ...
IIC初始化结束后加一个软件复位
页:
[1]