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

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

3天内不再提示

【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】oled操作之hello world

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-10-31 15:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文来源电子发烧友社区,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2288625_1_1.html


hellow world我的一小步,是人类的一大步,我的目标是星辰大海。
1. 今日目标
今天来用这块板子在oled屏上输出helloworld,mcuI2C控制OLED显示。
2.OLED屏介绍
ssd1306是一款单片CMOSOLED/PLED驱动器,具有有机/聚合物发光控制器二极管点阵图形显示系统。它由128个段和64个公共部分组成。这个IC是为普通阴极型OLED面板设计。
SSD1306内置对比度控制、显示RAM振荡器,减少了外部组件和功耗。它有256级亮度控制。数据/命令是从通用单片机通过硬件可选的6800/8000系列兼容并行接口发送,I2C接口或串行外围接口。它适用于许多紧凑型便携式应用程序,例如手机副显示屏、MP3播放器、计算器等。
模块特点:
· 没有背光,需要通过写入指令来开启显示
· 尺寸小:0.96寸,分辨率高:128*64
· 提供多种通信接口:6800、8080、3线/4线SPI、IIC
· 供电3.3V
数据手册见:SSD1780 (adafruit.com)
3.I2C协议介绍
I2C (Inter-Integrated Circuit,内置集成电路),同步(SCL控制) 串行(按位传输)接口。
两线协议-----时钟线和双向数据线,SCL(Serialclock,串行时钟)和SDA (SerialData,串行数据)。
主从协议-----通信双方为主机适配器( 主控制器)和客户设备(从设备)
特点:
交换数据总量少;
数据传输率低;
标准传输频率为100KHZ、400KHZ;
4.程序逻辑
主程序如下,首先初始化OLED,然后给屏幕填充黑色,相当于清空屏幕。再设置I2C通信的波特率,mcu用I2C控制OLED显示。再说的简单点就是通过定位到屏幕某个点,开始画点,字符对应的点的信息就是字库。
定位到某个点的函数如下
  1. void OledSetPosition(uint8_t x, uint8_t y)
  2. {
  3. WriteCmd(0xb0 + y);
  4. WriteCmd(((x & 0xf0) >> 4) | 0x10);
  5. WriteCmd(x & 0x0f);
  6. }
复制代码

显示一个字符的函数如下
  1. void OledShowChar(uint8_t x, uint8_t y, uint8_t ch, Font font)
  2. {
  3. uint8_t c = 0;
  4. uint8_t i = 0;
  5. c = ch - ' ';
  6. if (x > OLED_WIDTH - 1) {
  7. x = 0;
  8. y = y + 2;
  9. }
  10. if (font == FONT8x16) {
  11. OledSetPosition(x, y);
  12. for (i = 0; i < 8; i++){
  13. WriteData(F8X16[c*16 + i]);
  14. }
  15. OledSetPosition(x, y+1);
  16. for (i = 0; i < 8; i++) {
  17. WriteData(F8X16[c*16 + i + 8]);
  18. }
  19. } else {
  20. OledSetPosition(x, y);
  21. for (i = 0; i < 6; i++) {
  22. WriteData(F6x8[c][i]);
  23. }
  24. }
  25. }
复制代码
程序主逻辑如下
  1. static void OledmentTask(void *arg)
  2. {
  3. (void)arg;
  4. OledInit();
  5. OledFillScreen(0);
  6. IoTI2cInit(AHT20_I2C_IDX, AHT20_BAUDRATE);
  7. OledShowString(20, 3, "Hello world", 1);
  8. }
  9. static void OledDemo(void)
  10. {
  11. osThreadAttr_t attr;
  12. attr.name = "OledmentTask";
  13. attr.attr_bits = 0U;
  14. attr.cb_mem = NULL;
  15. attr.cb_size = 0U;
  16. attr.stack_mem = NULL;
  17. attr.stack_size = 4096;
  18. attr.priority = osPriorityNormal;
  19. if (osThreadNew(OledmentTask, NULL, &attr) == NULL) {
  20. printf("[OledDemo] Falied to create OledmentTask!n");
  21. }
  22. }
复制代码
5. 实物演示
poYBAGKzEMaAKEEkAAJaH5AtyPU185.jpg
6. 畅像未来

这块屏是可以调节亮度的,以亮度为灰度值,那么可以显示黑白图片了,再大胆一点,刷新率足够的话,按照指定频率显示不同的黑白图片,就可以看黑白电影了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • wi-fi
    +关注

    关注

    15

    文章

    2462

    浏览量

    130017
  • HarmonyOS
    +关注

    关注

    80

    文章

    2157

    浏览量

    36287
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何关闭或开启主设备Wi-Fi

    有用户反馈想要关闭或开启主FTTR设备的Wi-Fi,您可以登录主FTTR的web界面进行操作,具体操作如下:
    的头像 发表于 03-12 09:59 367次阅读
    如何关闭或开启主设备<b class='flag-5'>Wi-Fi</b>

    物联网浪潮下,如何精准选型Wi-Fi模块?

    在物联网迅猛发展、Wi-Fi技术日益成熟的当下,众多场景尤其是移动设备领域,对 Wi-Fi 无线数据传输的需求与日俱增。那么,在众多设备中究竟该如何挑选合适的 Wi-Fi模块 呢?接下来为您详细介绍
    的头像 发表于 03-02 15:37 281次阅读
    物联网浪潮下,如何精准选型<b class='flag-5'>Wi-Fi</b>模块?

    技术资讯 I Wi-Fi 模块设计

    本文要点Wi-Fi模块设计旨在打造一套紧凑且高效的硬件和软件解决方案,使设备能够通过Wi-Fi网络实现通信。Wi-Fi模块设计是一个复杂的过程,要求研发人员兼具硬件与软件工程方面的专业知识
    的头像 发表于 02-27 17:12 872次阅读
    技术资讯 I <b class='flag-5'>Wi-Fi</b> 模块设计

    Wi-Fi:无线连接的全球通用语

    与数据链路层的规范。 l Wi-Fi联盟:成立于1999年的国际组织,负责Wi-Fi商标认证、技术推广与互操作性测试。 l 频段:主要使用2.4GHz与5GHz频段,部分支持6GHz,不同频段在覆盖、穿透
    发表于 01-07 09:49

    Nordic发布nRF7002 EBII 开发板, 支持Wi-Fi 6, 解锁nRF54L新玩法

    Wi-Fi 6 功能,帮助开发人员创建高性能、高能效的Wi-Fi 6 物联网解决方案。 基于 Nordic 的 nRF7002 Wi-Fi 协同 IC,nRF7002 EBII帮助 采用
    发表于 12-10 11:58

    Wi-Fi模块选型指南 | 低功耗蓝牙/Wi-Fi 6模块推荐 | 物联网设备集成攻略

    物联网的快速发展,Wi-Fi技术的成熟的情况下,越来越多的场景需要用到Wi-Fi来无线传输数据,尤其是移动设备中,怎么再设备中选择合适的Wi-Fi模块呢?下面我们来介绍下Wi-Fi模块
    的头像 发表于 12-09 11:27 1319次阅读
    <b class='flag-5'>Wi-Fi</b>模块选型指南 | 低功耗蓝牙/<b class='flag-5'>Wi-Fi</b> 6模块推荐 | 物联网设备集成攻略

    浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术

    作者: Qorvo 亚太区无线连接事业部高级行销经理林健富   2020年1月,Wi-Fi联盟正式宣布开放6GHz频段(5925MHz-7125MHz),并将其命名为Wi-Fi 6E。2020年4月
    发表于 09-19 18:29 2452次阅读
    浅谈<b class='flag-5'>Wi-Fi</b> 6E与<b class='flag-5'>Wi-Fi</b> 7的关键器件——BAW滤波器新技术

    如何更新 NuMaker IoT 板上的 Wi-Fi 模块固件?

    更新 NuMaker IoT 板上的 Wi-Fi 模块固件
    发表于 09-04 08:28

    基于 SSID 的 Wi-Fi 定位:与其他定位服务的性能比较

    随着 nRF7000 Wi-Fi 协同 IC 的推出,我们现在可以提供具有 Wi-Fi、蜂窝物联网和 GNSS 功能的完整硅到云定位解决方案。nRF7000 针对 Wi-Fi 网络扫描进行了优化
    发表于 08-31 21:01

    LitePoint Wi-Fi测试软件减轻客户设计负担

    Wi-Fi 7于一年多前获得Wi-Fi联盟认证以来,作为最新一代通信技术,Wi-Fi正逐步成为用户实现无所不在无线连接的新选择。随着每一代Wi-Fi信号复杂性的提升,建议将硬件测试纳
    的头像 发表于 08-06 15:34 1382次阅读
    LitePoint <b class='flag-5'>Wi-Fi</b>测试软件减轻客户设计负担

    有没有什么修复方法可以确保 AP 模式下的 Wi-Fi 和 BLE 连接同时正常工作?

    我正在使用 CYBSYSKIT DEV 01 套件。我尝试在 AP 模式下打开 Wi-Fi 并宣传 BLE。我可以宣传 SoftAP 和 BLE。但是,我无法从中央设备连接到 BLE。它可以立即连接并断开连接。有没有什么修复方法可以确保 AP 模式下的
    发表于 07-17 06:13

    如何选择合适的芯科科技Wi-Fi开发板

    您正在寻找适用于超低功耗物联网应用项目的Wi-Fi 开发板吗?本文将介绍Silicon Labs(芯科科技)推出的所有SiWx917 Wi-Fi 6和低功耗蓝牙5.4解决方案的Wi-Fi 开发板。SiWx917是目前市场上最节能
    的头像 发表于 07-09 09:15 2929次阅读

    科普|公司的Wi-Fi,为什么这么慢?

    大家在公司上班,经常会使用到Wi-Fi。最近这几年,随着时代的发展,高清视频会议等大带宽网络应用越来越普遍。而公司的网络,却非常不给力,频繁卡顿,严重影响使用体验。哪怕IT的同事已经把网络优化得很
    的头像 发表于 06-20 06:06 1796次阅读
    科普|公司的<b class='flag-5'>Wi-Fi</b>,为什么这么慢?

    Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1

    英国作家狄更斯在《双城记》的开头写道:“这是最好的时代,也是最坏的时代。” 这句话若套用在现今Wi-Fi 的市场现状,何尝不是惊人的相似? 怎么说呢?Wi-Fi 从被发明至今已经经过了20多年的迭代
    发表于 06-13 11:09

    贸泽电子开售Qorvo Wi-Fi 7前端模块

    入多输出(MIMO)功能,全频段Wi-Fi 5、6和6E。Wi-Fi 7可确保更高吞吐量、更低延迟和更高数据速率。多链路操作有助于建立多个有源链路,通过选择最可用的传输链路来提高峰值数据速率和减少延迟。
    的头像 发表于 06-12 10:21 1399次阅读