IIC-实践

本文介绍了IIC通信协议的基础知识,包括起始和停止条件的实现,以及如何进行写操作。详细讲解了在STM32单片机上实现IIC的基本函数和上层应用函数的步骤,为嵌入式开发中0.96寸屏幕等设备的控制提供了实用指导。
摘要由CSDN通过智能技术生成

前言

  上节讲解了IIC的协议,这节讲讲函数实现。参考之前我们平衡小车的程序,上面用到0.96的屏幕,这个屏幕就是IIC通信的。

基本函数的实现

当 SCL 线是高电平时 ,SDA 线从高电平向低电平切换,表示通讯的起始。

/**********************************************
//IIC Start
**********************************************/
void OLED_IIC_Start()
{
   
	OLED_SCLK_Set() ; 		//置高SCL引脚
	OLED_SDIN_Set();		//置高SDA引脚
	OLED_SDIN_Clr();		//置低SDA引脚
	OLED_SCLK_Clr();		//置低SCL引脚
}

  首先置高SCL,此时将SDA先置高,之后再置低,就完成了从高到低的转换,最后置低SCL位,为下次操作做准备,这就是IIC的开始。是不是很简单、

当 SCL 是高电平时,SDA线由低电平向高电平切换,表示通讯的停止。

/**********************************************
//IIC Stop
**********************************************/
void OLED_IIC_Stop()
{
   
	OLED_SCLK_Set() ;
	//	OLED_SCLK_Clr();
	OLED_SDIN_Clr();
	OLED_SDIN_Set();
	OLED_SCLK_Clr() ;
}

  首先置高SCL,此时将SDA先置低,之后再置高,就完成了从低到高的转换,最后置低SCL位,为下次操作做准备,这就是IIC的结束。是不是很简单、

写操作函数的实现

/**********************************************
// IIC Write byte
**********************************************/
void OLED_Write_IIC_Byte(unsigned char IIC_Byte)
{
   
	unsigned char i;
	unsigned char m,da;
	da=IIC_Byte;		//把将要发送的数据放到da中
	OLED_SCLK_Clr(); 	//先置低SCL引脚
	for(i=0;i<8;i++)	//一个字节8各位,循环8次	
	{
   
		m=da;			//把数据转到m中
		m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值