如何把江科大的OLED标准库文件换成hal库的文件
前言
本文讲解如在hHAL库中使用OLED,其实江科大做的文件好已经很好了
只讲操作,不讲废话,默认大家都有32基本操作
创建工程
首先创建工程
把那两个引脚设置成开漏
获取标准库文件
打开江科大OLED的文档,然后把这三个工程文件放到目录下
添加文件位置
然后打开魔法棒添加文件位置
然后把三个文件添加进来
总修改内容
把OLED.c的前面几个文件修改就可以用了
#include "gpio.h"
#include "OLED_Font.h"/*引脚配置*/
#define OLED_W_SCL(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8,(x))
#define OLED_W_SDA(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9,(x))/*引脚初始化*/
void OLED_I2C_Init(void)
{OLED_W_SCL(1);OLED_W_SDA(1);
}
只用改这里
这里说明下为什么这样改
理解为什么修改源文件的几行代码就可以在HAL中使用
首先是
#include "stm32f10x.h"
因为我们是用HAL库,而且都已经在Cubemx配置好了,引脚初始化都在gpio.c里面了,所以直接把gpio.h文件放进来就好
所以就修改成
#include "gpio.h"
然后是
#define OLED_W_SCL(x) GPIO_WriteBit(GPIOA, GPIO_Pin_11, (BitAction)(x))
#define OLED_W_SDA(x) GPIO_WriteBit(GPIOA, GPIO_Pin_12, (BitAction)(x))
因为标准库和HAL库的库不同,定义输出函数也不一样,里面的参数也不一样,所以要把函数修改
#define OLED_W_SCL(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8,(x))
#define OLED_W_SDA(x) HAL_GPIO_WritePin(GPIOB, GPIO_PIN_9,(x))
HAL库的GPIO_PIN是都大写,参数是不一样的,然后直接给0和1 就行
void OLED_I2C_Init(void)
{OLED_W_SCL(1);OLED_W_SDA(1);
}
因为已经在gpio.c里面初始化过了,所以直接开始给高就行
在main.c中加入头文件
OLED_Init();while (1){OLED_ShowString(1,1,"Hellow World!");
试试Hellow函数
结果验证
成功实现输出!