色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【南京中科微CSM32RV20開發板試用體驗】SPI接口顯示屏驅動

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-30 10:57 ? 次閱讀
本文來源電子發燒友社區,作者:李唐, 帖子地址:https://bbs.elecfans.com/jishu_2248438_1_1.html

前面介紹過I2C接口OLED屏顯示驅動,這次介紹的是驅動SPI接口的顯示屏,其中一款是LCD5110,一款是0.96寸的LCD顯示屏,一款是 2.2寸TFT顯示屏。
LCD5110是一款用用于諾基亞手機的顯示屏LCD5110,該顯示屏的顯示效果如圖1和圖2所示。
poYBAGIBAduAS7W3AABOjQUxvIQ816.jpg
圖1顯示效果
poYBAGIBAd2AAbB0AABRowBIlLg922.jpg
圖2顯示效果
為驅動該顯示屏,它與開發板的連接關系為:
CLK---PB0
DIN---PB1
DC ---PB2
RST---PB3
CS ---PB4
為驅動的方便,這里仍使用GPIO口來模擬SPI接口來實現,其輸出高低電平的語句定義為:
#define LCD_CLK_LGPIO_Write(GPIOB,PIN0,GPIO_RESET)
#define LCD_CLK_HGPIO_Write(GPIOB,PIN0,GPIO_SET)
#define LCD_DIN_LGPIO_Write(GPIOB,PIN1,GPIO_RESET)
#define LCD_DIN_HGPIO_Write(GPIOB,PIN1,GPIO_SET)
#define LCD_DC_L GPIO_Write(GPIOB,PIN2,GPIO_RESET)
#define LCD_DC_H GPIO_Write(GPIOB,PIN2,GPIO_SET)
#define LCD_RST_LGPIO_Write(GPIOB,PIN3,GPIO_RESET)
#define LCD_RST_HGPIO_Write(GPIOB,PIN3,GPIO_SET)
#define LCD_CS_L GPIO_Write(GPIOB,PIN4,GPIO_RESET)
#define LCD_CS_H GPIO_Write(GPIOB,PIN4,GPIO_SET)
對LCD5110的初始化函數為:


  1. void LCD5110_Init(void)
  2. {
  3. Delay32M_ms(800);
  4. LCD_reset_hard;
  5. LCD_write_cmd(0x21);
  6. LCD_write_cmd(0x06);
  7. LCD_write_cmd(0x13);
  8. LCD_write_cmd(0xc8);
  9. LCD_write_cmd(0x20);
  10. LCD_write_cmd(0x0c);
  11. LCD_write_cmd(Y_Page_Addr);
  12. LCD_write_cmd(X_Col_Addr);
  13. LCD_clr_scr();
  14. }
復制代碼


實現字節數據發送的函數為:


  1. void LCD_write_byte(unsigned char wbyte, unsigned char dat_cmd)
  2. {
  3. unsigned char i;
  4. LCD_CS_L;
  5. if(dat_cmd)
  6. {
  7. LCD_DC_H;
  8. }
  9. else
  10. {
  11. LCD_DC_L;
  12. }
  13. for(i = 8; i; i--)
  14. {
  15. if(wbyte & 0x80)
  16. {
  17. LCD_DIN_H;
  18. }
  19. else
  20. {
  21. LCD_DIN_L;
  22. }
  23. Delay_us(2);
  24. LCD_CLK_L;
  25. wbyte <<= 1;
  26. Delay_us(2);
  27. LCD_CLK_H;
  28. }
  29. LCD_CS_H;
  30. }
復制代碼


清除顯示屏的函數為:


  1. void LCD_clr_scr(void)
  2. {
  3. unsigned int i;
  4. LCD_write_cmd(X_Col_Addr);
  5. LCD_write_cmd(Y_Page_Addr);
  6. for(i = 504; i; i--) LCD_write_dat(0x00);
  7. }
復制代碼


實現圖示效果的主程序為:


  1. int main(void)
  2. {
  3. int16_t i;
  4. CLIC_Init();
  5. System_Clock_Init();
  6. GPIO_MODE_Init(GPIOB,PIN0,GPIO_MODE_OUTPUT);
  7. GPIO_MODE_Init(GPIOB,PIN1,GPIO_MODE_OUTPUT);
  8. GPIO_MODE_Init(GPIOB,PIN2,GPIO_MODE_OUTPUT);
  9. GPIO_MODE_Init(GPIOB,PIN3,GPIO_MODE_OUTPUT);
  10. GPIO_MODE_Init(GPIOB,PIN4,GPIO_MODE_OUTPUT);
  11. GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT);
  12. GPIO_Write(GPIOA,PIN8,GPIO_SET);
  13. LCD5110_Init();
  14. LCD_prints(0,0,"CSM32RV20");
  15. LCD_prints(0,1,"LCD5110 ");
  16. LCD_prints(0,2,"jinglixixi");
  17. while(1)
  18. {
  19. GPIO_Toggle(GPIOA,PIN8);
  20. for(i=0;i<10;i++)
  21. {
  22. Delay32M_us(50000);
  23. }
  24. }
  25. }
復制代碼


對于另一款0.96寸的彩色LCD屏,它也是使用SPI接口工作。相較于LCD5110顯示屏,該顯示屏可以顯示彩色的圖片。
該顯示屏的初始化函數為:


  1. void OLED_Init(void)
  2. {
  3. OLED_SCLK_Set();
  4. OLED_SDIN_Set();
  5. Delay32M_ms(800);
  6. OLED_WR_Byte(0xAE,OLED_CMD);
  7. OLED_WR_Byte(0x02,OLED_CMD);
  8. OLED_WR_Byte(0x10,OLED_CMD);
  9. OLED_WR_Byte(0x40,OLED_CMD);
  10. OLED_WR_Byte(0x81,OLED_CMD);
  11. OLED_WR_Byte(0xff,OLED_CMD);
  12. OLED_WR_Byte(0xA1,OLED_CMD);
  13. OLED_WR_Byte(0xC8,OLED_CMD);
  14. OLED_WR_Byte(0xA6,OLED_CMD);
  15. OLED_WR_Byte(0xA8,OLED_CMD);
  16. OLED_WR_Byte(0x3f,OLED_CMD);
  17. OLED_WR_Byte(0xD3,OLED_CMD);
  18. OLED_WR_Byte(0x00,OLED_CMD);
  19. OLED_WR_Byte(0xd5,OLED_CMD);
  20. OLED_WR_Byte(0x80,OLED_CMD);
  21. OLED_WR_Byte(0xD9,OLED_CMD);
  22. OLED_WR_Byte(0xF1,OLED_CMD);
  23. OLED_WR_Byte(0xDA,OLED_CMD);
  24. OLED_WR_Byte(0x12,OLED_CMD);
  25. OLED_WR_Byte(0xDB,OLED_CMD);
  26. OLED_WR_Byte(0x40,OLED_CMD);
  27. OLED_WR_Byte(0x20,OLED_CMD);
  28. OLED_WR_Byte(0x02,OLED_CMD);
  29. OLED_WR_Byte(0x8D,OLED_CMD);
  30. OLED_WR_Byte(0x14,OLED_CMD);
  31. OLED_WR_Byte(0xA4,OLED_CMD);
  32. OLED_WR_Byte(0xA6,OLED_CMD);
  33. OLED_WR_Byte(0xAF,OLED_CMD);
  34. OLED_WR_Byte(0xAF,OLED_CMD);
  35. }
復制代碼


其圖片顯示函數為:


  1. void OLED_DrawBMP(unsigned char x0, unsigned char y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
  2. {
  3. unsigned int j=0;
  4. unsigned char x,y;
  5. if(y1%8==0) y=y1/8;
  6. else y=y1/8+1;
  7. for(y=y0;y;y++)
  8. {
  9. OLED_Set_Pos(x0,y);
  10. for(x=x0;x;x++)
  11. {
  12. OLED_WR_Byte(BMP[j++],OLED_DATA);
  13. }
  14. }
  15. }
復制代碼


相應的顯示主程序為:


  1. int main(void)
  2. {
  3. CLIC_Init();
  4. System_Clock_Init();
  5. GPIO_MODE_Init(GPIOB,PIN0,GPIO_MODE_OUTPUT);
  6. GPIO_MODE_Init(GPIOB,PIN1,GPIO_MODE_OUTPUT);
  7. OLED_ShowString(20,0,"CSM32RV20",16);
  8. OLED_ShowString(20,2,"OLED TEST",16);
  9. Delay32M_ms(2000);
  10. OLED_DrawBMP(0,0,128,8,BMP1);
  11. while(1);
  12. }
復制代碼


經編譯與下載,其顯示效果如圖3和圖4所示。
pYYBAGIBAd-AHHubAABML_9ET2s052.jpg
圖3顯示字符串
pYYBAGIBAeGAGhbYAABKkvoPE5s453.jpg
圖4顯示圖像
對于TFT顯示屏,它相較于0.96寸LCD顯示屏其顯示尺寸要更大,故顯示的內容也更多。
該顯示屏的初始化函數為:


  1. void LCD_Init(void)
  2. {
  3. LCD_REST_Low();
  4. Delay32M_ms(20);
  5. LCD_REST_High();
  6. Delay32M_ms(20);
  7. LCD_CS_Low();
  8. LCD_WR_REG(0xCB);
  9. LCD_WR_DATA8(0x39);
  10. LCD_WR_DATA8(0x2C);
  11. LCD_WR_DATA8(0x00);
  12. LCD_WR_DATA8(0x34);
  13. LCD_WR_DATA8(0x02);
  14. LCD_WR_REG(0xCF);
  15. LCD_WR_DATA8(0x00);
  16. LCD_WR_DATA8(0XC1);
  17. LCD_WR_DATA8(0X30);
  18. LCD_WR_REG(0xE8);
  19. LCD_WR_DATA8(0x85);
  20. LCD_WR_DATA8(0x00);
  21. LCD_WR_DATA8(0x78);
  22. LCD_WR_REG(0xEA);
  23. LCD_WR_DATA8(0x00);
  24. LCD_WR_DATA8(0x00);
  25. LCD_WR_REG(0xED);
  26. LCD_WR_DATA8(0x64);
  27. LCD_WR_DATA8(0x03);
  28. LCD_WR_DATA8(0X12);
  29. LCD_WR_DATA8(0X81);
  30. LCD_WR_REG(0xF7);
  31. LCD_WR_DATA8(0x20);
  32. LCD_WR_REG(0xC0);
  33. LCD_WR_DATA8(0x23);
  34. LCD_WR_REG(0xC1);
  35. LCD_WR_DATA8(0x10);
  36. LCD_WR_REG(0xC5);
  37. LCD_WR_DATA8(0x3e);
  38. LCD_WR_DATA8(0x28);
  39. LCD_WR_REG(0xC7);
  40. LCD_WR_DATA8(0x86);
  41. LCD_WR_REG(0x36);
  42. LCD_WR_DATA8(0x48);
  43. LCD_WR_REG(0x3A);
  44. LCD_WR_DATA8(0x55);
  45. LCD_WR_REG(0xB1);
  46. LCD_WR_DATA8(0x00);
  47. LCD_WR_DATA8(0x18);
  48. LCD_WR_REG(0xB6);
  49. LCD_WR_DATA8(0x08);
  50. LCD_WR_DATA8(0x82);
  51. LCD_WR_DATA8(0x27);
  52. LCD_WR_REG(0xF2);
  53. LCD_WR_DATA8(0x00);
  54. LCD_WR_REG(0x26);
  55. LCD_WR_DATA8(0x01);
  56. LCD_WR_REG(0xE0);
  57. LCD_WR_DATA8(0x0F);
  58. LCD_WR_DATA8(0x31);
  59. LCD_WR_DATA8(0x2B);
  60. LCD_WR_DATA8(0x0C);
  61. LCD_WR_DATA8(0x0E);
  62. LCD_WR_DATA8(0x08);
  63. LCD_WR_DATA8(0x4E);
  64. LCD_WR_DATA8(0xF1);
  65. LCD_WR_DATA8(0x37);
  66. LCD_WR_DATA8(0x07);
  67. LCD_WR_DATA8(0x10);
  68. LCD_WR_DATA8(0x03);
  69. LCD_WR_DATA8(0x0E);
  70. LCD_WR_DATA8(0x09);
  71. LCD_WR_DATA8(0x00);
  72. LCD_WR_REG(0XE1);
  73. LCD_WR_DATA8(0x00);
  74. LCD_WR_DATA8(0x0E);
  75. LCD_WR_DATA8(0x14);
  76. LCD_WR_DATA8(0x03);
  77. LCD_WR_DATA8(0x11);
  78. LCD_WR_DATA8(0x07);
  79. LCD_WR_DATA8(0x31);
  80. LCD_WR_DATA8(0xC1);
  81. LCD_WR_DATA8(0x48);
  82. LCD_WR_DATA8(0x08);
  83. LCD_WR_DATA8(0x0F);
  84. LCD_WR_DATA8(0x0C);
  85. LCD_WR_DATA8(0x31);
  86. LCD_WR_DATA8(0x36);
  87. LCD_WR_DATA8(0x0F);
  88. LCD_WR_REG(0x11);
  89. Delay32M_ms(120);
  90. LCD_WR_REG(0x29);
  91. LCD_WR_REG(0x2c);
  92. }
復制代碼


其字符界面顯示函數為:


  1. void xianshi()
  2. {
  3. LCD_Clear(RED);
  4. BACK_COLOR=RED;
  5. POINT_COLOR=WHITE;
  6. LCD_ShowString(20,80,160,16,16,"CSM32RV20");
  7. LCD_ShowString(20,120,200,16,16,"2.4 SPI_TFT240*320");
  8. LCD_ShowString(20,240,160,16,16,"jinglxixi ");
  9. LCD_ShowString(20,280,200,16,16,"2022.1.16 ");
  10. }
復制代碼


相應的圖片顯示函數為:


  1. void show_image(void)
  2. {
  3. int i,j,k;
  4. unsigned char picH,picL;
  5. Address_set(0,0,79,79);
  6. k=0;
  7. for(i=0;i<80;i++)
  8. {
  9. for(j=0;j<80;j++)
  10. {
  11. picH=gImage_cgq[k*2];
  12. picL=gImage_cgq[k*2+1];
  13. LCD_WR_DATA8(picH);
  14. LCD_WR_DATA8(picL);
  15. k++;
  16. }
  17. }
  18. }
復制代碼


實現顯示效果的主程序為:


  1. int main(void)
  2. {
  3. int16_t i;
  4. CLIC_Init();
  5. System_Clock_Init();
  6. GPIO_MODE_Init(GPIOB,PIN0,GPIO_MODE_OUTPUT);
  7. GPIO_MODE_Init(GPIOB,PIN1,GPIO_MODE_OUTPUT);
  8. GPIO_MODE_Init(GPIOB,PIN2,GPIO_MODE_OUTPUT);
  9. GPIO_MODE_Init(GPIOB,PIN3,GPIO_MODE_OUTPUT);
  10. GPIO_MODE_Init(GPIOB,PIN4,GPIO_MODE_OUTPUT);
  11. GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT);
  12. GPIO_MODE_Init(GPIOA,PIN10,GPIO_MODE_OUTPUT);
  13. GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT);
  14. GPIO_Write(GPIOB,PIN0,GPIO_SET);
  15. GPIO_Write(GPIOB,PIN1,GPIO_SET);
  16. GPIO_Write(GPIOA,PIN8,GPIO_SET);
  17. GPIO_Write(GPIOA,PIN10,GPIO_SET);
  18. GPIO_Write(GPIOA,PIN12,GPIO_SET);
  19. LCD_Init();
  20. LCD_Clear(RED);
  21. xianshi();
  22. Delay32M_ms(2000);
  23. LCD_Clear(BLACK);
  24. show_image();
  25. while(1)
  26. {
  27. GPIO_Toggle(GPIOA,PIN8);
  28. for(i=0;i<10;i++)
  29. {
  30. Delay32M_us(50000);
  31. }
  32. }
  33. return 0;
  34. }
復制代碼


經編譯與下載,其顯示效果如圖5和圖6所示。
poYBAGIBAeOAFbfVAAA-79hrROI643.jpg
圖5顯示字符串
pYYBAGIBAeWATwe9AAA7fhYEMTw829.jpg
圖6顯示字符串


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 南京中科微
    +關注

    關注

    0

    文章

    60

    瀏覽量

    744
  • CSM32RV20
    +關注

    關注

    0

    文章

    40

    瀏覽量

    216
收藏 人收藏

    評論

    相關推薦

    【敏矽ME32G070開發板免費體驗】開箱+點燈+點亮OLED

    ME32G070 支持硬件 I2C,這里偷個懶,不想使用繁瑣的跳線,直接在開發板上隨意插入 OLED 顯示屏的引腳,如下: 直接插上 OLED 顯示屏即可 由于 PB6、PB4 不是 I2C 引腳,這里
    發表于 12-19 00:25

    淺談顯示屏接口類型

    一個顯示屏通常能夠完成顯示內容、播放音頻、網絡連接的功能,不同的功能又由不同的接口負責。
    的頭像 發表于 12-18 09:18 ?446次閱讀

    追加名額丨米爾瑞芯RK3576開發板有獎試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576
    的頭像 發表于 11-22 01:00 ?178次閱讀
    追加名額丨米爾瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>

    常用在工業控制系統上的MCU芯片資料:CSM32RV20

    CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 內置RISC-V RV32IMAC內核(2.6CoreMark/MHz); 蕞高32MHz工作頻率; 內置4kB的SRAM; 內置8B
    的頭像 發表于 11-15 17:19 ?207次閱讀
    常用在工業控制系統上的MCU芯片資料:<b class='flag-5'>CSM32RV20</b>

    有獎丨米爾 瑞芯RK3576開發板免費試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576
    的頭像 發表于 11-12 01:00 ?308次閱讀
    有獎丨米爾 瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>

    Air780E開發板SPI接口:實現W25Q64讀寫不是事兒!

    一直有人向我咨詢開發板SPI接口,對W25Q64進行讀寫操作很難,今天我便做一個詳細解析,讓你下回覺得這都不是事兒。
    的頭像 發表于 11-02 11:56 ?387次閱讀
    Air780E<b class='flag-5'>開發板</b><b class='flag-5'>SPI</b><b class='flag-5'>接口</b>:實現W25Q64讀寫不是事兒!

    【作品合集】龍芯2K0300蜂鳥開發板試用精選

    LCD顯示屏、3路SPI接口、4路PWM接口、4路CAN接口、8路AD模擬輸入接口、4路I2C
    發表于 09-10 18:17

    【米爾-國產瑞芯RK3568開發板試用體驗】燒寫Debian鏡像以及顯示設置

    【感謝】 感謝電子發燒友論壇,米爾科技提供了米爾-國產瑞芯RK3568開發板試用機會。收到開發板有幾天了,今天分享一下如何獲取資料以及燒友Debain鏡像以及
    發表于 08-22 20:35

    【龍芯2K0300蜂鳥試用】開箱體驗

    。 核心引腳圖如下: 這開發板尺寸有限,但板載資源非常充足,提供豐富的外設擴展接口,包括LCD顯示屏接口
    發表于 08-12 19:59

    【龍芯2K0300蜂鳥試用開發板簡介

    2K0300、DDR4 SDRAM、PHY芯片、EMMC、NOR FLASH芯片設計。 底板為用戶擴展了豐富的外圍接口,如LCD顯示屏、3路 SPI接口、4路PWM
    發表于 08-12 17:27

    LED顯示屏中什么是USB接口

    USB,全稱是Universal Serial Bus,即通用串行總線。它是一種用于連接計算機與外部設備的接口標準,具有廣泛的應用范圍。在LED顯示屏中,USB接口就像是一個橋梁,連接著顯示屏
    的頭像 發表于 08-11 01:51 ?376次閱讀

    【龍芯2K0300蜂鳥試用】+開箱及板卡資源介紹

    、DDR4 、PHY芯片、EMMC、NOR FLASH等核心部件;在底板設計上為用戶擴展了豐富的外圍接口,比如LCD顯示屏、3路SPI接口、4路PWM
    發表于 08-08 23:09

    【GD32F303紅楓派開發板使用手冊】第二十講 SPI-SPI NAND FLASH讀寫實驗

    通過本實驗主要學習以下內容: ?SPI通信協議,參考19.2.1東方紅開發板使用手冊 ?GD32F303 SPI操作方式,參考19.2.2東方紅開發板使用手冊 ?NAND FLAS
    的頭像 發表于 06-20 09:50 ?901次閱讀
    【GD32F303紅楓派<b class='flag-5'>開發板</b>使用手冊】第二十講 <b class='flag-5'>SPI-SPI</b> NAND FLASH讀寫實驗

    LED顯示屏設計方案

    1、LED顯示屏基礎知識2、LED顯示屏設計要素3、LED顯示屏驅動方案4、LED顯示屏控制系統5、LED
    發表于 04-03 17:21 ?12次下載

    帶你玩轉AM62x開發板顯示接口——LVDS的顯示和修改方式

    說,我們進入正題。1LVDS接口規格飛凌嵌入式OK6254-C開發板提供2個4-laneLVDS顯示串行接口,每lane最高支持1.19Gbps;單個LVDS
    的頭像 發表于 01-05 08:02 ?1273次閱讀
    帶你玩轉AM62x<b class='flag-5'>開發板</b>的<b class='flag-5'>顯示</b><b class='flag-5'>接口</b>——LVDS的<b class='flag-5'>顯示</b>和修改方式
    主站蜘蛛池模板: 欧美手机在线| 国产中文字幕乱码一区| 52色擼99热99| 一边亲着一面膜下奶韩剧免费| 亚洲AV永久无码精品澳门| 无人区在线日本高清免费| 神马电影院午夜神福利在线观看| 人妻少妇久久久久久97人妻| 彭丹吃奶门| 色久久久综合88一本道| 善良的小峓子2在钱中文版女主角| 日本无卡无吗在线| 日日操夜夜操狠狠操| 少妇无码吹潮久久精品AV| 色偷偷超碰97人人澡人人| 婷婷射精AV这里只有精品| 小伙无套内射老女人| 亚洲乱妇88网| 伊人在线视频| 97视频在线免费播放| www.伊人网| 国产97精品久久久天天A片| 国产精品亚洲在钱视频| 果冻传媒完整免费网站在线观看 | 久久精品久久精品| 久久亚洲精品无码A片大香大香| 乱VODAFONEWIFI熟妇| 欧美特级特黄AAAAA片| 秋霞电影网伦大理电影在线观看| 十分钟免费视频大全在线| 亚洲高清毛片一区二区| 曰本少妇高潮久久久久久| 99久久免费国产精精品| 国产AV精品一区二区三区漫画| 国产日韩精品一区二区在线观看| 久久精品国产清白在天天线| 嫩草影院在线观看精品| 无码人妻视频又大又粗欧美 | 色欲久久综合亚洲精品蜜桃| 亚洲福利网站| 91久久偷偷做嫩草影院免|