#ifndef _I2C_H_#define_I2C_H_#include"REG52.h"#defineu8 unsigned char#defineu16 unsigned int#defineu32 unsigned intsbit OLED_SCL=P1^0;//SCLsbit OLED_SDA=P1^1;//SDA//---OLED端口定义---#defineOLED_SCL_Clr() OLED_SCL=0#defineOLED_SCL_Set() OLED_SCL=1#defineOLED_SDA_Clr() OLED...
在SCL高电平期间,拉低SDA,则产生起始条件,在下一个SCL低电平期间,传输数据 结束条件: 当SCL高电平期间,拉高SDA则产生结束条件 发送数据,接收数据: 在SCL低电平期间可以任意调整SDA的高低电平,在SCL高电平期间,接收方读取SDA的电平,从而读取到接收方的数据 发送应答,接收应答: 发送完成一个数据后,在SCL低电平期间,...
#define OLED_SCL_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_0) //CLK SCL 置0 #define OLED_SCL_Set() GPIO_SetBits(GPIOA,GPIO_Pin_0) #define OLED_SDA_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_1) //MOSI SDA 置0 #define OLED_SDA_Set() GPIO_SetBits(GPIOA,GPIO_Pin_1) #define OLED_RES_...
除了初始化部分,一般为了方便设置GPIO的高低电平,一般还有对这两个引脚操作的宏定义需要修改,具体位置如下: //---OLED IIC端口定义--- #define OLED_SCLK_Clr() GPIO_ResetBits(GPIOC,GPIO_Pin_7)//CLK IIC接口的时钟信号 #define OLED_SCLK_Set() GPIO_SetBits(GPIOC,GPIO_Pin_7) #define OLED_SDIN_C...
#define OLED_SDIN_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_7)//SCL IIC接口的数据信号 #define OLED_SDIN_Set() GPIO_SetBits(GPIOA,GPIO_Pin_7) 1. 2. 3. 4. 5. 6. 7. 对于模拟iic,大家可以参考一下这篇文章,超详细:【STM32】IIC的基本原理 ...
单片机汇编源程序如下:SCL BIT P1.0 ;引脚定义 SDA BIT P1.1 ORG 00H JMP START ;跳转到...
//#define OLED_SCLK_Clr() (GPIOA->PBC = GPIO_PIN_4)//SCL //#define OLED_SCLK_Set() ...
OLED_SCL_Clr();//将时钟信号设置为低电平 if(dat&0x80)//将dat的8位从最高位依次写入 { OLED_...
为使OLED工作,其时钟引脚SCL是与P1相连,数据引脚DIN则与P6相连。相应的高低电平输出语句则定义为: #define OLED_SCLK_Clr() GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 1, 0 ); //10 SCL #define OLED_SCLK_Set() GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 1, 1 ); ...
OLED_SCLK_Clr(); } /*** //IIC Stop 结束信号:SCL高电平时,SDA由低电平到高电平跳变,结束传送数据。 ***/ void OLED_IIC_Stop() { OLED_SCLK_Set() ; // OLED_SCLK_Clr(); OLED_SDIN_Clr(); OLED_SDIN_Set(); } void OLED_IIC_Wait...