蓝熊233 发表于 2015-11-17 23:32:12

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口为推挽输出低电平就不会出现这种情况,这是啥原因

lkl0305 发表于 2015-11-18 08:04:17

帮顶 :):)

wdshuang09 发表于 2017-8-24 14:28:05

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;

miaol7 发表于 2019-2-12 10:17:02

wdshuang09 发表于 2017-8-24 14:28
STM8S003的I2C初始化后,一直总线在忙,while((I2C_SR3&0X02));楼主是怎么解决的?I2C寄存器初始化在STM8S0 ...

IIC初始化结束后加一个软件复位
页: [1]
查看完整版本: STM8 I2C问题(STM8S003的I2C初始化)