当前位置: 首页 > news >正文

STM32Cubemx-H7-7-OLED屏幕

如何把江科大的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函数

结果验证

成功实现输出!

相关文章:

  • 【Python】【数据分析】Python 数据分析与可视化:全面指南
  • 【Python 2D绘图】Matplotlib绘图(统计图表)
  • 【冯诺依曼:到底有什么重大贡献 关键字摘抄】
  • ngx_conf_param
  • JAVA面试_进阶部分_java中四种引用类型(对象的强、软、弱和虚引用)
  • 开发中常见状态码以及状态码用途
  • Mysql8.x常用命令
  • XXE 目录
  • 从零开发Chrome广告拦截插件:开发、打包到发布全攻略
  • 企业网设计
  • 【数据库】10分钟学会MySQL的增删改查:数据库、表、表记录操作指南
  • 数字电路逻辑代数 | 运算 / 定律 / 公式 / 规则 / 例解
  • MySQL创建数据库和表,插入四大名著中的人物
  • Node.js中HTTPS模块应用详解
  • 虚拟电商-数据库分库分表
  • PROC程序报无效的字符串或缓冲区长度问题
  • Java HashMap 底层原理
  • 【YOLO】AutoDL 训练模型
  • Python+DeepSeek:开启AI编程新次元——从自动化到智能创造的实战指南
  • Java三种注释方式
  • 越秀地产前4个月销售额约411.2亿元,达年度销售目标的34.1%
  • 家庭相册㉙在沪打拼25年,我理解了父母清晨去卖蜜饯的辛苦
  • 上海充电桩调研:须全盘考量、分步实现车网互动规模化
  • 普京:“胜利日停火”已开始生效
  • 工人日报关注跟着演出去旅游:票根经济新模式兴起,让过路客变过夜客
  • 三亚再回应游客骑摩托艇出海遇暴雨:俱乐部未配备足额向导人员,停业整改