通过IIC实现OLED显示

通过IIC实现OLED显示

  • 做完毕业设计,就想一篇关于IIC的文章。IIC是一种串行半双工的同步通信方式。主要由数据线和时钟线构成串行总线,可以进行发送和接收数据。其在时钟线的控制下完成数据的发送和结束。
    
  •  IIC总线在传输数据过程中共有三种类型信号,他们分别是开始信号、结束信号和应答信号。
    
  •  开始信号:在SCL(时钟线)为高电平时,SDA(数据线)由高电平向低电平(下降沿)跳变,开始传送数据,即它是一个开始传送数据的信号。
    
  •  结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束数据传送。
    
  •  应答信号:接收数据的IC在接收到8比特数据后,向发送数据的IC发出特定的低电平脉冲(接收数据的IC将SDA拉低,硬件置0)。
    
  •  接下来从代码层次讲解IIC。由于本人水平有限,若由不当之处,请指出,多多包涵。`
    

IIC的三种信号编写

 void IIC_Starct(){
   
	
	IIC_SCL=1delay_us(10);
	IIC_SDA=1;
	delay_us(10);
	IIC_SDA=0;
	delay_us(10);
	IIC_SCL=0;//将SCL钳住,为接下来发送数据做准备(SDA上的数据只有在SCL为0,才允许发生变化)
}
//停止信号,我是按照严格按照时序编写的
 void IIC_Stop(){
   
	IIC_SCL=0;
	IIC_SDA=0;
	delay_us(10);
	IIC_SCL=1;
	IIC_SDA=1;
	delay_us(5);
}
u8 IIC_Wait_Ack(){
   
	u8 errtime=0;
	SDA_IN();//将SDA设置为输入
	IIC_SDA=1;
	delay_us(10);
	IIC_SCL&
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值