目录

1.软件准备

2.硬件准备

3.CubeMX配置

(1)芯片选择

(2)配置RCC、SYS、时钟树

(3)配置SPI

(4)配置GPIO

(5)生成代码工程

4.代码移植

(1)复制文件

(2)在Keil5里添加文件

(3)修改oled.h文件

(4)修改oled.c文件

(5)修改main.c函数

(6).代码下载

5.最终效果


1.软件准备

(1)编程平台:Keil5

(2)CubeMX

(3)中景园移植代码——点我下载      提取码:6666

2.硬件准备

(1)F1的板子,本例使用经典F103C8T6

(2)0.96'/1.3' OLED屏幕模块(7针,SSD1306驱动)

(3)ST-link 下载器

(4)杜邦线若干

3.CubeMX配置

(1)芯片选择

(2)配置RCC、SYS、时钟树

配置RCC

配置SYS

配置时钟树

 (3)配置SPI

本例配置SPI2

(4)配置GPIO

如图配置即可

(5)生成代码工程

代码生成管理配置

写好工程名称、选择路径、编译平台

选择生成独立的.C文件

右上角 生成工程

直接打开或自己到存放路径用Keil5打开工程

4.代码移植

(1)复制文件

中景园例程文件

MX生成的工程文件

(2)在Keil5里添加文件

(3)修改oled.h文件

需要修改的地方
//--------------------------------给各位复制的代码
//--------------------------------给各位复制的代码
//--------------------------------给各位复制的代码
#ifndef __OLED_H
#define __OLED_H #include "main.h"
#include "stdlib.h"
#define u8 uint8_t
#define u16 uint16_t
#define u32 uint32_t
//-----------------OLED端口定义---------------- //#define OLED_SCL_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_0)//SCL
//#define OLED_SCL_Set() GPIO_SetBits(GPIOA,GPIO_Pin_0)//#define OLED_SDA_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_1)//SDA
//#define OLED_SDA_Set() GPIO_SetBits(GPIOA,GPIO_Pin_1)//#define OLED_RES_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_2)//RES
//#define OLED_RES_Set() GPIO_SetBits(GPIOA,GPIO_Pin_2)//#define OLED_DC_Clr()  GPIO_ResetBits(GPIOA,GPIO_Pin_3)//DC
//#define OLED_DC_Set()  GPIO_SetBits(GPIOA,GPIO_Pin_3)
//
//#define OLED_CS_Clr()  GPIO_ResetBits(GPIOA,GPIO_Pin_4)//CS
//#define OLED_CS_Set()  GPIO_SetBits(GPIOA,GPIO_Pin_4)
//****************复位*********************#define OLED_RES_Clr()  HAL_GPIO_WritePin(OLED_RES_GPIO_Port,OLED_RES_Pin, GPIO_PIN_RESET)
#define OLED_RES_Set()  HAL_GPIO_WritePin(OLED_RES_GPIO_Port,OLED_RES_Pin, GPIO_PIN_SET)//****************数据/命令***************#define OLED_DC_Clr()  HAL_GPIO_WritePin(OLED_DC_GPIO_Port,OLED_DC_Pin, GPIO_PIN_RESET)
#define OLED_DC_Set()  HAL_GPIO_WritePin(OLED_DC_GPIO_Port,OLED_DC_Pin, GPIO_PIN_SET)//****************片选*********************#define OLED_CS_Clr()  HAL_GPIO_WritePin(OLED_CS_GPIO_Port,OLED_CS_Pin, GPIO_PIN_RESET)
#define OLED_CS_Set()  HAL_GPIO_WritePin(OLED_CS_GPIO_Port,OLED_CS_Pin, GPIO_PIN_SET)
#define OLED_CMD  0 //写命令
#define OLED_DATA 1 //写数据

(4)修改oled.c文件

添加:

 #include "spi.h"

添加:

HAL_SPI_Transmit(&hspi2,&dat,1, 1000);

完成到这里,此时编译不会报错

 (5)修改main.c函数

添加:

#include "oled.h"
#include "bmp.h"

添加:

 u8 t=' ';
OLED_Init();
OLED_ColorTurn(0);//0正常显示,1 反色显示
OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示

        //--------------------------给各位复制的代码//--------------------------给各位复制的代码//--------------------------给各位复制的代码OLED_ShowPicture(0,0,128,64,BMP1,1);OLED_Refresh();HAL_Delay(200);OLED_Clear();OLED_ShowChinese(0,0,0,16,1);//中OLED_ShowChinese(18,0,1,16,1);//景OLED_ShowChinese(36,0,2,16,1);//园OLED_ShowChinese(54,0,3,16,1);//电OLED_ShowChinese(72,0,4,16,1);//子OLED_ShowChinese(90,0,5,16,1);//技OLED_ShowChinese(108,0,6,16,1);//术OLED_ShowString(8,16,"ZHONGJINGYUAN",16,1);OLED_ShowString(20,32,"2014/05/01",16,1);OLED_ShowString(0,48,"ASCII:",16,1);  OLED_ShowString(63,48,"CODE:",16,1);OLED_ShowChar(48,48,t,16,1);//显示ASCII字符     t++;if(t>'~')t=' ';OLED_ShowNum(103,48,t,3,16,1);OLED_Refresh();HAL_Delay(200);OLED_Clear();OLED_ShowChinese(0,0,0,16,1);  //16*16 中OLED_ShowChinese(16,0,0,24,1); //24*24 中OLED_ShowChinese(24,20,0,32,1);//32*32 中OLED_ShowChinese(64,0,0,64,1); //64*64 中OLED_Refresh();HAL_Delay(200);OLED_Clear();OLED_ShowString(0,0,"ABC",8,1);//6*8 “ABC”OLED_ShowString(0,8,"ABC",12,1);//6*12 “ABC”OLED_ShowString(0,20,"ABC",16,1);//8*16 “ABC”OLED_ShowString(0,36,"ABC",24,1);//12*24 “ABC”OLED_Refresh();HAL_Delay(200);OLED_ScrollDisplay(11,4,1);

(6).代码下载

到这一步,如果编译没有错误就可以自行下载程序了。如果有错,就是哪里自己搞错了,回去重新仔细看一下。

接线:                   (如引脚未按照上述例程配置,则自行通过自己映射的引脚接线即可)

5.最终效果

本例程源码下载:点击跳转

STM32系列(HAL库)——F103C8T6使用SPI方式点亮OLED相关推荐

  1. STM32系列(HAL库)——F103C8T6通过SPI方式读写W25Q64—(Flash存储模块)

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)W25Q64模块 (2)F1的板子,本例使用经典F103C8T6 (3)ST-link ...

  2. STM32系列(HAL库)——F103C8T6硬件SPI点亮带字库OLED屏

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)程序:点击下载 2.硬件准备 (1)1.3寸带字库OLED 注意,成品模块无RES引脚,模块正常工作时RES置于高电平,成品模块是硬 ...

  3. STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID(二)

    本文继上一篇:STM32系列(HAL库)--F103C8T6通过MFRC522.RFID射频卡.门禁卡模块读取卡片ID 本文介绍在运用RC522模块时,运用链表结构存储数据的操作 Let's go! ...

  4. STM32系列(HAL库)——F103C8T6通过NRF24L01(2.4G)无线模块进行双机通信

    本文参考:STM32L051C8T6 HAL库 + nRF24L01 收发案例(硬件SPI通讯) 1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件 ...

  5. STM32系列(HAL库)——F103C8T6通过MFRC522、RFID射频卡、门禁卡模块读取卡片ID

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)MFRC-522模块 (2)F1的板子,本例使用经典F103C8T6 (3)ST-li ...

  6. STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)中景园屏幕资料链接:点击跳转        提取码:8888 2.硬件准备 (1)1.44寸TFT彩屏 (2)F1的板子,本例使用经 ...

  7. STM32系列(HAL库)——F103C8T6 通过GY906/MLX90614红外测温模块实现温度测量

    1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)GY-906-BCC红外测温模块 (2)F1的板子,本例使用经典F103C8T6 (3 ...

  8. 【STM32】HAL库在7针脚0.96寸OLED屏上的移植---硬件SPI(一)

    目录 SPI背景和接线 1.什么是SPI 2.如何接线 STM32CubeMX部分 1.配置时钟 2.配置SPI 3.工程生成 MDK 5 部分 1.移植OLED文件 2.修改引脚 3.修改main函 ...

  9. 【STM32】HAL库 STM32CubeMX教程十四---SPI

    前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需 ...

最新文章

  1. 风口上的政府大数据 需要消除“大误区”
  2. BETA:由清华大学等多家研究机构联合提出的面向SSVEP-BCI应用程序的大型基准测试数据库...
  3. linux关闭方防火墙的命令
  4. Java 反射机制学习资料
  5. c语言case后加3 5,10.程序流程控制:switch-case
  6. Spring--SPeL
  7. 巴巴运动网学习笔记(21-25)
  8. 数据结构实验之图论九:最小生成树_初高中数学竞赛训练----图论初步2
  9. colab清理gpu缓存_安卓手机为什么会变卡?强制GPU渲染手机就能变流畅?你真的懂吗...
  10. SpringMVC框架----SessionAttribute注解
  11. python读取大文件csv_对python中大文件的导入与导出方法详解
  12. 我的博客园开张了,记录每天学习,工作。
  13. 使用Kotlin的Android Spinner
  14. 揭秘 | Akuna工作体验大揭秘
  15. Pytorch使用GPU加速
  16. 组合游戏(Nim游戏)——SG函数
  17. 二维码解码程序的两大难点问题
  18. 【嵌入式开源库】MultiButton的使用,简单易用的事件驱动型按键驱动模块
  19. 违禁词过滤器 DFA算法升级版
  20. Chromebit 一周使用报告

热门文章

  1. 10个高质量的简历制作网站推荐
  2. Learning Multi-Scale Photo Exposure Correction阅读札记
  3. python大数据培训班学费
  4. 【Windows】【Linux】---- Java证书导入
  5. C语言 实验十 结构体
  6. Python-Django settings置详解
  7. 闸门开度仪是怎么控制闸门开度的?
  8. Nacos学习笔记 (1)Nacos的简介与安装
  9. SpringBoot天天吃货商品项目
  10. Python安装Image库