STM8S103F的 I2C的问题求助?

2019-03-23 19:32发布

STM8S103是模拟从机,主机I2C给它不断的发数据,我能通过示波器看到有地址数据在SDA线上了,但是STM8S103始终检测不到其地址信号
I2C_SR1.ADDR 一直是0. 但是 STM8S103能检测到BUS busy,即I2C_SR3.BUSY=1。
这是为啥?

主机里设定的从机地址是0x02,STM8S103设定的自身地址也是0x02 (0x01, 0x04都试过不行)。
STM8S103作为从机 I2C_CCRH, I2C_CCRL需要设定吗?我也按照与主机相同的频率设定了。

我没有用库,我直接写程序配置的寄存器。初始配置:

        CLK_PCKENR1 |= 0x01;               // 打开I2C工作clock
        I2C_FREQR |= 11;                  //输入外设时钟频率为11MHz
        I2C_CR1    = 0x00;                  //禁止I2C外设
        I2C_TRISER = 12; ///1000ns/90ns=11 11+1
        I2C_CCRL   = 105;
                                I2C_CCRH   = 0;
        I2C_CR1   |= 0x03;                  //开启I2C外设
        I2C_CR2   |= 0x04;                  //当前接收字节返回应答
        I2C_OARL   = (0x02);             //自身地址
        I2C_OARH   = 0x40;

[ 本帖最后由 dsp_comm 于 2012-9-26 10:12 编辑 ] 此帖出自小平头技术问答
0条回答

一周热门 更多>