STM32 HAL库 SPI驱动1.3寸 OLED屏幕

目录

  • 参考
  • 硬件
    • 引脚与接线
  • 点亮屏幕
    • CubeMX 配置
    • OLED 驱动程序
      • 代码

参考

  • 基于STM32F103C8T6最小系统板HAL库CubeMX SPI驱动7针 OLED显示屏(0.96寸 1.3寸通用)
  • 0.96 oled HAL库驱动 SPI STM32
  • SPI驱动0.96/1.3寸 OLED屏幕,易修改为DMA控制
  • STM32驱动0.96寸OLED液晶屏(12864液晶屏)

硬件

中景园1.3OLED
在这里插入图片描述

引脚与接线

在这里插入图片描述

参考STM32驱动0.96寸OLED液晶屏(12864液晶屏)

  • GND — 接地端口
  • VCC — 接3.3V电源端口
  • SCL — CLK时钟信号端口
  • SDA — MOSI数据端口
  • RST — 复位端口
  • D/C — 数据/命令选择引脚
  • CS — 片选引脚(低电平有效,也就是所需要接低电平,我实际试验过不接该引脚也是可以正常使用的)
  1. MOSI: main out, sub in(master out, slave in), Serial data from main, most-significant bit first
  2. MISO: main in, sub out(master in, slave out), Serial data from sub, most-significant bit first

根据使用的板子引出的引脚,选择相近的 IO 方便接线,
RES - B15
DC - B14
CS - E15

点亮屏幕

CubeMX 配置

我板子的 SPI-1的引脚没有全部接出来,所以我使用 SPI-2,
在这里插入图片描述
GPIO 配置在这里插入图片描述
时钟
在这里插入图片描述

OLED 驱动程序

参考0.96 oled HAL库驱动 SPI STM32,在其文末提供项目文件下载地址:Gitee liankafohali/Oled-0.96-Hal-Drive。
在这里插入图片描述

  1. 把 oled.c 拷贝到 自己工程 \Core\Src 下面
  2. 其余三个 .h 文件拷贝到 \Core\Inc 下面
  3. 在 Keil 中将 “oled.c”添加进 group 中。
  4. 这么麻烦事因为我还不会怎么一次把文件夹添加进项目,并且在 CubeMX 中更新设置后任然保留添加进来的文件夹。
    在这里插入图片描述

代码

在 oled.h 文件中设置引脚
在这里插入图片描述
在 main.c 中

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "oled.h"
#include "bmp.h"
/* USER CODE END Includes */

在 while 循环前
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59145.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS 18.2 可让欧盟用户删除App Store、Safari、信息、相机和照片应用

升级到 iOS 18.2 之后,欧盟的 iPhone 用户可以完全删除一些核心应用程序,包括 App Store、Safari、信息、相机和 Photos 。苹果在 8 月份表示,计划对其在欧盟的数字市场法案合规性进行更多修改,其中一项更新包括欧盟用户删除系统应…

力扣11.2

2742. 给墙壁刷油漆 给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time ,分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠: 一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位的时间,开销为 cost…

[前端] 为网站侧边栏添加搜索引擎模块

前言 最近想给我的个人网站侧边栏添加一个搜索引擎模块,可以引导用户帮助本站SEO优化(让用户可以通过点击搜索按钮完成一次对本人网站的搜索,从而实现对网站的搜索引擎优化)。 最开始,我只是想实现一个简单的百度搜索…

nodejs入门教程20:nodejs文件系统

1. 引入fs模块 在Node.js中,你可以通过以下方式引入fs模块: const fs require(fs);2. 文件操作 读取文件 异步读取:使用fs.readFile()方法。该方法接收文件路径和回调函数作为参数,回调函数在文件读取完成后被调用。 fs.rea…

使用AWS Redshift从AWS MSK中读取数据

Amazon Redshift 流式摄取的目的是简化将流式数据直接从流式服务摄取到 Amazon Redshift 或 Amazon Redshift Serverless 的过程。 官方文档[1]中有详细步骤。用unauthenticated, IAM 的方式均可以进行连接,只不过使用的是不同端口:9092或者9098 [1] h…

2-3-4树的层序打印

234树 接前面0到100与B树比较0到50镜像代码更新随机测试后话接前面 红黑树转2-3-4树打印失败的地方。 0到100 这个是应该的样子 >>> rb = RBT() >>> for k in range(100):rb.INSERT(k) >>> t=tree234(rb.root) >>> t.print() 结点类型…

了解AIGC——文本生成技术在新闻媒体中的应用

了解AIGC:文本生成技术在新闻媒体中的应用 引言 生成式人工智能内容(AI-Generated Content,简称AIGC)在新闻媒体中的应用已经成为技术革新和内容创作的主要方向之一。新闻行业长期依赖于人类记者和编辑的创造力,而AI…

UBUNTU查看CPU核心数

UBUNTU查看CPU核心数 前言一、使用lscpu命令1. 执行命令2. 查看输出 二、使用/proc/cpuinfo文件1. 查看文件2. 解释输出 三、使用nproc命令1. 执行命令2. 查看输出 四、使用htop或top工具1. 使用htop2. 使用top 五、使用inxi命令1. 执行命令2. 查看输出 六、使用图形界面工具1.…

机器学习线性回归

文章目录 1.基本概念2.最小二乘法3.用代码来表示线性回归 1.基本概念 线性回归是一种统计方法,用于分析两个或多个变量之间的关系。其主要目的是通过建立一个线性模型来预测一个因变量(或称为目标变量)与一个或多个自变量(或称为…

基于Openwrt系统架构,实现应用与驱动的实例。

一、在openwrt系统架构,编写helloworld的应用程序。 第一步先创建目录,项目代码要放在 openwrt根目下的 package 目录中,这里源码写在了 hellworld 的 src 目录下,因为外层还有需要编写的文件。 mkdir -p ~/openwrt/package/hel…

C++ STL 学习指南:带你快速掌握标准模板库

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 大家好呀!🤗 今天我们来聊一聊 C 程序员的必备神器——STL(Standard Template Library&#xf…

牛客练习赛131 (待补

A 小H学语文 (贪心) 题意:给定n个木板,1~n长度为h[i],选则m块木板,使m*m*h(min) 最大 思路:贪心的(将木板降序排列后)从n到1(越多越好)枚举木板…

挑战Java面试题复习第5天,无人扶我青云志

挑战第 5 天 java反射List Set Map 区别Object 常用方法 java反射 定义: 运行时动态获取类信息和调用方法的特性。 应用场景: JDBC数据库连接。框架如Hibernate和Struts等。 实现方式: 通过四种方法获取Class对象: Class.fo…

Oracle视频基础1.3.5练习

Oracle视频基础1.3.4练习 1.3.5 检查数据库启动状态 ps -ef | grep oracle ipcs clear演示alter向前向后改database阶段 sqlplus /nolog conn / as sysdba startup mount alter database nomount # 报错 alter database open启动restricted mode,创建一个connect&…

Unity3D包管理bug某些版本Fbx Exporter插件无法搜索到的问题

这个问题是在使用unity的时候发现的 有些版本里没有Fbx Exporter插件也是没法搜到 经过测试,在package manager中开启Enable Preview Packages也没有用 这个插件在2020已经是正式版了,不需要再开启 后来发现可能是版本bug 需要手动开启 在工程的Pac…

深度学习-学习率调整策略

在深度学习中,学习率调整策略(Learning Rate Scheduling)用于在训练过程中动态调整学习率,以实现更快的收敛和更好的模型性能。选择合适的学习率策略可以避免模型陷入局部最优、震荡不稳定等问题。下面介绍一些常见的学习率调整策…

【MogDB】MogDB5.2.0重磅发布第五篇-支持部分ORACLE的HINT

一、背景 ORACLE的SQL优化器非常强大,但是仍然会在某些情况下,ORACLE自动生成的执行计划并不是很好,此时可以通过在SQL中增加HINT来人工控制执行计划应该怎么走。在ORACLE迁移到国产库的过程中,由于部分国产库并不支持ORACLE的HI…

U盘引导丢失问题的处理办法

项目背景:在使用自制的u盘系统的时候经常遇到引导丢失的问题,那么咱们怎么解决这个问题呢,首先第一步通过手动引导u盘 进入系统,同时再进行引导区的修复这样u盘系统就可以正常工作了。 1 进入grub 的提示符下面,首先…

Caffeine 手动策略缓存 put() 方法源码解析

BoundedLocalManualCache put() 方法源码解析 先看一下BoundedLocalManualCache的类图 com.github.benmanes.caffeine.cache.BoundedLocalCache中定义的BoundedLocalManualCache静态内部类。 static class BoundedLocalManualCache<K, V> implements LocalManualCache&…

树莓派开发相关知识四 传感器-测距C语言版本

1、封装调用函数 #include <stdio.h> #include <time.h> #include "wiringPi.h"void initmode(int trig,int echo) {wiringPiSetupGpio();pinMode(trig,OUTPUT);digitalWrite(trig,LOW);pinMode(echo,INPUT); }double get_distance(int trig,int echo) …