|
在HC32F030開發(fā)板上設(shè)計(jì)有筆端式液晶屏的接口,可能是節(jié)省成本的考慮,亦或是HC32F030并沒有配置LCD驅(qū)動(dòng)器。 為了給開發(fā)板配備一個(gè)人機(jī)交互的橋梁,決定以I2C接口的OLED屏為目標(biāo)對象。 那么取哪2個(gè)引腳來驅(qū)動(dòng)OLED屏呢? 啟初試過一些引腳因各種原因沒有成功,最后的選擇落到了PA11和PA12的身上,使OLED屏露出了笑臉。 為使這2個(gè)引腳輸出高低電平,定義的相應(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屏廠家的例程即可實(shí)現(xiàn)驅(qū)動(dòng)的目的,編譯下載后的顯示效果如圖1所示。 圖1 OLED屏顯示效果 事情到這里似乎就該結(jié)束,當(dāng)總覺得還是差了些什么? 原來問題是出在OLED屏被游離在開發(fā)板之外,并沒有成為一個(gè)整體。 那該這樣做呢? 最早是想利用原液晶屏的位置改造出一片焊盤來飛線進(jìn)行連接,但那樣對板子的損傷較大。 于是就大膽想在原液晶屏的焊盤上入手,當(dāng)棘手的是這里并沒有提供電源的引腳,更別提引腳的順序要一致了。 經(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 新的驅(qū)動(dòng)效果
|