久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3752|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于 CH32V103開發(fā)板的彩色OLED屏顯示驅(qū)動

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:776997 發(fā)表于 2020-11-21 11:16 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
OLED屏有多種類型,其中的參數(shù)屏要比單色屏和雙色屏更具色彩表現(xiàn)力,在設(shè)計小游戲時,彩色屏將是不錯的下載,假如用單色屏來完成俄羅斯方塊的話,那就只剩下方塊了,相對來講彩色屏?xí)邇?yōu)勢。
目前來看,似乎還沒見到有I2C接口的彩色屏,因此就只有多犧牲幾個I/O口來驅(qū)動彩色屏了!
在彩色屏與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ù)為:
  1. void App_OledInit(void)
  2. {
  3. GPIO_InitTypeDef  GPIO_InitStructure;                //定義一個GPIO_InitTypeDef類型的結(jié)構(gòu)體
  4. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能與LED相關(guān)的GPIO端口時鐘
  5. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //配置GPIO引腳
  6. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //設(shè)置GPIO模式為推挽輸出
  7. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //設(shè)置GPIO口輸出速度
  8. GPIO_Init(GPIOB, &GPIO_InitStructure);               //調(diào)用庫函數(shù),初始化GPIOA
  9. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能與LED相關(guān)的GPIO端口時鐘
  10. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3; //配置GPIO引腳
  11. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;     //設(shè)置GPIO模式為推挽輸出
  12. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    //設(shè)置GPIO口輸出速度
  13. GPIO_Init(GPIOA, &GPIO_InitStructure);               //調(diào)用庫函數(shù),初始化GPIOA
  14. GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);           //設(shè)置引腳輸出高電平
  15. }
復(fù)制代碼

圖片顯示的函數(shù)為:
  1. void LCD_ShowPicturea(u16 x1,u16 y1,u16 x2,u16 y2)
  2. {
  3. int i;
  4. LCD_Address_Set(x1,y1,x2,y2);
  5. for(i=0;i<12800;i++)
  6. {
  7. LCD_WR_DATA8(gImage_moled[i*2]);
  8. LCD_WR_DATA8(gImage_moled[i*2+1]);
  9. }
  10. }
復(fù)制代碼

實現(xiàn)顯示效果的主程序為:
  1. int main(void)
  2. {
  3. u8 i=0;
  4. u8 j=0;
  5. Delay_Init();   //延時函數(shù)初始化
  6. LED_Init();     //LED初始化
  7. App_OledInit();
  8. OLED_Init();
  9. Delay_Ms(200);
  10. LCD_Clear(BLACK);
  11. BACK_COLOR=BLACK;
  12. LCD_ShowString(10,0,"CH32V103 TEST",RED);
  13. LCD_ShowString(10,20,"OLED Display",RED);
  14. LCD_ShowString(10,40,"jinglixixi",RED);
  15. LCD_ShowString(10,60,"2020.10.28",RED);
  16. Delay_Ms(2000);
  17. LCD_Clear(BLACK);
  18. LCD_ShowChinese(28,0,0,32,YELLOW);
  19. LCD_ShowChinese(60,0,1,32,YELLOW);
  20. LCD_ShowChinese(92,0,2,32,YELLOW);
  21. LCD_ShowChinese(20,40,0,16,YELLOW);
  22. LCD_ShowChinese(36,40,1,16,YELLOW);
  23. LCD_ShowChinese(52,40,2,16,YELLOW);
  24. LCD_ShowChinese(68,40,3,16,YELLOW);
  25. LCD_ShowChinese(84,40,4,16,YELLOW);
  26. LCD_ShowChinese(100,40,5,16,YELLOW);
  27. LCD_ShowChinese(116,40,6,16,YELLOW);
  28. LCD_ShowString(20,60,"0.96 TFT SPI",YELLOW);
  29. Delay_Ms(2000);
  30. LCD_Clear(BLACK);
  31. LCD_ShowString(10,0,"LCD_W:",RED);
  32. LCD_ShowNum(70,0,LCD_W,3,RED);
  33. LCD_ShowString(10,20,"LCD_H:",RED);
  34. LCD_ShowNum(70,20,LCD_H,2,RED);
  35. for(i=0;i<4;i++)
  36. {
  37. LCD_ShowPicture(i*40,40,39+i*40,79);
  38. }
  39. Delay_Ms(2000);
  40. LCD_ShowPicturea(0,0,159,79);
  41. }
復(fù)制代碼

經(jīng)編譯,程序?qū)ο到y(tǒng)資源的占用情況如圖1所示。

圖1

                              
程序下載后的運行效果見圖2~圖4所示。
  
圖2~圖4
若單顯示圖片,則系統(tǒng)資源資源情況為:

圖5

程序下載后面,其運行效果如圖所示。

圖6


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:647586 發(fā)表于 2021-3-8 10:10 | 只看該作者
OLED怎么點亮
回復(fù)

使用道具 舉報

板凳
ID:297828 發(fā)表于 2021-12-5 21:54 | 只看該作者
中景園的這個IIC的屏,實在是一言難盡
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 午夜电影日韩 | 免费二区| 国产黄色一级电影 | 久久久精彩视频 | 自拍偷拍小视频 | 韩日一区| 欧美午夜精品理论片a级按摩 | 国产精品国产精品国产专区不片 | 中文一区 | 福利视频1000 | 69亚洲精品| 国产亚洲欧美另类一区二区三区 | 国产中文视频 | 狠狠干美女 | 午夜av电影院 | 日韩最新网址 | 欧美日韩中文字幕在线 | 精品无码久久久久久国产 | av激情影院 | 一区二区三区免费 | 日韩欧美三区 | h小视频| 一区二区三区免费观看 | 伊人狠狠 | 亚洲一区二区三区四区av | 日韩一区二区三区av | 激情欧美一区二区三区中文字幕 | 亚洲精选一区二区 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 午夜男人的天堂 | 影音先锋中文字幕在线观看 | 欧美一级精品片在线看 | 九九热精品视频 | 三区四区在线观看 | 欧美群妇大交群中文字幕 | 国产一区二区在线视频 | 日日碰狠狠躁久久躁婷婷 | 羞羞网站在线观看 | 日本一区二区三区在线观看 | 日韩一二区 | 精品日韩一区 |