日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NRF51822---驱动0.96寸OLED屏幕(连载4)

發布時間:2024/3/24 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NRF51822---驱动0.96寸OLED屏幕(连载4) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

NRF51822---驅動0.96寸OLED屏幕(連載4)

    • 前言
    • 屏幕簡介
    • 連接方法
    • 驅動原理
      • IIC
      • SSD1306
    • 代碼實現
    • 總結

前言

上節講解了IIC的協議,并用STM32實踐了一下。今天趁熱打鐵,用NRF51822來進行驅動屏幕,程序昨天晚上加班搞完了。這一節主要講解下0.96屏幕驅動原理和NRF51822的驅動程序、

屏幕簡介

該屏幕支持多種驅動方式:3線或者4線SPI、8080、6800等等,我用的是IIC驅動的屏幕。不過原理明白了,什么驅動方式都無所謂了。

簡介一定要突出一個“簡”字、

連接方法

該屏幕已經設定為IIC模式了,因此不需要你自行修改電路,只需要看絲印把引腳一一對應連接到NRF51822上,我用的是P021和P022引腳,定義如下:

//-----------------OLED IIC端口定義---------------- #define OLED_SCLK_Clr() nrf_gpio_pin_clear(21)//SCL #define OLED_SCLK_Set() nrf_gpio_pin_set(21)#define OLED_SDIN_Clr() nrf_gpio_pin_clear(22)//SDA #define OLED_SDIN_Set() nrf_gpio_pin_set(22)

對應開發板如下圖:

驅動原理

IIC

關于IIC的理論部分請點擊 這里.

SSD1306

關于這個芯片,其實也沒啥好說的,主要內容還是IIC。以下幾點手冊中都有詳細說明,這里提一下: 1.配置設備地址 通過將SA0(D/C#)腳上拉到高電平可以設置從機地址第七位為 1,將SA0(D/C#)腳下拉到低電平可以設置從機地址第七位為 0。通過SA0(D/C#)腳的上拉和下拉來設置從機地址,可以最多掛載2個屏幕。 2.尋址模式 尋址模式配置時需要注意,自己配置的尋址模式要和取?;蛘咦謳煨酒娜∧7绞揭恢?#xff0c;不然顯示會出問題、 3.指令 指令有點多,不過沒必要記住,因為手冊上會有初始化流程,跟著流程配置一遍就行了,下次在用的時候直接移植就可以了。

代碼實現

OLED驅動代碼是在上一個GPIO的版本上修改完后的。移植的STM32 單片機的0.96屏幕驅動文件

1.添加oled.c文件,改文件可以直接從平衡小車的代碼中提取,連同文件夾一起復制到NRF51822的工程目錄中,如下圖:

2.代碼中添加C文件,并且添加.h文件路徑,如下圖:

3.修改底層代碼,配置SDA和SCL引腳: //-----------------OLED IIC端口定義---------------- #define OLED_SCLK_Clr() nrf_gpio_pin_clear(21)//SCL #define OLED_SCLK_Set() nrf_gpio_pin_set(21)#define OLED_SDIN_Clr() nrf_gpio_pin_clear(22)//SDA #define OLED_SDIN_Set() nrf_gpio_pin_set(22)#define OLED_CMD 0 //寫命令 #define OLED_DATA 1 //寫數據 4.修改主函數配置,添加引腳初始化和屏幕初始化函數 int main(void) {nrf_gpio_cfg_output(21); //配置P021引腳為輸出SCLnrf_gpio_cfg_output(22); //配置P022引腳為輸出nrf_gpio_pin_set(21);nrf_gpio_pin_set(22);nrf_delay_ms(800);OLED_Init();nrf_delay_ms(200);OLED_Clear();while(1){OLED_ShowString(0,0,"nrf51822",12);OLED_ShowCHinese(0,2,7);OLED_ShowCHinese(16,2,8);OLED_ShowString(0,5,"D_SEngineer",12);} } 5.編譯下載,實際效果如圖所示:

總結

本小節再次總結了IIC,以及重新用NRF51822驅動了0.96寸屏幕,到現在是不是突然覺得寫代碼這么簡單?理解了原理,修改下底層配置就能從STM32移植到NRF51822上、

代碼領取方式,復制下面關鍵字到公眾號回復 ,即可領取源碼。

nrf51822外設--0.96寸屏

總結

以上是生活随笔為你收集整理的NRF51822---驱动0.96寸OLED屏幕(连载4)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。