前言
除錯方式:
1.串口除錯: 把除錯資訊發送到電腦端,電腦使用串口助手顯示除錯資訊
2.顯示屏除錯:直接將顯示屏連接到單片機,將除錯資訊列印在顯示屏上
3.Keil除錯: 借助Keil軟體的除錯模式,可以查看
接下來學習一個OLED顯示屏的驅動函式模塊
首先還是要看 STM32(一) 看我們的接線圖,我們看到
,我們的OLED是IIC4針,這邊連的PB6 PB7(pin6 pin7)
同樣的,我們把之前的檔案復制過來,把主函式main刪掉,然后添加Hardware檔案,把OLED驅動模塊放入


OLED.c 里就是主題代碼了,里面包括了引腳配置,引腳初始化I , IIC通信的基本時序,OLED用戶呼叫的代碼,我們要更改的就是引腳配置

接下來,引腳初始化也要更改
這里我們把 SCL 和 SDA 兩個引腳都初始化為開漏輸出模式,具體更改就是,使用到GPIO外設都先使用RCC開啟一下時鐘,然后初始化 pin8 pin9
我們就可以直接使用OLED驅動函式模塊,這就是OLED.c里面的東西
接下來是OLED.h里面,這里就是外部可呼叫函式的宣告
#ifndef __OLED_H
#define __OLED_H
void OLED_Init(void);
void OLED_Clear(void);
void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char);
void OLED_ShowString(uint8_t Line, uint8_t Column, char *String);
void OLED_ShowNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowSignedNum(uint8_t Line, uint8_t Column, int32_t Number, uint8_t Length);
void OLED_ShowHexNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
void OLED_ShowBinNum(uint8_t Line, uint8_t Column, uint32_t Number, uint8_t Length);
#endif
最后是OLED_Font.h檔案,這里存的是OLED的字庫資料,因為OLED是不帶字庫的,想要顯示字符圖形,就要先定義字符點陣資料
之后的main函式里,主回圈前,先呼叫OLED_Init();初始化OLED
| 函式 | 作用 |
| OLED_Init | 初始化 |
| OLED_Clear | 清屏 |
| OLED_ShowChar | 顯示一個字符 |
| OLED_ShowString | 顯示字串 |
| OLED_ShowNum | 顯示十進制數字 |
| OLED_ShowSignedNum | 顯示有符號十進制數字 |
| OLED_ShowHexNum | 顯示十六進制數字 |
| OLED_ShowBinNum | 顯示二進制數字 |
我們一一共有四行十六列,注意字符是 ‘ ’ ,而字串是 “ ”
還要記得計算一下長度,不要超出去了
GPIO_ShowNum( , , , )前面兩個是位置,第三個是數字,最后一個是數字長度,如果長度比數字長度長,那他就會在前面補0;如果小,就會把高位資料切掉;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/399653.html
標籤:其他
