日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 瑞薩RA0單片機(jī)連載之―面向?qū)ο笾甀2C驅(qū)動(dòng)OLED

          瑞薩RA0單片機(jī)連載之―面向?qū)ο笾甀2C驅(qū)動(dòng)OLED

          作者:lulugl 時(shí)間:2025-04-18 來(lái)源:EEPW 收藏


          本文引用地址:http://yuyingmama.com.cn/article/202504/469575.htm

          1   前言

          OLED是非常常用的顯示設(shè)備,可以由4線(xiàn)、3線(xiàn)的spi驅(qū)動(dòng),也可以使用2線(xiàn)的IIC來(lái)驅(qū)動(dòng)。百問(wèn)網(wǎng)提供了spi_OLED的驅(qū)動(dòng)例程,這次使用IIC來(lái)驅(qū)動(dòng),并且使用基于面向?qū)ο蟮木幊虂?lái)實(shí)現(xiàn)。

          2   實(shí)現(xiàn)步聚

          1.配置IIC,打開(kāi)RASC后,在棧中增加rau_master_I2C,并設(shè)置channel為0b20即通道2,選擇SCL為P112與SDA為P110。

          1744987216768564.png

          【注】我原來(lái)設(shè)置了為通道0或者通道1,但是都與UART或的外接晶振的IO有沖突,所以只能選擇這個(gè)通道但是他還是與tx、LED有沖突,如果自己的設(shè)計(jì)的話(huà)還需要考慮到IO的沖突問(wèn)題。

          2.生成代碼后,我拷貝drv_oled.h/c 以及driv_spi.h到工程之中。

          image.png

          1744987256301838.png

          3.在原來(lái)的OLED工程之中,是使用spi來(lái)驅(qū)動(dòng)的,同時(shí)原來(lái)的RA5他的內(nèi)存與頻率相比RA0要高很多,需要進(jìn)行很多的更改。首先添加回調(diào)函數(shù),回調(diào)函數(shù)中判斷接收狀態(tài),并更新:

          image.png

          image.png

          4.接著修改發(fā)送等待超時(shí)函數(shù),在我們向i2c 總線(xiàn)發(fā)送數(shù)據(jù)結(jié)事后,我們需要用這個(gè)函數(shù)來(lái)判斷是否發(fā)送結(jié)束的標(biāo)志位。

          image.png

          5.修改向ssd1306 寫(xiě)入一個(gè)寄存器的功能函數(shù),在這個(gè)函數(shù)中,我們要組裝一個(gè)buff 用于向i2c 總線(xiàn)寫(xiě)入數(shù)據(jù)的,由于向ssd1306 寫(xiě)入寄存器,第一個(gè)字節(jié)為0x00,所以組裝為[0x00, cmd]。

          image.png

          image.png

          6.組裝向ssd1306 發(fā)送一整個(gè)buff 的命令:

          image.png

          【注】這里原來(lái)使用malloc 進(jìn)行了重新的內(nèi)存申請(qǐng),但是由于這個(gè)MCU 的內(nèi)存有限,我做了申請(qǐng),好象一直不成功,先寫(xiě)成這樣,其實(shí)buf 中的0 位是被清除掉了的,所以會(huì)有點(diǎn)問(wèn)題,在后面我將重新這個(gè)驅(qū)動(dòng),這里先實(shí)現(xiàn)基本功能。

          7.編寫(xiě)測(cè)試函數(shù)如下:

          image.png

          image.png

          image.png

          其中第一段是向整個(gè)屏寫(xiě)入了0x00即全屏為黑色,第二段是寫(xiě)入oxFF 即全白。這樣就實(shí)現(xiàn)了清屏-》全亮的效果。

          3   總結(jié)

          在面向?qū)ο蟮木幊讨?,?duì)OLED 進(jìn)行的封裝,在使用的過(guò)程中,可以實(shí)現(xiàn)少量的低層代碼的修改即中實(shí)現(xiàn)模塊化的功能實(shí)現(xiàn)。下一步,我將補(bǔ)全字符、圖片的功能。

          (本文來(lái)源于《EEPW》



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉