PCF8591的I2C是如何驱动的
时间:10-02
整理:3721RD
点击:
void Start_I2c()
{
SDA=1; /*发送起始条件的数据信号*/
_Nop();
SCL=1;
_Nop(); /*起始条件建立时间大于4.7us,延时*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*发送起始信号*/
_Nop(); /* 起始条件锁定时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*钳住I2C总线,准备发送或接收数据 */
_Nop();
_Nop();
}
_Nop()在这里的作用是延时吗?为什么不用delay延时?
{
SDA=1; /*发送起始条件的数据信号*/
_Nop();
SCL=1;
_Nop(); /*起始条件建立时间大于4.7us,延时*/
_Nop();
_Nop();
_Nop();
_Nop();
SDA=0; /*发送起始信号*/
_Nop(); /* 起始条件锁定时间大于4μs*/
_Nop();
_Nop();
_Nop();
_Nop();
SCL=0; /*钳住I2C总线,准备发送或接收数据 */
_Nop();
_Nop();
}
_Nop()在这里的作用是延时吗?为什么不用delay延时?
谢谢了,
还有个问题,就是在用PCF8591编程时,要先驱动I2C,给I2C编完程序后,在AD编程时就可以直接调用I2C里的子程序吗?为什么是分两个工程编程,可以在一个工程中完成吗?
帮忙回答一下吧,小弟正在学单片机,有些东西真的不是很明白啊。
用写和读吧
什么意思?
和AT24C02差不多 只是读寄存器的地址不同 我也是看参考程序+DATASHEET才看懂的
1.我想你可能把一个.h文件误认为了是一个工程文件,因为程序比较长,所以作者把程序分模块写了。2.PCF8591是IIC协议通信的,不是说先驱动IIC。
可以的
正在练习,看到大家发言就好了呵呵