diff --git a/stm32F030F4_code/mydrivers/OLED.c b/stm32F030F4_code/mydrivers/OLED.c index 766b2d1..ad657ee 100644 --- a/stm32F030F4_code/mydrivers/OLED.c +++ b/stm32F030F4_code/mydrivers/OLED.c @@ -125,7 +125,7 @@ void OLED_WrDat(unsigned char IIC_Data) void OLED_Set_Pos(unsigned char x, unsigned char y) { - OLED_WrCmd( 0xb0 + y ); + OLED_WrCmd( 0xb0 + 7-y ); OLED_WrCmd(((x&0xf0)>>4)|0x10); OLED_WrCmd( (x&0x0f) |0x00); } @@ -170,11 +170,11 @@ void OLED_Init(void) OLED_WrCmd(0x20); //设置内存地址模式 OLED_WrCmd(0x02); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10; OLED_WrCmd(0xA1); //段重定义设置,bit0:0,0->0;1,0->127; - //OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 + OLED_WrCmd(0xC0); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数 //OLED_WrCmd(0xDA); //设置COM硬件引脚配置 //OLED_WrCmd(0x12); //[5:4]配置 //显示方向设置 - OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0); + //OLED_WrCmd(0xc8);//OLED_WrCmd(0xa0); //行扫描顺序:从上到下 //列扫描顺序:从左到右 OLED_WrCmd(0xD9); //设置预充电周期 @@ -195,15 +195,38 @@ void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr) OLED_Set_Pos(x,y); for(char a=0;a<8;a++) { - OLED_WrDat(asc2_1608[chr-' '][(a*2)+1]); + OLED_WrDat(asc2_1608[chr-' '][(a*2)]); } OLED_Set_Pos(x,y+1); for(char a=0;a<8;a++) { - OLED_WrDat(asc2_1608[chr-' '][(a*2)]); + OLED_WrDat(asc2_1608[chr-' '][(a*2)+1]); } } +void OLED_ShowStr(unsigned char x,unsigned char y,char *str) +{ + while(*str!='\0') + { + if(x>=X_WIDTH) + { + y++; + if(y>=Y_WIDTH_) + { + y=0; + } + x=0; + } + + OLED_ShowChar(x,y,*str); + + str++; + x+=8; + + } + +} + diff --git a/stm32F030F4_code/mydrivers/OLED.h b/stm32F030F4_code/mydrivers/OLED.h index cef0128..d475d05 100644 --- a/stm32F030F4_code/mydrivers/OLED.h +++ b/stm32F030F4_code/mydrivers/OLED.h @@ -20,6 +20,6 @@ void OLED_Init(void); void OLED_Init_Display_Buffer(char a); void OLED_ShowChar(unsigned char x,unsigned char y,unsigned char chr); - +void OLED_ShowStr(unsigned char x,unsigned char y,char *str); #endif /* OLED_H_ */ diff --git a/stm32F030F4_code/mydrivers/my.c b/stm32F030F4_code/mydrivers/my.c index b615f44..4c37ba4 100644 --- a/stm32F030F4_code/mydrivers/my.c +++ b/stm32F030F4_code/mydrivers/my.c @@ -14,7 +14,7 @@ void mymain() OLED_Init(); OLED_Init_Display_Buffer(0); - OLED_ShowChar(0,0,48); + OLED_ShowStr(0,0,"123"); while(1) {