基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)

系列文章目录

一、基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁
二、基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发
三、实战小例程 基于STM32F103C8T6最小系统板和STM32CubeMX驱动WS2812B光立方
四、基于STM32F103C8T6最小系统板HAL库CubeMX驱动HC-SR501红外人体传感模块
五、基于STM32F103C8T6(HAL库)的HC-SR501红外人体传感及HC-SR04超声波测距
六、基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)



前言

OLED驱动.c及.h文件下载链接:

7针 OLED驱动.c及.h程序(SPI) Oled-0.96-Hal-Drive(均免费下载,无需积分)

PCtoLCD2002字模软件下载链接:

PCtoLCD2002字模软件下载链接

参考博文:

0.96 oled HAL库驱动 SPI STM32

本文开发环境:

MCU型号:STM32F103C8T6最小系统板
IDE环境: MDK V5.36
代码生成工具:STM32CubeMx 6.3.0

电路板实拍:

在这里插入图片描述


一、配置CubeMX

在已有基础上,开启SPI,完成模式设置,参数设置,选三个GPIO口(我选择PA6,PB0,PB1,因为他们五个在单片机上是连续的,连线方便)。
在这里插入图片描述

二、硬件连线部分

  • GND —> GND
  • VCC —> 3.3V
  • DO —> SPI_SCK (PA5)
  • D1 —> SPI_MOSI (PA7)
  • RES —> OLED_RES (PB0)
  • DC —> OLED_DC (PB1)
  • CS —> OLED_CS (PA6)

三、逻辑代码部分

初始化代码

  /* USER CODE BEGIN 2 */
  
	/* OLED初始化*/
	OLED_Init(); 
	OLED_ColorTurn(0);//0正常显示,1 反色显示 
	OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示 

  /* USER CODE END 2 */

OLED显示函数调用实例

void OLED_NonHumanBodyChineseShow()
{
	OLED_ShowChinese(26,24,28,16);   //持
	OLED_ShowChinese(40,24,29,16);   //续
	OLED_ShowChinese(56,24,30,16);   //监
	OLED_ShowChinese(72,24,31,16);   //测
	OLED_ShowChinese(88,24,27,16);   //中
	
	OLED_ShowChar(40,48,46,12);     //.
	OLED_ShowChar(48,48,46,12);     //.
	OLED_ShowChar(56,48,46,12);     //.
	OLED_ShowChar(64,48,46,12);     //.
	OLED_ShowChar(72,48,46,12);     //.
	OLED_ShowChar(80,48,46,12);     //.
	
	OLED_Refresh();
}

其中,汉字显示函数

//显示汉字
//x,y:起点坐标
//num:汉字对应的序号
//取模方式 列行式
void OLED_ShowChinese(uint8_t x,uint8_t y,uint8_t num,uint8_t size1)

字符显示函数

//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//chr = 字符序号+32
//size:选择字体 12/16/24
//取模方式 逐列式
void OLED_ShowChar(uint8_t x,uint8_t y,uint8_t chr,uint8_t size1)

四、汉字取模

汉字序号,字符序号均在oledfont.h文件中,而汉字符号的取模可以通过PCtoLCD2002这款软件获取。

PCtoLCD2002字模软件下载链接:

PCtoLCD2002字模软件下载链接

运行界面如下:
在这里插入图片描述
选项设置如下:
在这里插入图片描述
把获得的数组放入oledfont.h文件对应数组即可,如我选用尺寸(size)16号的汉字数组库,就在里面添加

{0x10,0x10,0x10,0xFF,0x10,0x10,0x40,0x48,0x48,0x48,0x7F,0x48,0xC8,0x48,0x40,0x00},
{0x04,0x44,0x82,0x7F,0x01,0x00,0x02,0x02,0x0A,0x12,0x42,0x82,0x7F,0x02,0x02,0x00},/*"持",28*/

{0x20,0x30,0xAC,0x63,0x20,0x18,0x20,0x24,0xA4,0x24,0x3F,0xA4,0x24,0xA4,0x60,0x00},
{0x22,0x67,0x22,0x12,0x12,0x12,0x88,0x8A,0x4C,0x29,0x18,0x0F,0x18,0x28,0xC8,0x00},/*"续",29*/

{0x00,0x00,0x7E,0x00,0x00,0xFF,0x00,0x40,0x30,0x0F,0x04,0x14,0x64,0x04,0x00,0x00},
{0x40,0x40,0x7E,0x42,0x42,0x7E,0x42,0x42,0x42,0x7E,0x42,0x42,0x7E,0x40,0x40,0x00},/*"监",30*/

{0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},
{0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"测",31*/

{0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,0x00},
{0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x0F,0x00,0x00,0x00},/*"中",27*/

其中序号,就是汉字二维数组的序号,根据自己的排序而定。

  • 21
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
您可以使用STM32CubeMX来配置STM32F103C8T6OLED驱动代码。首先,您需要在STM32CubeMX中创建一个新的工程,并选择STM32F103C8T6作为目标芯片。然后,您可以打开I2C接口并生成代码。接下来,您需要对生成的代码进行一处修改,将i2c.c文件中的"GPIO_InitStruct.Pull = GPIO_NOPULL;"替换为"GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;"。这样就可以成功配置STM32F103C8T6OLED驱动代码了。\[2\]如果您需要更详细的教程,您可以参考正点原子和小蜜蜂笔记在哔哩哔哩上的相关视频教程。\[3\] #### 引用[.reference_title] - *1* *2* [基于STM32CubeMXstm32f103c6t6液晶0.96OLED显示字母数字汉字图片显示](https://blog.csdn.net/veteran412/article/details/127540347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于HAL库STM32F103C8T6+0.96四线OLED+IIC总线协议+STM32CubeMX(附百度网盘下载链接)](https://blog.csdn.net/weixin_45498562/article/details/124591964)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遗忘丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值