[FORCAT]保姆级四脚IIC_OLED代码实现(第一弹)

首先,这个oled屏幕,说白了就是一个128乘64的像素点集合,也就是分辨率

我们不可能每个像素点都用一个io口来控制,所以我们选择用一个屏幕驱动芯片,一遍来负责iic的数据收发,同时控制这8000个小像素点。结构如下,常用的芯片用ssd1306和ch1116

图片来自于keysking,可以配合kk的视频服用本教程~

里面讲了这个所谓的page之间的关系和联系,但是其实不是很重要~这个iic屏幕驱动芯片我们可以理解为一个C语言里的库~我们负责移植就可以啦(类似于vs里面下载一个包,但是cubeide没有那么智能,所以是手动添加)

下面是操作步骤

一、环境选择(晶振,时钟树,IIC,杂项)

使用外部晶振

老是有人问我外部晶振为什么要这样。结合板载的pll那一套芯片,我们可以让主频更快。比如说我们现在用的都是8M内部晶振,我们改成外部晶振~

也可以直接这样子配:(傻瓜式配时钟)

配置IIC

Pinout&Configuration -> Connectivity -> I2C1,将I2C模式选择为I2C,并在下方Configuration -> Parameter Settings,将I2C Speed Mode选择为Fast Mode

最后如果自己写轮子方便,也可以加一个这个勾选

二、移植轮子

波特律动LED字模生成器 (baud-dance.com)

点击驱动库,里面有ssd1306和ch1116的,下载下来解压,之后打开文件夹

可以备注一下是kk的轮子,我们拷贝库文件:将oled.c、font.c文件拷贝到Core -> Src目录下,将oled.h、font.h文件拷贝到Core -> Inc目录下。(其实里面的main.c也可以用,直接拷贝粘贴覆盖就行)

再main.c里面添加include

#include "string.h"
#include "oled.h"
#include "stdio.h"

初始化oled

HAL_Delay(20); // 单片机启动比OLED上电快,需要延迟等待一下
OLED_Init(); // 初始化OLED

我的是这么写的,因为我有些不需要用。

三、显示函数代码(核心部分)

比较重要的轮子(函数)都写在了oled.c文件里面,可以直接用

然后如果你要显示图片和文字,需要用到取模器。传统的取模器是2002年那一版本,我用的是波特律动的,上面也有一样的链接,和驱动哭在一起,很方便。

吭哧吭哧放进去,复制出来,塞到font.c就ok了。

举个栗子!下面是我祝我家猫猫七夕快乐的字模~

这里的代码用的是取模器的代码。你可以理解为,你自己做了一个独属于你的文字/图片。然后你在主函数里面调用即可。alt+/可以直接用oled.c里面的函数~

所以我们再main.c里面是这么调用的

核心部分再uesr code begin while后面

 for (uint8_t i = 0; i < 256; i++)
    {
      OLED_NewFrame();
      OLED_DrawImage((128 - (piglovecatImg.w)) / 2, -15, &piglovecatImg, OLED_COLOR_NORMAL);
      OLED_PrintString(20, 64 - 16, "宝宝七夕节快乐", &font12x12, OLED_COLOR_NORMAL);
      OLED_ShowFrame();
      // HAL_Delay(100);
    }

bingo!效果出来啦!就是一个简单的七夕祝福!如果想接触更多的应用,我把视频链接和文章地址贴出来!

https://docs.baud-dance.com/docs/stm32/example/I2C_OLED

【【STM32入门教程-2024】第14集 如何在OLED屏幕上挥毫】 https://www.bilibili.com/video/BV19u4y197df/?share_source=copy_web&#038;vd_source=7d6a0323b5cc37307d52a1d4b7942c15

感谢kk开源,辛苦了~

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇