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

[复制链接]
1549|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

粉丝
快速回复 在线客服 返回列表 返回顶部