打印

STM8S103F的 I2C的问题求助?

[复制链接]
1603|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
comm_dsp|  楼主 | 2012-9-26 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

0

粉丝