OLED(hal库)、OLED取模

目录

OLED(hal库)

IIC通讯协议

软件IIC

​编辑

硬件IIC

移植OLED代码

代码测试

​编辑

测试

这是我改好滴文件

OLED取模

软件

​编辑文字

图片


OLED(hal库)

IIC通讯协议

软件IIC

软件I2C(或IIC)是通过程序控制GPIO引脚来模拟I2C通信的方式,灵活性高但速度较慢。

硬件IIC

硬件I2C是通过专用硬件模块实现的,速度较快,稳定性更高,且能处理更多的I2C总线功能。

移植OLED代码

代码移植:首页 - LCD wiki

解压文件

代码测试

复制工程模板直接打开keil文件

复制文件到HardWare文件夹下

双击HardWare文件

添加到工程文件中

哪里报错改哪里,包含main.h,改成HAL库函数。

cs 复制代码
#define SCLK_Pin GPIO_PIN_8
#define SCLK_GPIO_Port GPIOB
#define SDIN_Pin GPIO_PIN_9
#define SDIN_GPIO_Port GPIOB

#define OLED_SCLK_Clr() HAL_GPIO_WritePin(GPIOB,SCLK_Pin,GPIO_PIN_RESET)//CLK
#define OLED_SCLK_Set() HAL_GPIO_WritePin(GPIOB,SCLK_Pin,GPIO_PIN_SET)

#define OLED_SDIN_Clr() HAL_GPIO_WritePin(GPIOB,SDIN_Pin,GPIO_PIN_RESET)//DIN
#define OLED_SDIN_Set() HAL_GPIO_WritePin(GPIOB,SDIN_Pin,GPIO_PIN_SET)
cs 复制代码
	GPIO_InitTypeDef GPIO_InitStruct = {0};

  __HAL_RCC_GPIOB_CLK_ENABLE();//使能PB端口时钟

  HAL_GPIO_WritePin(GPIOB, SCLK_Pin|SDIN_Pin, GPIO_PIN_RESET);

  GPIO_InitStruct.Pin = SCLK_Pin|SDIN_Pin;
  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;//推挽输出
  GPIO_InitStruct.Pull = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

	HAL_Delay(200);

使用快捷键ctr + f 替换全部

u32一样的做法

测试

main.h添加头文件

cs 复制代码
#include "OLED.h"

初始化

cs 复制代码
 /* USER CODE BEGIN 2 */
	OLED_Init();			//初始化OLED  
	OLED_Clear(0); 
	

显示

cs 复制代码
	OLED_ShowCHinese(6,0,0);//全
	OLED_ShowCHinese(26,0,1);//动
	OLED_ShowCHinese(46,0,2);//电
	OLED_ShowCHinese(66,0,3);//子
	OLED_ShowCHinese(86,0,4);//技
	OLED_ShowCHinese(106,0,5);//术
	OLED_ShowString(4,3,"0.96\" OLED TEST",16); 
	OLED_ShowString(0,6,"ASCII:",16);  
	OLED_ShowString(63,6,"CODE:",16);
  /* USER CODE END 2 */
	

这是我改好滴文件

通过百度网盘分享的文件:HardWare
链接:https://pan.baidu.com/s/1aoMZ-5OUO_Bs1ZWkzkGg0A

提取码:oled

OLED取模

软件

入口:首页 - LCD wiki

文字

输入文字

设置确认,生成字模

复制到字库

替换

测试

cs 复制代码
	OLED_Init();			//初始化OLED  
	OLED_Clear(0); 
	OLED_ShowCHinese(6,0,0);//你
	OLED_ShowCHinese(26,0,1);//好
	OLED_ShowCHinese(46,0,2);//,
	OLED_ShowCHinese(66,0,3);//世
	OLED_ShowCHinese(86,0,4);//界
	OLED_ShowCHinese(106,0,5);//!
	OLED_ShowString(4,3,"0.96\" OLED TEST",16); 
	OLED_ShowString(0,6,"ASCII:",16);  
	OLED_ShowString(63,6,"CODE:",16);

图片

选择图片使用画图工具打开

另存为

选择单色位图

然后打开取模软件

添加图片

可以自己补充,鼠标左键画,右键取消

设置

生成图模,复制到图库

测试

cs 复制代码
#include "bmp.h"
cs 复制代码
  /* USER CODE BEGIN 2 */
	OLED_Init();			//初始化OLED  
	OLED_Clear(0); 
	OLED_DrawBMP(0,0,128,8,BMP1);
  /* USER CODE END 2 */
相关推荐
fengfuyao9852 分钟前
STM32如何定位HardFault错误,一种实用方法
stm32·单片机·嵌入式硬件
爱学习的颖颖33 分钟前
EXTI外部中断的执行逻辑|以对射式红外传感器计次为例
单片机·嵌入式硬件·exti中断
艾莉丝努力练剑42 分钟前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
keer_zu1 小时前
STM32L051 RTC闹钟配置详解
stm32·嵌入式硬件
AI精钢2 小时前
H20芯片与中国的科技自立:一场隐形的博弈
人工智能·科技·stm32·单片机·物联网
Cx330❀2 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
..过云雨3 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
etcix5 小时前
implement copy file content to clipboard on Windows
windows·stm32·单片机
谱写秋天5 小时前
在STM32F103上进行FreeRTOS移植和配置(STM32CubeIDE)
c语言·stm32·单片机·freertos
我不是板神5 小时前
程序设计|C语言教学——C语言基础2:计算与控制语句
c语言