打印
[STM8]

两个单片机I2C通信的问题,求解答

[复制链接]
1390|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qgmfly|  楼主 | 2015-11-16 11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
片子用的是STM8S903K作主机,STM8S003F作从机。
参考了网上的程序,通信发现主机一直停在发送起始位,想请教一下是什么问题

void IIC_Start(void)
{
        while((I2C_SR3 & 0X02) != 0X00);//判断总线忙
        I2C_CR2 |= 0X01;                //产生起始位
        while((I2C_SR1 & 0X01) == 0X00);//等待起始位已发送
}

一直停在 while((I2C_SR1 & 0X01) == 0X00);这一句
沙发
airwill| | 2015-11-16 18:03 | 只看该作者
起始位发送不了, 可能是SDA, SCK 被外部拉低了

使用特权

评论回复
板凳
qgmfly|  楼主 | 2015-11-17 09:11 | 只看该作者
airwill 发表于 2015-11-16 18:03
起始位发送不了, 可能是SDA, SCK 被外部拉低了

我用显波器观察了,SDA,SCK都是高电平,我电路上接了有1K的上拉电阻。很无奈,现在程序是能运行过这一句了,可是SDA信号线上什么信号示波器都没看到,一直高电平,是不是I2C模块坏掉了?

使用特权

评论回复
地板
airwill| | 2015-11-17 11:56 | 只看该作者
那可能你的 I2C 外设的设置有问题, 或者端口没有配置给 I2C 外设用

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
qgmfly + 1
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

49

帖子

1

粉丝