DMA循环刷新oled12864

一、oled12864的初始化

​ 这里使用的是oled12864 7Pin-SPI,屏幕驱动:ssd1306,i2c接口的看具体情况改。主控:stm32f103vet6

​ 一般网上的oled代码初始化过程都将oled的寻址模式配置成了页寻址模式,在页寻址模式下使用DMA循环发送的话,每次刷新完一页(128Byte)都要发送重新设置下一页的地址,所以不能一次性刷新整个屏幕。

​ 查阅ssd1306的数据手册,得到设置寻址方式的命令。

​ 将ssd1302设置成水平寻址模式 00b Horizontal Addressing Mode。
​ 初始化指令如下:(其他指令自行查阅手册 0x20,0x00设置寻址方式)

//OLED_初始化指令
static uint8_t OLED12864_InitCmd[28] = {0xae,0x00,0x10,0x40,0x81,0xcf,0xa1,0xc8,0xa6,0xa8,0x3f,0xd3,0x00,0xd5,0x80,0xd9,0xf1,0xda,0x12,0xdb,0x40,0x20,0x00,/*设置成水平寻址模式*/0x8d,0x14,0xa4,0xa6,0xaf
};

​ 这样我们就能使用DMA循环发送一次性刷新整个屏幕。现在进行oled的初始化(使用的7pin SPI OLED)

void OLED12864_Init(void)
{//spi在外部完成初始化OLED12864_GPIO_Init();OLED12864_Hard_Reset();OLED12864_Set_Position(0,0); //设置起始地址DC_HIGHT(); //拉高DC 之后DMA循环发送的字节属于数据CS_LOW();    //片选
}void OLED12864_Hard_Reset(void)
{RES_LOW();OLED12864_delay_ms(200);RES_HIGHT();CS_LOW();OLED12864_Send_NumByte(OLED12864_InitCmd,28,OLED_CMD);  //发送初始化命令OLED12864_Clear();
}void OLED12864_Set_Position(uint8_t page,uint8_t x)
{uint8_t dat[3];dat[0] = 0xb0 + page;           //页地址dat[1] = ((0xf0&x)>>4)|0x10;    //x坐标高四位设定dat[2] = 0x0f&x;                //x坐标低四位设定OLED12864_Send_NumByte(dat,3,OLED_CMD);
}

二、oled缓存与DMA

​ oled12864一共8页,每页128字节。所以需要定义一个1024字节的缓存,为了方便操作缓存,定义成二维数组。

uint8_t OLED12864_Sbuffer[8][128];

​ 接下来使能DMA,这里使用HAL库直接生成。设置spi的DMA模式为循环模式。

//调用HAL库函数,使用DMA发送
void user_init(void)
{OLED12864_Init();HAL_SPI_Transmit_DMA(&hspi1,OLED12864_Sbuffer[0],1024);
}

​ 这下DMA会自动循环将OLED12864_Sbuffer中的内容显示在屏幕上了,对屏幕的控制只需要更改OLED12864_Sbuffer中的数据就行。

三、源码以及效果

效果

main.c中的main()函数

int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_DMA_Init();MX_SPI1_Init();/* USER CODE BEGIN 2 */user_init();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */user_main();while(1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 *//* USER CODE END 3 */}
}

user.c

注意:这里将printf()重定向到oled了!!!见oled12864.c

#include "user.h"
#include "HARDWARE\OLED\oled12864.h"void user_init(void)
{OLED12864_Init();HAL_SPI_Transmit_DMA(&hspi1,OLED12864_GetSbufferAddr(),1024);
}void user_main(void)
{while (1){HAL_Delay(1000);printf("Time:%d\n",HAL_GetTick()/1000);}
}

oled12864.c

#include "oled12864.h"
#include "font_lib.h"#define CS_LOW()    HAL_GPIO_WritePin(OLED_CS_GPIO,OLED_CS_Pin,GPIO_PIN_RESET)
#define CS_HIGHT()  HAL_GPIO_WritePin(OLED_CS_GPIO,OLED_CS_Pin,GPIO_PIN_SET)
#define DC_LOW()    HAL_GPIO_WritePin(OLED_DC_GPIO,OLED_DC_Pin,GPIO_PIN_RESET)
#define DC_HIGHT()  HAL_GPIO_WritePin(OLED_DC_GPIO,OLED_DC_Pin,GPIO_PIN_SET)
#define RES_LOW()   HAL_GPIO_WritePin(OLED_RES_GPIO,OLED_RES_Pin,GPIO_PIN_RESET)
#define RES_HIGHT() HAL_GPIO_WritePin(OLED_RES_GPIO,OLED_RES_Pin,GPIO_PIN_SET)static void OLED12864_GPIO_Init(void);
static void OLED12864_Hard_Reset(void);/************************************************* OLED12864缓存* [paeg][x]* 一个元素保函8像素点信息* 在屏幕上,Bit0~Bit7自上向下排列 高位在下
************************************************/
static uint8_t OLED12864_Sbuffer[8][128];
//OLED_初始化指令
static uint8_t OLED12864_InitCmd[28] = {0xae,0x00,0x10,0x40,0x81,0xcf,0xa1,0xc8,0xa6,0xa8,0x3f,0xd3,0x00,0xd5,0x80,0xd9,0xf1,0xda,0x12,0xdb,0x40,0x20,0x00,0x8d,0x14,0xa4,0xa6,0xaf
};void OLED12864_Send_NumByte(uint8_t*dat,uint8_t len,uint8_t cmd)
{while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY);if(cmd)DC_HIGHT();elseDC_LOW();HAL_SPI_Transmit_IT(&hspi1,dat,len);
}void OLED12864_Send_Byte(uint8_t dat,uint8_t cmd)
{while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY);if(cmd)DC_HIGHT();elseDC_LOW();HAL_SPI_Transmit_IT(&hspi1,&dat,1);
}void OLED12864_Init(void)
{OLED12864_GPIO_Init();OLED12864_Hard_Reset();OLED12864_Set_Position(0,0);DC_HIGHT();CS_LOW();
}uint8_t*OLED12864_GetSbufferAddr(void)
{return OLED12864_Sbuffer[0];
}void OLED12864_GPIO_Init(void)
{GPIO_InitTypeDef    GPIO_InitStruct;__HAL_RCC_GPIOB_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOF_CLK_ENABLE();GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_PULLDOWN;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;GPIO_InitStruct.Pin = OLED_CS_Pin;HAL_GPIO_Init(OLED_CS_GPIO,&GPIO_InitStruct);GPIO_InitStruct.Pin = OLED_RES_Pin;HAL_GPIO_Init(OLED_RES_GPIO,&GPIO_InitStruct);GPIO_InitStruct.Pin = OLED_DC_Pin;HAL_GPIO_Init(OLED_DC_GPIO,&GPIO_InitStruct);CS_HIGHT();RES_HIGHT();
}void OLED12864_Hard_Reset(void)
{RES_LOW();OLED12864_delay_ms(200);RES_HIGHT();CS_LOW();OLED12864_Send_NumByte(OLED12864_InitCmd,28,OLED_CMD);OLED12864_Clear();
}void OLED12864_Clear_Sbuffer(void)
{uint8_t page,x;for(page=0;page<8;page++){for(x=0;x<128;x++)OLED12864_Sbuffer[page][x] = 0x00;}
}void OLED12864_Clear(void)
{OLED12864_Clear_Sbuffer();OLED12864_Refresh();
}void OLED12864_Refresh(void)
{uint8_t page;for(page=0;page<8;page++){OLED12864_Set_Position(page,0);OLED12864_Send_NumByte(OLED12864_Sbuffer[page],128,OLED_DATA);}
}void OLED12864_Set_Position(uint8_t page,uint8_t x)
{uint8_t dat[3];dat[0] = 0xb0 + page;           //页地址dat[1] = ((0xf0&x)>>4)|0x10;    //x坐标高四位设定dat[2] = 0x0f&x;                //x坐标低四位设定OLED12864_Send_NumByte(dat,3,OLED_CMD);
}void OLED12864_Clear_PageBlock(uint8_t page,uint8_t x,uint8_t len)
{uint8_t sx = x+len;if(sx > x_MAX-1 || page > page_MAX-1)return;for(uint8_t temp=0;temp<len;temp++)OLED12864_Sbuffer[page][temp+x] = 0x00;
}#if oled_printf == 1
static uint8_t printf_page = 0;
static uint8_t printf_x = 0;
int fputc(int ch, FILE *f)
{if(printf_x > 128){printf_x = 0;printf_page++;}if(printf_page > 7){printf_x = 0;printf_page = 0;OLED12864_Clear_Sbuffer();}if(ch == '\n'){printf_page++;printf_x = 0;}else{OLED12864_Show_Char(printf_page,printf_x,ch,1);printf_x += 6;}return (ch);
}
#endifvoid OLED12864_Clear_Page(uint8_t page)
{OLED12864_Clear_PageBlock(page,0,127);
}void OLED12864_Show_Char(uint8_t page,uint8_t x,uint8_t chr,uint8_t size)
{switch(size){case 1:for(uint8_t temp=0;temp<6;temp++)OLED12864_Sbuffer[page][x+temp] = assic_0806[chr-0x20][temp];break;case 2://从左至右,从上至下for(uint8_t s_page = 0;s_page<2;s_page++){for(uint8_t s_x = 0; s_x<8;s_x++){OLED12864_Sbuffer[s_page+page][x+s_x] = assic_1608[chr-0x20][s_page*8+s_x];}}break;default:break;}
}void OLED12864_Show_Num(uint8_t page,uint8_t x,int num,uint8_t size)
{uint8_t sbuf[8];sprintf((char*)sbuf,"%d",num);OLED12864_Show_String(page,x,sbuf,size);
}void OLED12864_Show_fNum(uint8_t page,uint8_t x,float num,uint8_t size)
{uint8_t sbuf[32];sprintf((char*)sbuf,"%.2f",num);OLED12864_Show_String(page,x,sbuf,size);
}void OLED12864_Show_String(uint8_t page,uint8_t x,uint8_t*str,uint8_t size)
{uint8_t sx = 0;while(*str!='\0'){OLED12864_Show_Char(page,x+sx,*str,size);switch(size){case 1:sx+=6;break;case 2:sx+=8;break;default:break;}str++;}
}//像素点相关操作
#if USE_POINT_CRT == 1void OLED12864_Draw_Point(uint8_t x,uint8_t y,uint8_t bit)
{if(y > y_MAX-1 || x > x_MAX-1)return;uint8_t page = y/8;uint8_t col = y%8;if(bit)OLED12864_Sbuffer[page][x] |= (0x01<<col);elseOLED12864_Sbuffer[page][x] &= ~(0x01<<col);
}void OLED12864_Draw_Line(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2)
{float sx,sy;float k,k_1;   //斜率k = ((float)y2-y1) / ((float)x2-x1);k_1 = 1/k;sx = x1;sy = y1;for(;x1<=x2;x1++){sy += k;OLED12864_Draw_Point(x1,(int)sy,1);}for(;y1<=y2;y1++){sx += k_1;OLED12864_Draw_Point((int)sx,y1,1);}
}void OLED12864_Draw_Rect(uint8_t x,uint8_t y,uint8_t len,uint8_t hight)
{for(uint8_t temp=0;temp<len;temp++){OLED12864_Draw_Point(x+temp,y,1);OLED12864_Draw_Point(x+temp,y+hight,1);}for(uint8_t temp=0;temp<hight;temp++){OLED12864_Draw_Point(x,y+temp,1);OLED12864_Draw_Point(x+len,y+temp,1);}
}void OLED12864_Draw_Img(uint8_t x,uint8_t y,uint8_t len,uint8_t hight,uint8_t*img)
{uint8_t sx,sy;uint16_t dat_addr_pos;uint8_t page_pos;uint8_t bit_pos;for(sy=0;sy<hight;sy++){page_pos = sy/8;bit_pos = sy%8;for(sx=0;sx<len;sx++){dat_addr_pos = page_pos*len + sx;OLED12864_Draw_Point(sx+x,sy+y, *(img+dat_addr_pos) & ((0x80)>>bit_pos) );}}
}void OLED12864_Draw_aImg(uint8_t x,uint8_t y,uint8_t*img)
{uint8_t len,hight;uint8_t sx,sy;uint16_t dat_addr_pos;uint8_t page_pos;uint8_t bit_pos;len = *(img+3) + *(img+2)*256;hight = *(img+5) + *(img+4)*256;for(sy=0;sy<hight;sy++){page_pos = sy/8;bit_pos = sy%8;for(sx=0;sx<len;sx++){dat_addr_pos = page_pos*len + sx + 6;OLED12864_Draw_Point(sx+x,sy+y, *(img+dat_addr_pos) & ((0x80)>>bit_pos) );}}
}#endif  //USE_POINT_CRT

oled12864.h

#ifndef _OLED12864_H_
#define _OLED12864_H_#include <stdio.h>
#include "main.h"#include "spi.h"/*************************************************************************************** 基于stm32f103zet6的OLED12864 4Pin_SPI* OLED12864驱动芯片:SSD1306* 使用了self_type.h* 方便引脚初始化 和 输出* * 2021/10/16: 将spi分离了出去,留出了spi接口OLED12864_SPI_Send_Byte()* * Creat by: 庞碧璋* Github: https://github.com/CodingBugStd* csdn:   https://blog.csdn.net/RampagePBZ* Encoding: utf-8* date:    2021/6/22* last date: 2021/10/16* * 备注:在移植时注意数据类型的依赖!
**************************************************************************************///外部函数
#define OLED12864_delay_ms(ms)                  HAL_Delay(ms)//硬件相关宏定义,定义物理引脚名字
#define OLED_RES_Pin    GPIO_PIN_5
#define OLED_RES_GPIO   GPIOC
#define OLED_DC_Pin     GPIO_PIN_1
#define OLED_DC_GPIO    GPIOB
#define OLED_CS_Pin     GPIO_PIN_11
#define OLED_CS_GPIO    GPIOF
#define x_MAX           128
#define y_MAX           64
#define page_MAX        8//OLED模式
#define USE_POINT_CRT       1   //不使用像素点级别操作
#define oled_printf         1   //printf重定向到oled屏幕#define OLED_CMD    0
#define OLED_DATA   1//初始化
void OLED12864_Init(void);void OLED12864_Send_Byte(uint8_t dat,uint8_t cmd);
void OLED12864_Send_NumByte(uint8_t*dat,uint8_t len,uint8_t cmd);uint8_t*OLED12864_GetSbufferAddr(void);
void OLED12864_Refresh(void);
void OLED12864_Set_Position(uint8_t page,uint8_t x);
void OLED12864_Clear_Sbuffer(void);
void OLED12864_Clear(void);//y坐标位置和高度都以page为单位的图形操作
void OLED12864_Clear_PageBlock(uint8_t page,uint8_t x,uint8_t len);
void OLED12864_Clear_Page(uint8_t page);
void OLED12864_Show_Char(uint8_t page,uint8_t x,uint8_t chr,uint8_t size);
void OLED12864_Show_String(uint8_t page,uint8_t x,uint8_t*str,uint8_t size);
void OLED12864_Show_Num(uint8_t page,uint8_t x,int num,uint8_t size);
void OLED12864_Show_fNum(uint8_t page,uint8_t x,float num,uint8_t size);//以单个像素点为单位的图形操作
#if USE_POINT_CRT == 1
void OLED12864_Draw_Point(uint8_t x,uint8_t y,uint8_t bit);             //<--像素点操作底层函数
void OLED12864_Draw_Line(uint8_t x1,uint8_t y1,uint8_t x2,uint8_t y2);
void OLED12864_Draw_Rect(uint8_t x,uint8_t y,uint8_t len,uint8_t hight);
//*img 以字节竖直,高位在上,数据水平
void OLED12864_Draw_Img(uint8_t x,uint8_t y,uint8_t len,uint8_t hight,uint8_t*img);
void OLED12864_Draw_aImg(uint8_t x,uint8_t y,uint8_t*img);  //自带图形大小识别
#endif  //USE_POINT_CRT#endif

font_lib.h 字库文件

#ifndef _FONT_LIB_H_
#define _FONT_LIB_H_//偏移量 0x20
static const unsigned char assic_0806[][6] =
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
0x14, 0x14, 0x14, 0x14, 0x14, 0x14,// horiz lines
};static const unsigned char assic_1608[][16] =
{{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x00},/*"!",1*/
/* (8 X 16 , 宋体 )*/{0x00,0x10,0x0C,0x02,0x10,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/
/* (8 X 16 , 宋体 )*/{0x00,0x40,0xC0,0x78,0x40,0xC0,0x78,0x00,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x00},/*"#",3*/
/* (8 X 16 , 宋体 )*/{0x00,0x70,0x88,0x88,0xFC,0x08,0x30,0x00,0x00,0x18,0x20,0x20,0xFF,0x21,0x1E,0x00},/*"$",4*/
/* (8 X 16 , 宋体 )*/{0xF0,0x08,0xF0,0x80,0x60,0x18,0x00,0x00,0x00,0x31,0x0C,0x03,0x1E,0x21,0x1E,0x00},/*"%",5*/
/* (8 X 16 , 宋体 )*/{0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x2C,0x19,0x27,0x21,0x10},/*"&",6*/
/* (8 X 16 , 宋体 )*/{0x00,0x12,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00},/*"(",8*/
/* (8 X 16 , 宋体 )*/{0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00},/*")",9*/
/* (8 X 16 , 宋体 )*/{0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00},/*"*",10*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x01,0x01,0x01},/*"+",11*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x70,0x00,0x00,0x00,0x00,0x00},/*",",12*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00},/*"-",13*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",14*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0xC0,0x38,0x04,0x00,0x00,0x60,0x18,0x07,0x00,0x00,0x00,0x00},/*"/",15*/
/* (8 X 16 , 宋体 )*/{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",16*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"1",17*/
/* (8 X 16 , 宋体 )*/{0x00,0x70,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},/*"2",18*/
/* (8 X 16 , 宋体 )*/{0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x20,0x21,0x21,0x22,0x1C,0x00},/*"3",19*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x40,0x30,0xF8,0x00,0x00,0x00,0x06,0x05,0x24,0x24,0x3F,0x24,0x24},/*"4",20*/
/* (8 X 16 , 宋体 )*/{0x00,0xF8,0x88,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x20,0x20,0x20,0x11,0x0E,0x00},/*"5",21*/
/* (8 X 16 , 宋体 )*/{0x00,0xE0,0x10,0x88,0x88,0x90,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x20,0x1F,0x00},/*"6",22*/
/* (8 X 16 , 宋体 )*/{0x00,0x18,0x08,0x08,0x88,0x68,0x18,0x00,0x00,0x00,0x00,0x3E,0x01,0x00,0x00,0x00},/*"7",23*/
/* (8 X 16 , 宋体 )*/{0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00},/*"8",24*/
/* (8 X 16 , 宋体 )*/{0x00,0xF0,0x08,0x08,0x08,0x10,0xE0,0x00,0x00,0x01,0x12,0x22,0x22,0x11,0x0F,0x00},/*"9",25*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},/*":",26*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00},/*";",27*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00},/*"<",28*/
/* (8 X 16 , 宋体 )*/{0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x00},/*"=",29*/
/* (8 X 16 , 宋体 )*/{0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00},/*">",30*/
/* (8 X 16 , 宋体 )*/{0x00,0x70,0x48,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x30,0x37,0x00,0x00,0x00},/*"?",31*/
/* (8 X 16 , 宋体 )*/{0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x28,0x2F,0x28,0x17,0x00},/*"@",32*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20},/*"A",33*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00},/*"B",34*/
/* (8 X 16 , 宋体 )*/{0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00},/*"C",35*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00},/*"D",36*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00},/*"E",37*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00},/*"F",38*/
/* (8 X 16 , 宋体 )*/{0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00},/*"G",39*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20},/*"H",40*/
/* (8 X 16 , 宋体 )*/{0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"I",41*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00},/*"J",42*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00},/*"K",43*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00},/*"L",44*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x01,0x3E,0x01,0x3F,0x20,0x00},/*"M",45*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00},/*"N",46*/
/* (8 X 16 , 宋体 )*/{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00},/*"O",47*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00},/*"P",48*/
/* (8 X 16 , 宋体 )*/{0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x28,0x28,0x30,0x50,0x4F,0x00},/*"Q",49*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20},/*"R",50*/
/* (8 X 16 , 宋体 )*/{0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00},/*"S",51*/
/* (8 X 16 , 宋体 )*/{0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"T",52*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"U",53*/
/* (8 X 16 , 宋体 )*/{0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},/*"V",54*/
/* (8 X 16 , 宋体 )*/{0x08,0xF8,0x00,0xF8,0x00,0xF8,0x08,0x00,0x00,0x03,0x3E,0x01,0x3E,0x03,0x00,0x00},/*"W",55*/
/* (8 X 16 , 宋体 )*/{0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20},/*"X",56*/
/* (8 X 16 , 宋体 )*/{0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00},/*"Y",57*/
/* (8 X 16 , 宋体 )*/{0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00},/*"Z",58*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00},/*"[",59*/
/* (8 X 16 , 宋体 )*/{0x00,0x04,0x38,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00},/*"\",60*/
/* (8 X 16 , 宋体 )*/{0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00},/*"]",61*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x04,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",63*/
/* (8 X 16 , 宋体 )*/{0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x19,0x24,0x24,0x12,0x3F,0x20,0x00},/*"a",65*/
/* (8 X 16 , 宋体 )*/{0x10,0xF0,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00},/*"b",66*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00},/*"c",67*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x90,0xF0,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20},/*"d",68*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x24,0x24,0x24,0x24,0x17,0x00},/*"e",69*/
/* (8 X 16 , 宋体 )*/{0x00,0x80,0x80,0xE0,0x90,0x90,0x20,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"f",70*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00},/*"g",71*/
/* (8 X 16 , 宋体 )*/{0x10,0xF0,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"h",72*/
/* (8 X 16 , 宋体 )*/{0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"i",73*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00},/*"j",74*/
/* (8 X 16 , 宋体 )*/{0x10,0xF0,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x06,0x29,0x30,0x20,0x00},/*"k",75*/
/* (8 X 16 , 宋体 )*/{0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"l",76*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F},/*"m",77*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20},/*"n",78*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"o",79*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0x91,0x20,0x20,0x11,0x0E,0x00},/*"p",80*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x80,0x80,0x00,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0x91,0xFF,0x80},/*"q",81*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00},/*"r",82*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00},/*"s",83*/
/* (8 X 16 , 宋体 )*/{0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x10,0x00},/*"t",84*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20},/*"u",85*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x03,0x0C,0x30,0x0C,0x03,0x00,0x00},/*"v",86*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x01,0x0E,0x30,0x0C,0x07,0x38,0x06,0x01},/*"w",87*/
/* (8 X 16 , 宋体 )*/{0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x20,0x31,0x0E,0x2E,0x31,0x20,0x00},/*"x",88*/
/* (8 X 16 , 宋体 )*/{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x81,0x86,0x78,0x18,0x06,0x01,0x00},/*"y",89*/
/* (8 X 16 , 宋体 )*/{0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00},/*"z",90*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0x00,0xFC,0x02,0x02,0x00,0x00,0x00,0x00,0x01,0x3E,0x40,0x40},/*"{",91*/
/* (8 X 16 , 宋体 )*/{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},/*"|",92*/
/* (8 X 16 , 宋体 )*/{0x02,0x02,0xFC,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x3E,0x01,0x00,0x00,0x00,0x00},/*"}",93*/
/* (8 X 16 , 宋体 )*/{0x00,0x02,0x01,0x02,0x02,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/
/* (8 X 16 , 宋体 )*/
};#endif

, 宋体 )*/

{0x80,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x01,0x0E,0x30,0x0C,0x07,0x38,0x06,0x01},/“w”,87/
/* (8 X 16 , 宋体 )*/

{0x00,0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x20,0x31,0x0E,0x2E,0x31,0x20,0x00},/“x”,88/
/* (8 X 16 , 宋体 )*/

{0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x81,0x86,0x78,0x18,0x06,0x01,0x00},/“y”,89/
/* (8 X 16 , 宋体 )*/

{0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00},/“z”,90/
/* (8 X 16 , 宋体 )*/

{0x00,0x00,0x00,0x00,0x00,0xFC,0x02,0x02,0x00,0x00,0x00,0x00,0x01,0x3E,0x40,0x40},/“{”,91/
/* (8 X 16 , 宋体 )*/

{0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},/“|”,92/
/* (8 X 16 , 宋体 )*/

{0x02,0x02,0xFC,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x3E,0x01,0x00,0x00,0x00,0x00},/“}”,93/
/* (8 X 16 , 宋体 )*/

{0x00,0x02,0x01,0x02,0x02,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/“~”,94/
/* (8 X 16 , 宋体 )*/
};

#endif


dma循环刷新oled屏幕相关推荐

  1. SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制

    目录 OLED SPI 端口定义 七针OLED引脚定义 六针OLED引脚定义 驱动程序 oled.c oled.h oledfont.h 使用 main.c 实验现象 STC实验箱4 IAP15W4K ...

  2. 0.96寸OLED(二)SPI+DMA刷新OLED

    SPI+DMA刷新OLED 文章目录 SPI+DMA刷新OLED 原理简介 一.修改缓存区大小 二.修改SSD1306的指令 三.替换原来的刷新函数 验证结果 原理简介 OLED屏幕有三种刷新方式分别 ...

  3. OLED屏幕花屏的原因(I2C+DMA)

    OLED屏幕在通电后花屏,呈雪花状. 在网上查询原因,开始了尝试: 1.可能是由于杜邦线的问题,可能接触不良导致,但更换了杜邦线依然花屏. 2.可能是OLED屏幕问题.因为经常在工作,之前听说OLED ...

  4. 串口接收 DMA FIFO 双缓冲区配置 + 单色OLED屏幕灰度图像显示的抖动算法

    适用于单色OLED屏幕图像显示的抖动算法 Visual studio c++ STM32F407 0.96寸单色IIC通信OLED 5级灰度 串口DMA.双缓冲 github 抖动算法原理 DITHE ...

  5. 从点阵到OLED屏幕——动态扫描显示原理

    在我们买电脑.手机或者电视时,厂家常常会宣传他们的产品用的是什么屏幕,分辨率达到2K或者4K,色彩有多鲜艳,刷新率有多高. 这些参数到底是什么意思?屏幕到底是如何显示出我们想要的文字.图片以及视频呢? ...

  6. stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解)

    stm32f103利用HC06进行蓝牙通信,在7针的OLED屏幕上显示,带数据更新功能(带超详细讲解) 首先看看效果吧 手机端发送一个数据在OLED屏幕上显示 其实蓝牙通信就是个蓝牙转串口的过程,手机 ...

  7. 基于51单片机和OLED屏幕的贪吃蛇游戏

    本文章在于利用51单片机和OLED屏幕实现一个简易的贪吃蛇游戏 所用的51单片机为普中51系列,OLED屏幕属中景园电子,具体实物均可以在某宝购买 OLED模块: 关于OLED模块的相关函数及其.h和 ...

  8. stm32单片机屏幕一直闪_基于STM32单片机实现屏幕休眠后OLED屏幕滚动效果

    这次做项目时需要实现OLED屏幕上字符滚动的功能,从网上找到一个参考:https://blog.csdn.net/tbmmagic/article/details/111999673 int main ...

  9. STM32掌机教程4,STM32驱动OLED屏幕

    屏幕显示英文字符   有个屏幕,掌机的可玩性可以大大增强,打地鼠玩腻了,可以玩个贪吃蛇,俄罗斯方块,以及其他需要开动想象力的游戏.并且,以前总是玩别人的游戏,现在可以自己写游戏,岂不美哉.   后来我 ...

  10. STM32使用IIC总线通讯协议在OLED屏幕上显示字符串、汉字、图像(硬件IIC)

    参考:基于STM32-Oled(IIC)的使用 作者:奋斗的小殷 发布时间: 2021-05-07 13:09:26 网址:https://blog.csdn.net/boybs/article/de ...

最新文章

  1. 这篇论文,透露谷歌团队构想的“未来搜索”
  2. Spring Boot 实现通用 Auth 认证的 4 种方式
  3. 调用个别f5 负载端口为80的vs时,返回值为空的问题
  4. 部署Awstats日志分析系统
  5. RocketMQ NameServer网络通信架构(基于Netty)
  6. Nignx平滑升级(1.8.0-1.8.1)
  7. linux screen 命令详解
  8. Synchronize对String加锁解决
  9. Java中的访问者设计模式–示例教程
  10. 《java从入门到精通》pdf
  11. 精心挑选的23款美轮美奂的 jQuery 图片特效插件
  12. [html] 如何让pre标签中的元素自动换行?
  13. python 关于反射和类的特殊成员方法
  14. json to graphql schema: json2graphql
  15. Linux内核 触摸板,Linux下关闭触摸板和触摸杆
  16. 坚果云忽略同步文件的设置
  17. redies常用命令
  18. css3参考手册在线和下载
  19. 证券交易所的运作系统
  20. 理解最大回撤及Python实现

热门文章

  1. 使用 X-Frame-Options 防止被iframe 造成跨域iframe 提交挂掉
  2. /usr/bin/xauth: file /home/wj/.Xauthority does not exist
  3. 关于阿里云个人网站备案流程的介绍
  4. 智遥工作流中调用SAP基础数据
  5. 阿里巴巴2021校招
  6. 尚品宅配、欧派激战整装市场
  7. 泰克Tektronix示波器软件TDS210|TDS220|TDS224上位机软件NS-Scope
  8. 【元宵节】中国人民大学与加拿大女王大学金融硕士项目与你的那份“缘”
  9. Guava源码解析五:Splitter源码解析
  10. 硬件探索——2FSK通信系统调制解调综合实验电路设计