OLED显示字符串 汉字 图形
①显示字符串
oled.c核心代码
void oled_show_char(uint8_t x,uint8_t y ,uint8_t num,uint8_t size) //y为哪一行 x为哪一列,num为ascii值,size为高度 设置了三个高度 12 16 24
{uint8_t i,j,page;num=num-' ';page =size / 8;if(size % 8 != 0)page++;for(j= 0;j<page;j++){oled_set_cursor(x,y + j);for( i = size / 2 * j; i < size / 2 * ( j + 1 ) ; i++){if(size == 12)oled_write_data(ascii_6X12[num][i]);else if(size == 16)oled_write_data(ascii_8X16[num][i]);else if(size == 24)oled_write_data(ascii_12X24[num][i]);}}}void oled_show_string(uint8_t x,uint8_t y,char *p, uint8_t size) //第三个参数为字符串的内容
{while(*p != '\0'){oled_show_char(x, y,*p,size);x +=size/2;p++;}}
②显示汉字:
oled.c核心代码
void oled_show_chinese(uint8_t x, uint8_t y, uint8_t N, uint8_t size) //N为汉字的位数
{uint16_t i, j;for(j = 0; j < size/8; j++){oled_set_cursor(x, y + j);for(i = size *j; i < size * (j + 1); i++){if(size == 16)oled_write_data(chinese_16x16[N][i]);else if(size == 24)oled_write_data(chinese_24x24[N][i]);}}
}
③显示图片:
oled.c核心代码
void oled_show_image(uint8_t x,uint8_t y,uint8_t width,uint8_t height,uint8_t *bmp) //其中参数bmp为指针
{uint8_t i,j;for(j=0;j<height;j++){oled_set_cursor(x,y+j);for(i=0;i<width;i++)oled_write_data(bmp[width * j +i]);}}