標(biāo)題: 基于 CH32V103開發(fā)板的彩色OLED屏顯示驅(qū)動(dòng) [打印本頁]
作者: jinglixixi 時(shí)間: 2020-11-21 11:16
標(biāo)題: 基于 CH32V103開發(fā)板的彩色OLED屏顯示驅(qū)動(dòng)
OLED屏有多種類型,其中的參數(shù)屏要比單色屏和雙色屏更具色彩表現(xiàn)力,在設(shè)計(jì)小游戲時(shí),彩色屏將是不錯(cuò)的下載,假如用單色屏來完成俄羅斯方塊的話,那就只剩下方塊了,相對(duì)來講彩色屏?xí)邇?yōu)勢(shì)。
目前來看,似乎還沒見到有I2C接口的彩色屏,因此就只有多犧牲幾個(gè)I/O口來驅(qū)動(dòng)彩色屏了!
在彩色屏與U CH32V103連接上,其關(guān)系如下:
CLK--PA2
DIN--PA3
RST--PB3
DC --PB4
CS --PB5
BLK--PB6
定義引腳輸出高低電平的語句為:
#define OLED_SCLK_Set() GPIO_WriteBit(GPIOA, GPIO_Pin_2,Bit_SET)
#define OLED_SCLK_Clr() GPIO_WriteBit(GPIOA, GPIO_Pin_2,Bit_RESET)
#define OLED_SDIN_Set() GPIO_WriteBit(GPIOA, GPIO_Pin_3,Bit_SET)
#define OLED_SDIN_Clr() GPIO_WriteBit(GPIOA, GPIO_Pin_3,Bit_RESET)
#define OLED_RST_Set() GPIO_WriteBit(GPIOB, GPIO_Pin_3,Bit_SET)
#define OLED_RST_Clr() GPIO_WriteBit(GPIOB, GPIO_Pin_3,Bit_RESET)
#define OLED_DC_Set() GPIO_WriteBit(GPIOB, GPIO_Pin_4,Bit_SET)
#define OLED_DC_Clr() GPIO_WriteBit(GPIOB, GPIO_Pin_4,Bit_RESET)
#define OLED_CS_Set() GPIO_WriteBit(GPIOB, GPIO_Pin_5,Bit_SET)
#define OLED_CS_Clr() GPIO_WriteBit(GPIOB, GPIO_Pin_5,Bit_RESET)
#define OLED_BLK_Set() GPIO_WriteBit(GPIOB, GPIO_Pin_6,Bit_SET)
#define OLED_BLK_Clr() GPIO_WriteBit(GPIOB, GPIO_Pin_6,Bit_RESET)
相關(guān)引腳輸出功能的配置函數(shù)為:
- void App_OledInit(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure; //定義一個(gè)GPIO_InitTypeDef類型的結(jié)構(gòu)體
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能與LED相關(guān)的GPIO端口時(shí)鐘
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //配置GPIO引腳
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設(shè)置GPIO模式為推挽輸出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設(shè)置GPIO口輸出速度
- GPIO_Init(GPIOB, &GPIO_InitStructure); //調(diào)用庫函數(shù),初始化GPIOA
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能與LED相關(guān)的GPIO端口時(shí)鐘
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; //配置GPIO引腳
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //設(shè)置GPIO模式為推挽輸出
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //設(shè)置GPIO口輸出速度
- GPIO_Init(GPIOA, &GPIO_InitStructure); //調(diào)用庫函數(shù),初始化GPIOA
- GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3); //設(shè)置引腳輸出高電平
- }
復(fù)制代碼
圖片顯示的函數(shù)為:
- void LCD_ShowPicturea(u16 x1,u16 y1,u16 x2,u16 y2)
- {
- int i;
- LCD_Address_Set(x1,y1,x2,y2);
- for(i=0;i<12800;i++)
- {
- LCD_WR_DATA8(gImage_moled[i*2]);
- LCD_WR_DATA8(gImage_moled[i*2+1]);
- }
- }
復(fù)制代碼
實(shí)現(xiàn)顯示效果的主程序?yàn)椋?/div>
- int main(void)
- {
- u8 i=0;
- u8 j=0;
- Delay_Init(); //延時(shí)函數(shù)初始化
- LED_Init(); //LED初始化
- App_OledInit();
- OLED_Init();
- Delay_Ms(200);
- LCD_Clear(BLACK);
- BACK_COLOR=BLACK;
- LCD_ShowString(10,0,"CH32V103 TEST",RED);
- LCD_ShowString(10,20,"OLED Display",RED);
- LCD_ShowString(10,40,"jinglixixi",RED);
- LCD_ShowString(10,60,"2020.10.28",RED);
- Delay_Ms(2000);
- LCD_Clear(BLACK);
- LCD_ShowChinese(28,0,0,32,YELLOW);
- LCD_ShowChinese(60,0,1,32,YELLOW);
- LCD_ShowChinese(92,0,2,32,YELLOW);
- LCD_ShowChinese(20,40,0,16,YELLOW);
- LCD_ShowChinese(36,40,1,16,YELLOW);
- LCD_ShowChinese(52,40,2,16,YELLOW);
- LCD_ShowChinese(68,40,3,16,YELLOW);
- LCD_ShowChinese(84,40,4,16,YELLOW);
- LCD_ShowChinese(100,40,5,16,YELLOW);
- LCD_ShowChinese(116,40,6,16,YELLOW);
- LCD_ShowString(20,60,"0.96 TFT SPI",YELLOW);
- Delay_Ms(2000);
- LCD_Clear(BLACK);
- LCD_ShowString(10,0,"LCD_W:",RED);
- LCD_ShowNum(70,0,LCD_W,3,RED);
- LCD_ShowString(10,20,"LCD_H:",RED);
- LCD_ShowNum(70,20,LCD_H,2,RED);
- for(i=0;i<4;i++)
- {
- LCD_ShowPicture(i*40,40,39+i*40,79);
- }
- Delay_Ms(2000);
- LCD_ShowPicturea(0,0,159,79);
- }
復(fù)制代碼
經(jīng)編譯,程序?qū)ο到y(tǒng)資源的占用情況如圖1所示。
1.jpg (14.4 KB, 下載次數(shù): 85)
下載附件
2020-11-21 11:13 上傳
圖1
程序下載后的運(yùn)行效果見圖2~圖4所示。
2.jpg (25.41 KB, 下載次數(shù): 84)
下載附件
2020-11-21 11:13 上傳
3.jpg (23.9 KB, 下載次數(shù): 86)
下載附件
2020-11-21 11:13 上傳
4.jpg (24.66 KB, 下載次數(shù): 92)
下載附件
2020-11-21 11:13 上傳
圖2~圖4
若單顯示圖片,則系統(tǒng)資源資源情況為:
6.jpg (14.57 KB, 下載次數(shù): 92)
下載附件
2020-11-21 11:13 上傳
圖5
程序下載后面,其運(yùn)行效果如圖所示。
7.jpg (10.82 KB, 下載次數(shù): 91)
下載附件
2020-11-21 11:13 上傳
圖6
作者: xaxbala
時(shí)間: 2021-3-8 10:10
OLED怎么點(diǎn)亮
作者: jazzyfox
時(shí)間: 2021-12-5 21:54
中景園的這個(gè)IIC的屏,實(shí)在是一言難盡
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日本午夜精品一区二区三区
|
999免费网站
|
另类 综合 日韩 欧美 亚洲
|
国产毛片毛片
|
午夜成人在线视频
|
中文字字幕在线中文乱码范文
|
欧美一级在线免费观看
|
久久久中文
|
精品国产一区二区三区久久久久久
|
亚洲欧美日韩电影
|
91高清视频
|
欧美精品久久久久
|
成人在线h
|
狠狠操电影
|
一区二区三区四区在线
|
天天精品在线
|
亚洲欧美成人在线
|
av 一区二区三区
|
caoporn视频在线|
欧美精品久久久久久久久久
|
精品国产一区二区三区av片
|
九九热九九
|
欧美一级电影免费
|
免费看黄色国产
|
国产欧美精品一区二区色综合朱莉
|
av三级
|
欧美亚洲国产一区二区三区
|
欧日韩在线
|
欧美a在线|
一区在线播放
|
伊人二区
|
久久综合九色综合欧美狠狠
|
精品91久久
|
婷婷在线免费
|
国产黄色一级片
|
久久久久香蕉视频
|
一区二区三区在线电影
|
国产精品久久久久久婷婷天堂
|
日本一本在线
|
国产91精品在线
|
精品欧美一区二区中文字幕视频
|