| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> STM32+CubeMax使用硬件SPI控制OLED模块 例程移植+Debug -> 正文阅读 |
|
[嵌入式]STM32+CubeMax使用硬件SPI控制OLED模块 例程移植+Debug |
本示例使用的模块如下
很多东西也是从网上学来的,多谢开源的各位大佬 部分参考:https://www.cnblogs.com/dragonet-Z/p/14689345.html 有的参考自己也忘记了…侵删 用到的资料在这里下载:oled相关资料 1 接线及CubeMax配置模块是从某宝店家买的,所以用模块先看店家的第一手资料(自己不看资料一通乱搞的结果就是时间也花了,心态也炸了) 店家给出的接线方式如下 我们就按照这个方式来配置CubeMax。基本的配置就不说了,这里说SPI和GPIO SPI配置如下 GPIO配置如下 其中PA5和PA7是硬件SPI的时钟和数据引脚,其余的三个是任意的GPIO输出引脚、 留意一下引脚标签,如果按照图中的写法进行标记在例程中就不需要修改引脚了 此外可以自己添加配置USART方便调试 2 例程移植这里结合了网上搜罗来的几份例程,研究了一下发现都是大同小异,只是引脚配置等小细节有差别。完整例程下载即可 将oled文件夹放到CubaMax生成的工程文件夹内 打开keil,将oled.c添加入工程 添加.h文件路径 在main.c中添加头文件 oledfont.h在oled.c中已经包含了,如果在mian.h中再包含就会报重定义的错误 点击编译,没有问题就是例程已经移植成功了,接下来就是函数调用了 3显示方法3. 1 显示字符串 oled在使用前需要初始化,在mian函数中调用初始化函数 中间两个函数是控制正反方向显示和正反色显示的,具体看例程注释 OLED显示文字的原理是我们提前将要显示的文字的像素信息存储到程序中,当要显示的时候,调用函数将文字一个字一个字地画出来,例程中,这些信息存储在oledfont.h中,像这些 这些信息是用软件取模得来的,具体的实现方法在资料中有介绍 得到取模信息后调用显示字符串函数即可
这个函数是把要显示的内容写入显存,所以使用完之后还要再调用OLED_Refresh()函数将显存中的内容显示出来 除了直接使用"hello"这种字符串还可以直接显示字符串变量,方法同理 当直接输出"hello"时,之所以要进行强制类型转换是为了消去警告信息 3.2 显示变量 要显示某个变量的值时,我们只要先将变量变成字符串,然后输出字符串即可 我们使用sprintf函数来将变量变成字符串,具体用法见百度 3.3 显示汉字 显示汉字同样是利用点阵信息,汉字的点阵信息像这样 要显示汉字,直接调用函数即可
这样是一个汉字一个汉字地显示 例程中也有一次显示多个汉字飘过的函数
本质还是调用OLED_showChinese函数,如果要调整显示的汉字,修改里面的OLED_showChinese函数即可 注意,space不要调得太大,否则可能只显示一次,不会连续显示,这个函数放在循环内和循坏外的效果是一样的(我也不知道为什么) 3.4 显示bmp图片 显示图片和显示汉字一样,是按像素画出来的,所以显示图片一样要先取模,例程中的图片取模信息存储在bmp.h中 直接调用bmp图片显示函数即可
这里的参数需要额外注意 首先y0和y1是页地址而不是以像素为单位的坐标 OLED模块中,每8行像素点为一页,因为总像素是128*64,所以是一共是128列,8页 此外,x的范围(即x1-x0)和y的范围(即y1-y0)要和取模的图片信息一致,不要超了或少了,否则可能会显示不成功。取模软件取模后也能得到图片的像素大小,按照这个去设置参数就好 最后,这个函数并不是将图片信息写入显存在输出到屏幕,所以显存一直没有被更改,不要再调用OLED_Refresh()函数 3.5 显示gif 显示gif便是一张一张地显示bmp,取模好图片信息再调用显示函数即可
gif的取模信息会很长,我只取了3帧就有这么长 得到图片取模信息后在循环中调用显示函数即可,如果不在循环中调用,gif只会显示一遍 (这本来是一个打勾的动图,我只截了3帧,看得出在动就行…) |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 6:28:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |