peter-338909 发表于 2014-12-26 22:38:00

STM8 I2C通信问题


各位大神,小弟初学,在用STM8S003F3调试硬件I2C,总线上有三个器件,包括STM8,当我用MCU把另两个器件复位后,发现I2C被IC1占用,MCU要对IC2写配置写不进去,总线一直忙,后来我用IC1的测试工具接到I2C总线上发现,这个工具每次对I2C进行操作的时候都会把SDA和SCL拉低然后再发送数据(图1)。我就想如果让MCU的I2C每次通讯前也把SDA和SCL拉低,但是我用了很多方法都没办法把SDA和SCL拉低,请各位大神指点,程序要怎么写?谢谢!

那片清茶 发表于 2014-12-27 09:18:57

STM8的IIC最好用模拟的。

peter-338909 发表于 2014-12-27 13:07:28

没有用过模拟的I2C,有没有例子,我也可以试试

奔跑小蜗牛 发表于 2014-12-29 10:16:35

STM8的i2c接口引脚是否连接正确?在引脚外面加一个上拉,IO配置为开漏输出,这样从设备就能拉低总线。如果你把IO设置为推挽输出,i2c设备是不能拉低总线的,推挽能力太强了。读数据的时候,只需要读取ODR_IDR寄存器就可以知道引脚的高低电平值。

wambob 发表于 2014-12-29 19:12:17

这个工具每次对I2C进行操作的时候都会把SDA和SCL拉低,是怎么拉低了,工具能,MCU不能?

damiaa 发表于 2014-12-31 14:14:15

SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;

SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。

SDA不变时,            SCL由低到高到低1位数据传送过去,连续8位为一字节.

页: [1]
查看完整版本: STM8 I2C通信问题