PIC模拟i2c存在的问题

2020-02-06 10:25发布

最近再用pic普通io口模拟I2C与传感器bh1710进行通信,因为是模拟I2C,有些问题我不是太明白。
就我观察到的,pic模拟i2c主要有两种方式,我下面分别说明一下:
第一种方式,就是把io口数据寄存器初始值设为0,当想输出高电平时,就设为输入状态,引脚在外部上拉电阻的作用下自动拉高;当想输出低电平时,设置为输出状态,数据寄存器上的0就被输出到io口。
第二种方式,就是把io口设置为输出状态,输出0就是0,输出1就是1。
上面两种方式我都见过,不知道究竟哪一种更好,关键是现在我的程序还没有调通,所以也不知道是不是用的方式不对。
大家有什么意见,可以说一下吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
alias
1楼-- · 2020-02-07 05:11
>> 当mcu输出高电平的时候,相当于mcu内部使端口直接连接vcc

不一定。PIC 有一种输出是用了开漏形式的,像 16F628A 的 RA4 脚,就可以使用你提到的第二种方法,不过只限此脚而已。
panda08
2楼-- · 2020-02-07 05:17
 精彩回答 2  元偷偷看……
防滑销钉
3楼-- · 2020-02-07 05:30
panda08 发表于 2014-11-6 13:16
楼主能把您的模拟i2c程序发上来学习一下吗???

不好意思啊,时间太长了,程序已经没有了。
不过我有一点经验,就是第一次写的话,最好用示波器一个一个的看,开始,停止,发送一个字节。
等到都没有问题了,再整条命令的尝试

一周热门 更多>