中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

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

        作者:lulugl 時間:2025-04-18 來源:EEPW 收藏


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

        1   前言

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

        2   實現(xiàn)步聚

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

        1744987216768564.png

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

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

        image.png

        1744987256301838.png

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

        image.png

        image.png

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

        image.png

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

        image.png

        image.png

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

        image.png

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

        7.編寫測試函數(shù)如下:

        image.png

        image.png

        image.png

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

        3   總結(jié)

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

        (本文來源于《EEPW》



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉