亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3507|回復(fù): 0
收起左側(cè)

HC32L136開(kāi)發(fā)板的OLED驅(qū)動(dòng)及應(yīng)用

[復(fù)制鏈接]
ID:776997 發(fā)表于 2020-10-6 12:36 | 顯示全部樓層 |閱讀模式
HC32L136開(kāi)發(fā)板上配有一個(gè)筆段式的液晶屏,但無(wú)奈的是廠家卻沒(méi)提供一個(gè)能直接調(diào)用的顯示函數(shù)。
在沒(méi)解決該顯示屏的顯示函數(shù)前,先以輕車(chē)熟路的OLED屏來(lái)實(shí)現(xiàn)顯示的問(wèn)題。
由于手頭的OLED屏是一款I2C接口的單色顯示屏,故另其與MCU的連接關(guān)系為:
PA11SCL
PA12SDA
使這2個(gè)引腳輸出高低電平的語(yǔ)句定義為:
#define OLED_SCLK_Set()   Gpio_SetIO(GpioPortA, GpioPin11)
#define OLED_SCLK_Clr()   Gpio_ClrIO(GpioPortA, GpioPin11);
#define OLED_SDIN_Set()   Gpio_SetIO(GpioPortA, GpioPin12)
#define OLED_SDIN_Clr()   Gpio_ClrIO(GpioPortA, GpioPin12);
分配2個(gè)引腳為輸出功能的函數(shù)為:
  1. void App_OledInit(void)
  2. {
  3. stc_gpio_cfg_t stcGpioCfg;
  4. ///< 打開(kāi)GPIO外設(shè)時(shí)鐘門(mén)控
  5. Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
  6. ///< 端口方向配置->輸出(其它參數(shù)與以上(輸入)配置參數(shù)一致)
  7. stcGpioCfg.enDir = GpioDirOut;
  8. ///< 端口上下拉配置->下拉
  9. stcGpioCfg.enPu = GpioPuDisable;
  10. stcGpioCfg.enPd = GpioPdEnable;
  11. ///< GPIO IO OLED端口初始化
  12. Gpio_Init(GpioPortA, GpioPin11, &stcGpioCfg);
  13. Gpio_Init(GpioPortA, GpioPin12, &stcGpioCfg);
  14. }
復(fù)制代碼

實(shí)現(xiàn)圖1顯示效果的主程序?yàn)椋?/font>
  1. int32_t main(void)
  2. {
  3. stc_rtc_time_t readtime;
  4. Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);  //GPIO外設(shè)時(shí)鐘打開(kāi)
  5. Sysctrl_SetPeripheralGate(SysctrlPeripheralRtc,TRUE);    //RTC模塊時(shí)鐘打開(kāi)
  6. Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
  7. RTC_Cfg();                                        //配置RTC
  8. EnableNvic(RTC_IRQn, IrqLevel3, TRUE);                //使能RTC中斷向量
  9. Rtc_Cmd(TRUE);                                   //使能RTC開(kāi)始計(jì)數(shù)
  10. App_OledInit();
  11. OLED_Init();
  12. OLED_Clear();
  13. OLED_ShowString(0,0,"HC32L136 TEST",16);
  14. OLED_ShowString(0,2,"OLED DISPLAY",16);
  15. while (1);
  16. }
復(fù)制代碼

1.jpg
                              
1  OLED屏顯示效果
實(shí)現(xiàn)RTC時(shí)間設(shè)置的函數(shù)為:
  1. void RTC_Cfg(void)
  2. {
  3. stc_rtc_initstruct_t RtcInitStruct;
  4. RtcInitStruct.rtcAmpm = RtcPm;        //12小時(shí)制
  5. RtcInitStruct.rtcClksrc = RtcClkRcl;       //內(nèi)部低速時(shí)鐘
  6. RtcInitStruct.rtcPrdsel.rtcPrdsel = RtcPrds;  //周期中斷類(lèi)型PRDS
  7. RtcInitStruct.rtcPrdsel.rtcPrds = Rtc1S;      //周期中斷事件間隔
  8. RtcInitStruct.rtcTime.u8Second = 0x55;
  9. RtcInitStruct.rtcTime.u8Minute = 0x55;
  10. RtcInitStruct.rtcTime.u8Hour   = 0x10;
  11. RtcInitStruct.rtcTime.u8Day    = 0x06;
  12. RtcInitStruct.rtcTime.u8DayOfWeek = 0x04;
  13. RtcInitStruct.rtcTime.u8Month  = 0x10;
  14. RtcInitStruct.rtcTime.u8Year   = 0x20;
  15. RtcInitStruct.rtcCompen = RtcCompenEnable;
  16. RtcInitStruct.rtcCompValue = 0;//補(bǔ)償值根據(jù)實(shí)際情況進(jìn)行補(bǔ)償
  17. Rtc_Init(&RtcInitStruct);
  18. Rtc_AlmIeCmd(TRUE);                  //使能鬧鐘中斷
  19. }
復(fù)制代碼

實(shí)現(xiàn)圖3  RTC計(jì)時(shí)效果的主程序?yàn)椋?/font>
  1. int32_t main(void)
  2. {
  3. stc_rtc_time_t readtime;
  4. Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);   //GPIO外設(shè)時(shí)鐘打開(kāi)
  5. Sysctrl_SetPeripheralGate(SysctrlPeripheralRtc,TRUE);     //RTC模塊時(shí)鐘打開(kāi)
  6. Sysctrl_ClkSourceEnable(SysctrlClkRCL, TRUE);
  7. RTC_Cfg();                                        //配置RTC
  8. EnableNvic(RTC_IRQn, IrqLevel3, TRUE);                //使能RTC中斷向量
  9. Rtc_Cmd(TRUE);                                   //使能RTC開(kāi)始計(jì)數(shù)
  10. App_OledInit();
  11. OLED_Init();
  12. OLED_Clear();
  13. OLED_ShowString(0,0,"HC32L136 TEST",16);
  14. OLED_ShowString(0,2,"OLED  &  RTC",16);      
  15. delay1ms(2000);
  16. OLED_Clear();
  17. OLED_ShowString(0,0,"20  -  -",16);
  18. OLED_ShowString(0,2,"    :  :",16);  
  19. while (1)
  20. {
  21. if(flag == 1)
  22. {
  23. flag = 0;
  24. Rtc_ReadDateTime(&readtime);
  25. second = readtime.u8Second;
  26. minute = readtime.u8Minute;
  27. hour   = readtime.u8Hour;
  28. day    = readtime.u8Day;
  29. week   = readtime.u8DayOfWeek;
  30. month  = readtime.u8Month;
  31. year   = readtime.u8Year;
  32. OLED_ShowNum(16,0,year/16*10+year%16,2,16);
  33. OLED_ShowNum(40,0,month/16*10+month%16,2,16);
  34. OLED_ShowNum(64,0,day/16*10+day%16,2,16);
  35. OLED_ShowNum(16,2,hour/16*10+hour%16,2,16);
  36. OLED_ShowNum(40,2,minute/16*10+minute%16,2,16);
  37. OLED_ShowNum(64,2,second/16*10+second%16,2,16);
  38. }
  39. }
  40. }
復(fù)制代碼

2.jpg
2  RTC起始界面

3.jpg
3  RTC計(jì)時(shí)效果

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表