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
    +关注

    关注

    14

    文章

    2112

    浏览量

    124330
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    30025
  • HiSpark
    +关注

    关注

    1

    文章

    156

    浏览量

    6904
收藏 人收藏

    评论

    相关推荐

    Wi-Fi 8要来了!未来Wi-Fi技术演进方向揭秘

    产品销售中,虽然Wi-Fi 7产品的销量份额快速从年初的个位数百分比增长至14%,但Wi-Fi 6产品的销量份额依然稳定在60%左右。如果从存量设备来看,那么Wi-Fi 7路由器的占比将远远小于这个数。   智能手机等终端设备已
    的头像 发表于 11-24 03:14 683次阅读
    <b class='flag-5'>Wi-Fi</b> 8要来了!未来<b class='flag-5'>Wi-Fi</b>技术演进方向揭秘

    Wi-Fi 7与Wi-Fi 6E有什么区别

    也许很多人还在考虑是否要将使用的Wi-Fi设备升级到Wi-Fi 6或Wi-Fi 6E,而这些标准的继任者却已经开始“登堂入室”了。Wi-Fi 7是新一代
    的头像 发表于 11-07 11:38 503次阅读

    DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册

    电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件 Pro数据手册.rar》资料免费下载
    发表于 05-30 17:53 1次下载
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模块开发<b class='flag-5'>套件</b> Pro数据手册

    DA16200 超低功耗 Wi-Fi 模块开发套件数据手册

    电子发烧友网站提供《DA16200 超低功耗 Wi-Fi 模块开发套件数据手册.rar》资料免费下载
    发表于 05-30 17:13 0次下载
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模块开发<b class='flag-5'>套件</b>数据手册

    华为获得全球首个国际Wi-Fi联盟WFA企业级Wi-Fi 7认证!

    Wi-Fi联盟已发布Wi-Fi 7认证标准,华为是第一批送测厂商,获得业界首个企业级Wi-Fi 7 的Wi-Fi联盟官方认证。
    的头像 发表于 04-28 10:17 645次阅读
    华为获得全球首个国际<b class='flag-5'>Wi-Fi</b>联盟WFA企业级<b class='flag-5'>Wi-Fi</b> 7认证!

    验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦

    验证物联网Wi-Fi HaLow用例的MM6108-EKH08开发套件来啦 MM6108-EKH08开发套件专为验证物联网Wi-Fi HaLow用例而设计。该
    的头像 发表于 04-11 12:01 1662次阅读
    验证物联网<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08开发<b class='flag-5'>套件</b>来啦

    Wi-Fi 7与Wi-Fi 6的相关知识科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于蓝
    的头像 发表于 03-12 10:59 692次阅读
    <b class='flag-5'>Wi-Fi</b> 7与<b class='flag-5'>Wi-Fi</b> 6的相关知识科普

    Wi-Fi的诞生与发展

    短距离无线通信技术有Wi-Fi、ZigBee、蓝牙以及Z-Wave,今天我们先揭开Wi-Fi的神秘面纱。Chrent短距离无线通信技术——Wi-Fi过去的20多年,Wi-Fi靠着仅有的
    的头像 发表于 03-07 08:26 1135次阅读
    <b class='flag-5'>Wi-Fi</b>的诞生与发展

    Wi-Fi HaLow和传统Wi-Fi的区别

    Wi-Fi HaLow和传统Wi-Fi的区别  Wi-Fi是一种无线网络技术,可以连接到互联网或局域网,为用户提供无线上网的便利。随着科技的发展和互联网的普及,Wi-Fi也在不断演进和
    的头像 发表于 02-02 15:28 1119次阅读

    康普携手Wi-Fi联盟,RUCKUS Wi-Fi 7系列接入点成Wi-Fi

     康普高级副总裁兼网络、智能蜂窝和安全解决方案总裁Bart Giordano对此表示: “我们非常荣幸能与Wi-Fi Alliance形成长期合作伙伴关系,将我们的RUCKUS Wi-Fi 7 接入点平台作为Wi-Fi CERT
    的头像 发表于 01-23 14:10 705次阅读

    BT Wi-Fi模式是否可以通过ModustoolBox对套件进行编程来实现?

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型开发套件。 浏览文档我无法弄清楚如何在不同的 Wi-Fi 和蓝牙模式(电源模式、连接模式等)下配置套件。 在
    发表于 01-22 06:19

    MediaTek携手Wi-Fi联盟,推动Wi-Fi 7无线连接技术的广泛应用

    对此,Wi-Fi联盟的总裁兼首席执行官 Kevin Robinson表示:“过去二十年来,MediaTek与Wi-Fi联盟携手合作,成功地将互通性优异、性能可靠的芯片组解决方案推向市场。我们非常高兴MediaTek能加入我们的Wi-Fi
    的头像 发表于 01-10 13:52 645次阅读

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢?

    Wi-Fi 6和Wi-Fi 5之间有哪些区别呢? Wi-Fi 6和Wi-Fi 5是无线局域网标准的两个版本,它们之间存在很多区别。Wi-Fi
    的头像 发表于 12-09 16:09 2239次阅读

    紫光展锐Wi-Fi 6成功通过Wi-Fi联盟认证

    近日,紫光展锐Wi-Fi 6产品成功通过Wi-Fi联盟 (简称“WFA”) Qualified Solution 认证,并支持Wi-Fi 6 Release 2,标志着紫光展锐自研Wi-Fi
    的头像 发表于 11-30 13:30 769次阅读

    什么是2.4 GHz Wi-Fi? 如何提升2.4 GHz Wi-Fi的性能?

    什么是2.4 GHz Wi-Fi?2.4 GHz Wi-Fi的优势 2.4 GHz Wi-Fi的劣势 如何提升2.4 GHz Wi-Fi的性能?2.4 GHz和5 GHz
    的头像 发表于 11-27 17:09 2300次阅读