STM32F1xx外设IIC驱动四线OLED
1、打开Keil uVision5,建立STM32F1xx工程。Toolchain : MDK-ARM Professional Version: 5.30.0.0STM32F1xx支持包 :Keil.STM32F1xx_DFP.2.3.0.pack





4、写命令。staticvoidvIIC_WriteCmd(u8wCmd){vIIC_Start();vIIC_WriteByte(0x78);vIIC_WaitAck();vIIC_WriteByte(0x00);vIIC_WaitAck();vIIC_WriteByte(wCmd);vIIC_WaitAck();vIIC_Stop();}写数据。staticvoidvIIC_WriteData(u8wDat){vIIC_Start();vIIC_WriteByte(0x78);vIIC_WaitAck();vIIC_WriteByte(0x40);vIIC_WaitAck();vIIC_WriteByte(wDat);vIIC_WaitAck();vIIC_Stop();}




5、画点函数staticvoidvOLED_DrawPoint(u8x,u8y,u8mode){u8pos=0,bx=0,temp=0;if((x>(OLED_XWIDTH_PHYSICS-1))||(y>(OLED_YHEIGHT_PHYSICS-1)))//Validsitereturn;pos=(OLED_PAGE_SIZE-1)-(y/OLED_PAGE_SIZE);bx=y%OLED_PAGE_SIZE;temp=1<<((OLED_PAGE_SIZE-1)-bx);if(mode)OLED_GRAM[x][pos]|=temp;elseOLED_GRAM[x][pos]&=~temp;}填充或者清空矩形voidvOLED_FillClearRectangle(u8x1,u8y1,u8x2,u8y2,u8mode){u8x,y;for(x=x1;x<=x2;x++){for(y=y1;y<=y2;y++)vOLED_DrawPoint(x,y,mode);}}















