在HC32F030開發(fā)板上設(shè)計有筆端式液晶屏的接口,可能是節(jié)省成本的考慮,亦或是HC32F030并沒有配置LCD驅(qū)動器。 為了給開發(fā)板配備一個人機交互的橋梁,決定以I2C接口的OLED屏為目標對象。 那么取哪2個引腳來驅(qū)動OLED屏呢? 啟初試過一些引腳因各種原因沒有成功,最后的選擇落到了PA11和PA12的身上,使OLED屏露出了笑臉。 為使這2個引腳輸出高低電平,定義的相應(yīng)語句如下: #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) 隨后移植OLED屏廠家的例程即可實現(xiàn)驅(qū)動的目的,編譯下載后的顯示效果如圖1所示。
1.jpg (24.58 KB, 下載次數(shù): 73)
下載附件
2020-10-10 21:05 上傳
圖1 OLED屏顯示效果 事情到這里似乎就該結(jié)束,當總覺得還是差了些什么? 原來問題是出在OLED屏被游離在開發(fā)板之外,并沒有成為一個整體。 那該這樣做呢? 最早是想利用原液晶屏的位置改造出一片焊盤來飛線進行連接,但那樣對板子的損傷較大。 于是就大膽想在原液晶屏的焊盤上入手,當棘手的是這里并沒有提供電源的引腳,更別提引腳的順序要一致了。 經(jīng)大膽測試,最終是通過以I/O輸出高低電平來虛擬出了一組3V的電源,定義虛擬電源的語句如下: #define OLED_VCC() Gpio_SetIO(GpioPortA, GpioPin9) #define OLED_GND() Gpio_ClrIO(GpioPortA, GpioPin10) 這樣就成功的以OLED屏取代了原來的液晶屏顯示方案,其效果如圖2所示。 怎么樣,它比原來的顯示方案更節(jié)省I/O引腳,更節(jié)省空間,顯示的信息量也更大,內(nèi)容和形式也更豐富,特與大家共享所獲。
2.jpg (18.93 KB, 下載次數(shù): 68)
下載附件
2020-10-10 21:05 上傳
圖2 新的驅(qū)動效果
|