前言
调试方式:
1.串口调试: 把调试信息发送到电脑端,电脑使用串口助手显示调试信息
2.显示屏调试:直接将显示屏连接到单片机,将调试信息打印在显示屏上
3.Keil调试: 借助Keil软件的调试模式,可以查看
接下来学习一个OLED显示屏的驱动函数模块
首先还是要看 STM32(一) 看我们的接线图,我们看到,我们的OLED是IIC4针,这边连的PB6 PB7(pin6 pin7)
同样的,我们把之前的文件复制过来,把主函数main删掉,然后添加Hardware文件,把OLED驱动模块放入
OLED.c 里就是主题代码了,里面包括了引脚配置,引脚初始化I , IIC通信的基本时序,OLED用户调用的代码,我们要更改的就是引脚配置
扫描二维码关注公众号,回复:
13628928 查看本文章
接下来,引脚初始化也要更改
这里我们把 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;如果小,就会把高位数据切掉;