generalcircuits 发表于 2019-6-21 11:22:59

学习到I2C感觉底层和应用层都比较复杂,跟GPIO比复杂的多

       学习到I2C感觉底层和应用层都比较难,遇到的我的小瓶颈,没什么进步,懵逼了:funk:

顺带分享一下I2C总线规范中英文的都有,觉得中文翻译不好的可以直接看英文版的。

generalcircuits 发表于 2019-6-22 09:51:26


请教一下,I2C总线规范里的这句话说:其中一种情况是在SCL 线是高电平时SDA 线从高电平向低电平切换这个情况表示起始条件;当SCL 是高电平时SDA 线由低电平向高电平切换表示停止条件。
关于这一段代码的起始代码部分第7行代码为什么要将TM1640_SCLK设置为低电平呢?→GPIO_WriteBit(TM1640_GPIOPORT,TM1640_SCLK,(BitAction)(0)); //接口输出0

void TM1640_start(){ //通信时序 启始(基础GPIO操作)(低层)。                                    
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_DIN,(BitAction)(1)); //接口输出高电平1                  
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_SCLK,(BitAction)(1)); //接口输出高电平1            
      delay_us(DEL);                                                                                                            
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_DIN,(BitAction)(0)); //接口输出0                           
      delay_us(DEL);                                                                                                            
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_SCLK,(BitAction)(0)); //接口输出0                           
      delay_us(DEL);                                                                                                               
}
void TM1640_stop(){ //通信时序 结束(基础GPIO操作)(低层)
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_DIN,(BitAction)(0)); //接口输出0      
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_SCLK,(BitAction)(1)); //接口输出高电平1      
      delay_us(DEL);
      GPIO_WriteBit(TM1640_GPIOPORT,TM1640_DIN,(BitAction)(1)); //接口输出高电平1      
      delay_us(DEL);
}

zoro3 发表于 2019-6-22 11:19:25

资料不错,下载学习一下:lol

generalcircuits 发表于 2019-6-22 11:28:04

拿走拿走别客气:lol
页: [1]
查看完整版本: 学习到I2C感觉底层和应用层都比较复杂,跟GPIO比复杂的多