从0开始的STM32HAL库学习3

OLED

从这一章开始就找了个b站的视频,开始复现江科大标准库的内容了。

配置工程

首先就还是新建一个工程

将PB8,PB9改为GPIO_OUTPUT模式

且将输出模式改为开漏输出

其余的时钟,调试等等配置和之前的就应该是差不多了。

移植代码

我们需要将江科大的oled代码复制到代码库中

修改代码

因为江科大的oled代码是根据标准库编写而成,所以我们需要修改一部分内容

打开oled.c文件

1. 初始化函数
void OLED_I2C_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_Init(GPIOB, &GPIO_InitStructure);
OLED_W_SCL(1);
OLED_W_SDA(1);
}

将此串代码删除,替换成

MX_GPIO_Init();

注意!!!!

在文件的最开始要加上

#include "gpio.h"

这样GPIO的初始化才有作用

2. 引脚函数
#define OLED_W_SCL(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x))
#define OLED_W_SDA(x)		GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x))

 将这串代码替换成下面的代码hal库写成的

void OLED_W_SCL(GPIO_PinState x){
HAL_GPIO_WritePin(GPIOB, PB8_Pin,x);
}
void OLED_W_SDA(GPIO_PinState x){
HAL_GPIO_WritePin(GPIOB, PB9_Pin,x);
}

主函数

添加头文件

#include"oled.h"

在int main函数中

OLED_Init();
OLED_ShowChar(1, 1, 'A');
OLED_ShowString(1, 3, "HelloWorld!");
OLED_ShowNum(2, 1, 12345, 5);
OLED_ShowSignedNum(2, 7, -66, 2);
OLED_ShowHexNum(3, 1, 0xAA55, 4);
OLED_ShowBinNum(4, 1, 2, 16);

添加此串代码就有显示效果了

到此我们的oled代码就移植完成了 

  • 18
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值