0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【外设移植】0.96寸IIC单色屏+Ai-M61开发板

AIoT行业洞察 ? 来源:AIoT行业洞察 ? 作者:AIoT行业洞察 ? 2024-02-26 09:54 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本作品由安信可社区用户

沈夜制作

01外设介绍

先来介绍下0.96寸OLED显示屏(驱动芯片:SSD1306 / SSD1315)

[color=rgba(0, 0, 0, 0.87)],0.96寸OLED显示屏是一种小尺寸的有机发光二极管(OLED)显示屏,具有许多优点和特点。以下是对0.96寸OLED显示屏的介绍:

  • 尺寸:0.96寸指的是显示屏的对角线尺寸,通常为0.96英寸(约24.4毫米),适合小型设备和紧凑空间。
  • 分辨率:通常具有128x64像素的分辨率,可以显示清晰的图像和文本。
  • 技术:采用OLED技术,每个像素都是自发光的,不需要背光,因此具有更高的对比度和更广的视角。
  • 高亮度:OLED显示屏具有较高的亮度,即使在室外或明亮的环境下也能清晰可见。
  • 低功耗:相比传统的液晶显示屏,OLED显示屏具有较低的功耗,可以延长电池寿命。
  • 快速响应:OLED显示屏具有快速的响应时间,可以实现流畅的图像和动画效果。
  • 色彩鲜艳:OLED显示屏可以呈现鲜艳、饱满的颜色,使图像更加生动逼真。
  • 视角广:OLED显示屏具有广阔的视角,即使从不同的角度观看,图像仍然清晰可见。
  • 薄型轻便:OLED显示屏采用薄型设计,重量轻,适合应用于便携式设备和可穿戴设备。
  • 灵活性:某些OLED显示屏采用柔性基板制造,具有弯曲和弯折的能力,适用于柔性显示应用。
  • 高对比度:OLED显示屏具有高对比度,黑色显示非常深黑,白色显示非常亮白,使图像更加清晰。
  • 高刷新率:OLED显示屏具有高刷新率,可以实现流畅的视频播放和动态图像效果。
wKgaomXb7zqAE-T5AABAlZiGhrQ50.jpeg

02外设规格参数

工作电压:3.3V

工作电流:9MA

模块尺寸:27.3 x 27.8 MM

像素大小:128(H) x 64(V)RGB

驱动芯片:SSD1306

通信协议:IIC

管脚数量:4 Pin(2.54mm间距排针

03移植过程

分为资料介绍、移植至工程、引脚选择介绍:(点击文首原贴地址进行下载)

0.96寸OLED产品规格书.pdf

0.96寸OLED模块原理图-4针脚I2C接口.pdf

驱动芯片SSD1306数据手册.pdf

keil stm32 项目移植

wKgZomXb7zqAWsCzAAD4-hoHIcM84.jpeg

man.c 事例代码移植

wKgaomXb7zuAHTwDAARLoZ2nyyw606.png

删除 不用的代码。

#include "stm32f10x.h" // Device header

#include "Delay.h"

确少一个 延时,功能一样直接调用博流的库,可以 手动替换成bflb_mtimer_delay_ms ,但是可以根据c语法,[color=rgba(0, 0, 0, 0.87)]在代码中添加以下宏定义:

#define Delay_ms(ms) bflb_mtimer_delay_ms(ms)

则无需修改任何代码。

oled.c i2c 移植

OLED引脚初始化>>OLED_GPIO_Init,

I2C发送一个字节>>OLED_I2C_SendByte

iOLED写命令>>OLED_WriteCommand

OLED写数据>>OLED_WriteData

修改方法:直接复制 sdk里面的i2c代码即可

wKgZomXb7zuADFvpAAC3EHbGqg8894.png

经过分析。原先工程用的是软件模拟i2c,本次使用的硬件库的。

I2C发送一个字节>>OLED_I2C_SendByte 这个不用移植,直接删掉。

iOLED写命令>>OLED_WriteCommand

OLED写数据>>OLED_WriteData

wKgaomXb7zyAUB8lAABhN9QXS6c493.png

这里分析得出就是发送从机地址和命令。里面的函数都用不到,可以直接删除:

OLED_I2C_Start(); I2C起始

OLED_I2C_SendByte(0x78);

OLED_I2C_Stop(); //I2C终止

wKgZomXb7z2AbsGDAACioj0xJC0770.png

04移植验证

这里介绍功能齐全 - 支持字符、数字、汉字、图像及各种绘图图形显示。

PS:代码非原创,只是移植到了Ai-M61,经验证代码无任何报错。

wKgaomXb7z2Acck2AAFfqY0fft874.jpeg

快速使用:

解压 修改 Makefile 文件

BL_SDK_BASE ?= D:testboliubouffalo_sdk/

为自己的sdk路径即可

#include "OLED.h"

/*OLED初始化*/

OLED_Init();

/*在(0, 0)位置显示字符'A',字体大小为8*16点阵*/

OLED_ShowChar(0, 0, 'A', OLED_8X16);

/*调用OLED_Update函数,将OLED显存数组的内容更新到OLED硬件进行显示*/

OLED_Update();

wKgZomXb7z6AbNx8AAFuaBMGMIs51.jpeg

只需要引用一个,就能方便调用了。

高级设置:

OLED.c

OLED_GPIO_Init 函 数:OLED引脚初始化

只需要替换GPIO_PIN_0、GPIO_PIN_1,就可以修改自定义引脚

wKgaomXb7z6ASGv2AADMQJ0EE7g39.jpeg

OLED_Data.c

wKgZomXb7z-AcsZnAAGVkpZKuuI13.jpeg

注意:添加没有的中文字库,添加图像都在此,demo里面有详细的调用过程。

取模教程

一:配置软件,点设置然后按照如下设置。

wKgaomXb7z-AHB3MAAHpOSB23-U95.jpeg

二:生成字模。

wKgZomXb70CAUA5tAAEizRC-_XI00.jpeg

三:安装格式。主要是删掉多余的,复制没有的即可。

wKgaomXb70CAErhAAAErP0l0HLk22.jpegwKgZomXb70GAb7bbAAE4QNUQx8c42.jpeg

效果如下:

wKgaomXb70KACUF6AAAvgfY9_YA43.jpeg

PCtoLCD2002.zip (886.22 KB)

0.96oled.zip (17.69 KB)

备注:进入原贴下载

05常见问题汇总

移植纯c代码需要改的地方并不多,甚至原封不动的复制过来的man文件,仅仅是添加了文件头。一些常见问题汇总给大家作参考:

5.1文件找不到

打开CMakeLists.txt

添加文件包含,格式空格 一个文件名

target_sources(app PRIVATE oled.c OLED_Data.c)

5.2 编译器找不到路径

修改 Makefile 文件

BL_SDK_BASE ?= D:testboliubouffalo_sdk/

也可以 直接修改为sdk的绝对路径,这样你项目的目录 可以随便放在任何地方。

5.3 数据类型找不到

引入c语言库能解决90%

#include

#include

#include

#include

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示屏
    +关注

    关注

    28

    文章

    4624

    浏览量

    76896
  • IIC
    IIC
    +关注

    关注

    11

    文章

    306

    浏览量

    39688
  • 开发板
    +关注

    关注

    25

    文章

    5784

    浏览量

    106647
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    M-K1HSE开发板免费体验】开发板硬件解析

    ,提供系统调用接口API 参考代码,完美支持客户上层应用APP开发。 完美支持红外、光学、电容、电阻、触摸膜等多种主流触摸,支持免驱触摸的HID配置,无需调试。 开机测试:M-K
    发表于 07-02 11:57

    CW32模块使用 1.3单色OLED显示

    0.21(V) 驱动芯片: SH1106 通信协议: SPI(可调IIC) 三、移植过程 我们的目标是将例程移植至立创·CW32F030C8T6开发板上。按照以下步骤,即可完成
    的头像 发表于 07-01 14:57 ?223次阅读
    CW32模块使用 1.3<b class='flag-5'>寸</b><b class='flag-5'>单色</b>OLED显示<b class='flag-5'>屏</b>

    【CW32模块使用】0.96IIC单色

    我们的目标是将例程移植至立创·CW32F030C8T6开发板上。按照以下步骤,即可完成移植。 将源码导入工程; 根据编译报错处进行粗改; 修改引脚配置; 修改时序配置;
    的头像 发表于 05-11 16:19 ?544次阅读
    【CW32模块使用】<b class='flag-5'>0.96</b><b class='flag-5'>寸</b><b class='flag-5'>IIC</b><b class='flag-5'>单色</b><b class='flag-5'>屏</b>

    上线!国产AI语音开发板,定制你的聊天伙伴助手,可直接调用DeepSeek/豆包/通义千问

    伙伴们, 前不久我们将Ai-M61模组接入了ChatGPT, 弄了语音AI,光API调用费就能吃掉半年奶茶钱! 也有不少小伙伴在留言区表示“贵啊” (详情看这里:能和Ai-M61模组对话了?手搓一个
    的头像 发表于 04-15 17:11 ?546次阅读
    上线!国产<b class='flag-5'>AI</b>语音<b class='flag-5'>开发板</b>,定制你的聊天伙伴助手,可直接调用DeepSeek/豆包/通义千问

    雷卯收集AI实验课程开发板

    收集目的:方便客户选用AI实验课程开发板,并且能够让AI实验课程开发板稳定工作。雷卯EMC小哥围绕AI实验课程
    的头像 发表于 04-02 12:14 ?369次阅读
    雷卯收集<b class='flag-5'>AI</b>实验课程<b class='flag-5'>开发板</b>

    能和Ai-M61模组对话了?手搓一个ChatGPT 语音助手

    起猛了, 安信可的Ai-M61模组能说话了! 超低延迟实时秒回 ,对话超丝滑的那种,先来看一段VCR: 小安派+ChatGPT语音实测:对话丝滑到忘记对面是AI_ 人工智能的应用日益广泛。 各家模型
    的头像 发表于 03-12 11:57 ?3531次阅读
    能和<b class='flag-5'>Ai-M61</b>模组对话了?手搓一个ChatGPT 语音助手

    AI人脸识别开发板BW21-CBV-Kit驱动墨水

    试着用BW21-CBV-Kit点亮2.9墨水开发板例程非常丰富,在arduino上开发的话上手超级容易。
    的头像 发表于 03-04 18:24 ?1195次阅读
    用<b class='flag-5'>AI</b>人脸识别<b class='flag-5'>开发板</b>BW21-CBV-Kit驱动墨水<b class='flag-5'>屏</b>

    安信可Ai-M61系列模组实现蓝牙歌词播放功能

    以下作品由安信可社区用户 sujingliang 制作 Ai-M61 系列模组是由安信可科技开发的 Wi-Fi6 tid=44962tid=44421 printf("AVRCP
    的头像 发表于 02-26 14:16 ?623次阅读
    安信可<b class='flag-5'>Ai-M61</b>系列模组实现蓝牙歌词播放功能

    AI开发板】正点原子K230D BOX开发板来了!一款性能强悍且小巧便携的AI开发板

    的13.7倍,十分适用于机器视觉、图像处理等的应用开发! 正点原子K230D BOX开发板标配一块2.4的高分辨率MIPI触摸和一个高清摄像头模组,且板载了双色LED、蜂鸣器、音
    发表于 02-18 16:56

    正点原子ESP32S3系列开发板全面支持小智AI

    、512KB和8MB,另外还挂载了16MB Flash的外部存储资源。芯片集成了高性能的 Xtensa? 32 位 LX7 双核处理器、超低功耗协处理器、Wi-Fi 基带、蓝牙基带、RF 模块以及外设开发板板载资源丰富,可用开发板
    发表于 02-14 17:01

    安信可Ai-M61/M62系列模组支持CAN接口了?

    hello,小伙伴们,经过一段时间的开发和测试,安信可Ai-M61/M62模组可以支持CAN接口了。 起因是前段时间,突然有客户想拿小安派-SCP-4.3做电动车的码盘,但是没有CAN 接口
    的头像 发表于 12-27 10:59 ?895次阅读
    安信可<b class='flag-5'>Ai-M61</b>/<b class='flag-5'>M</b>62系列模组支持CAN接口了?

    【RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux

    【RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux
    的头像 发表于 11-16 01:02 ?1032次阅读
    【RA8D1试用活动】RA8D1B-CPKCOR<b class='flag-5'>开发板</b><b class='flag-5'>移植</b>linux

    航顺 HK32F407ZGT7 芯片的开发板:多功能外设助力多领域应用

    HK32F407ZGT7开发板 1.开发板简介 开发板是基于航顺芯片公司F4系列HK32F407ZGT7开发的一款开发板,Cortex-
    的头像 发表于 11-08 14:43 ?754次阅读
    航顺 HK32F407ZGT7 芯片的<b class='flag-5'>开发板</b>:多功能<b class='flag-5'>外设</b>助力多领域应用

    【干货】有了这份HK32F407ZGT7开发板介绍,1万个项目轻松拿捏!

    2024-11-0811:39·航顺HK32MCUHK32F407ZGT7开发板开发板简介开发板是基于航顺芯片公司F4系列HK32F407ZGT7开发的一款
    的头像 发表于 11-08 13:28 ?895次阅读
    【干货】有了这份HK32F407ZGT7<b class='flag-5'>开发板</b>介绍,1万个项目轻松拿捏!

    外设移植 安信可Ai-WB2-32S开发板+TM1637 NTP时钟

    使用的是AI-WB2-32S开发板,自己画了一个板子整合TM1637和舵机、BLE(舵机、BLE的将会在另外2篇帖子介绍),对应的接线方式如下: 移植过程: 根据参考帖子以及TM1637的规格书进行更改,时序
    的头像 发表于 09-24 14:29 ?787次阅读
    <b class='flag-5'>外设</b><b class='flag-5'>移植</b> 安信可<b class='flag-5'>Ai</b>-WB2-32S<b class='flag-5'>开发板</b>+TM1637 NTP时钟