I2C总线的小问题,求大神!在线等
I2C总线中,SCL到底应该怎么样设定我看datasheet都是这样的方波但是我看郭天祥的视频,他编程的时候,直接就是初始化SCL=1,然后根据要传数据,还是穿开始信号什...
I2C总线中,SCL到底应该怎么样设定
我看datasheet都是这样的方波
但是我看郭天祥的视频,他编程的时候,直接就是初始化SCL=1,然后根据要传数据,还是穿开始信号什么的,直接给SCL赋值。
但是我理解的是和从图中看来,SCL不应该就是一个主机直接产生的方波吗?还是说只是他这么画,其实就是可以随时设定的? 展开
我看datasheet都是这样的方波
但是我看郭天祥的视频,他编程的时候,直接就是初始化SCL=1,然后根据要传数据,还是穿开始信号什么的,直接给SCL赋值。
但是我理解的是和从图中看来,SCL不应该就是一个主机直接产生的方波吗?还是说只是他这么画,其实就是可以随时设定的? 展开
1个回答
展开全部
这其实是个编程思想的问题,郭天祥写的是软件模拟的iic,用c语言模拟了一段iic时序,实际做法可以有两种:
1、像你说的,直接产生SCL方波,然后从start时序开始你要从头到尾严格通过定时器延时来控制整个传输过程SDA线的变化,类似面向过程来编程。
2、将读,写,start,stop写成几个子函数,子函数里就是模拟一小段时序,所以SCL是初始化赋值的方式。接着你只要调用这些子函数对象就可以完成传输过程,可重复性可移植性都比上面的方法好。
SCl在传输过程中除了start stop前后,确实就是个一般是100kHz的方波。
1、像你说的,直接产生SCL方波,然后从start时序开始你要从头到尾严格通过定时器延时来控制整个传输过程SDA线的变化,类似面向过程来编程。
2、将读,写,start,stop写成几个子函数,子函数里就是模拟一小段时序,所以SCL是初始化赋值的方式。接着你只要调用这些子函数对象就可以完成传输过程,可重复性可移植性都比上面的方法好。
SCl在传输过程中除了start stop前后,确实就是个一般是100kHz的方波。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询