本文来源电子发烧友社区,作者:jf_53933321, 帖子地址:https://bbs.elecfans.com/jishu_2288625_1_1.html
hellow world我的一小步,是人类的一大步,我的目标是星辰大海。
hellow world我的一小步,是人类的一大步,我的目标是星辰大海。
1. 今日目标
2.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协议介绍
特点:
交换数据总量少;
数据传输率低;
标准传输频率为100KHZ、400KHZ;
4.程序逻辑
主程序如下,首先初始化OLED,然后给屏幕填充黑色,相当于清空屏幕。再设置I2C通信的波特率,mcu用I2C控制OLED显示。再说的简单点就是通过定位到屏幕某个点,开始画点,字符对应的点的信息就是字库。
定位到某个点的函数如下
- void OledSetPosition(uint8_t x, uint8_t y)
- {
- WriteCmd(0xb0 + y);
- WriteCmd(((x & 0xf0) >> 4) | 0x10);
- WriteCmd(x & 0x0f);
- }
显示一个字符的函数如下
- void OledShowChar(uint8_t x, uint8_t y, uint8_t ch, Font font)
- {
- uint8_t c = 0;
- uint8_t i = 0;
- c = ch - ' ';
- if (x > OLED_WIDTH - 1) {
- x = 0;
- y = y + 2;
- }
- if (font == FONT8x16) {
- OledSetPosition(x, y);
- for (i = 0; i < 8; i++){
- WriteData(F8X16[c*16 + i]);
- }
- OledSetPosition(x, y+1);
- for (i = 0; i < 8; i++) {
- WriteData(F8X16[c*16 + i + 8]);
- }
- } else {
- OledSetPosition(x, y);
- for (i = 0; i < 6; i++) {
- WriteData(F6x8[c][i]);
- }
- }
- }
程序主逻辑如下
- static void OledmentTask(void *arg)
- {
- (void)arg;
- OledInit();
- OledFillScreen(0);
- IoTI2cInit(AHT20_I2C_IDX, AHT20_BAUDRATE);
- OledShowString(20, 3, "Hello world", 1);
- }
- static void OledDemo(void)
- {
- osThreadAttr_t attr;
- attr.name = "OledmentTask";
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = 4096;
- attr.priority = osPriorityNormal;
- if (osThreadNew(OledmentTask, NULL, &attr) == NULL) {
- printf("[OledDemo] Falied to create OledmentTask!n");
- }
- }
5. 实物演示

6. 畅像未来
这块屏是可以调节亮度的,以亮度为灰度值,那么可以显示黑白图片了,再大胆一点,刷新率足够的话,按照指定频率显示不同的黑白图片,就可以看黑白电影了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
wi-fi
+关注
关注
15文章
2379浏览量
128886 -
HarmonyOS
+关注
关注
80文章
2146浏览量
35560 -
HiSpark
+关注
关注
1文章
156浏览量
7683
发布评论请先 登录
相关推荐
热点推荐
浅谈Wi-Fi 6E与Wi-Fi 7的关键器件——BAW滤波器新技术
作者: Qorvo 亚太区无线连接事业部高级行销经理林健富 2020年1月,Wi-Fi联盟正式宣布开放6GHz频段(5925MHz-7125MHz),并将其命名为Wi-Fi 6E。2020年4月
发表于 09-19 18:29
•1314次阅读
基于 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信号复杂性的提升,建议将硬件测试纳
有没有什么修复方法可以确保 AP 模式下的 Wi-Fi 和 BLE 连接同时正常工作?
我正在使用 CYBSYSKIT DEV 01 套件。我尝试在 AP 模式下打开 Wi-Fi 并宣传 BLE。我可以宣传 SoftAP 和 BLE。但是,我无法从中央设备连接到 BLE。它可以立即连接并断开连接。有没有什么修复方法可以确保 AP 模式下的
发表于 07-17 06:13
科普|公司的Wi-Fi,为什么这么慢?
大家在公司上班,经常会使用到Wi-Fi。最近这几年,随着时代的发展,高清视频会议等大带宽网络应用越来越普遍。而公司的网络,却非常不给力,频繁卡顿,严重影响使用体验。哪怕IT的同事已经把网络优化得很
Wi-Fi 8:开启极高可靠性 (UHR) 连接的新纪元——1
英国作家狄更斯在《双城记》的开头写道:“这是最好的时代,也是最坏的时代。”
这句话若套用在现今Wi-Fi 的市场现状,何尝不是惊人的相似?
怎么说呢?Wi-Fi 从被发明至今已经经过了20多年的迭代
发表于 06-13 11:09
Wi-Fi HaLow如何突破传统Wi-Fi性能瓶颈?
视频推荐在万物互联的时代,传统Wi-Fi在覆盖范围、功耗、连接数上渐显不足。而Wi-FiHaLow的诞生,正在用黑科技打破传统Wi-Fi的性能瓶颈!今天,我们一起来探究Wi-FiHaL
基于 Wi-Fi 的定位服务
以下捕获使用 location_wifi_get 函数请求 Wi-Fi 定位服务。该事件的总功耗为 125.85mC,日志显示精确度为 30.0m。
Got location:
method
发表于 04-17 15:16
nRF Cloud Wi-Fi 定位服务
、Predictive-GPS、Single-Cell、Multi-Cell 和 Wi-Fi 定位。通过利用 nRF Cloud 的优化定位算法,基于 Nordic SoC 和 模组的产品可在定位用例
发表于 04-17 15:07
Wi-Fi 定位服务
Wi-Fi 是一种著名的无线网络技术,用于设备的局域网和互联网接入。Wi-Fi 通过 Wi-Fi 网络为家庭、办公室和学校等环境提供便捷的无线互联网接入服务。
Wi-Fi 定位是一种
发表于 04-17 15:01
推出了期待已久的 nRF7002 低功耗Wi-Fi 6
支持长寿命的电池供电Wi-Fi操作。
借助 Wi-Fi 6,我们将支持用于 Matter 的所有无线协议、用于调试的蓝牙 LE、用于低功耗mesh网络的 Thread 以及用于高吞吐量的Wi-
发表于 03-26 11:00
华为海思正式进入Wi-Fi FEM赛道?
大家都知道了,2018年11 月离开锐迪科(RDA),前往福建晋江创立三伍微,专注于Wi-Fi射频前端芯片,从路由器Wi-Fi FEM,到手机Wi-Fi FEM,再到IoT FEM全覆
发表于 12-11 17:42
摩尔斯微电子发布Wi-Fi HaLow评估套件,加速物联网开发
。 MM6108-EKH05评估套件充分发挥了Wi-Fi HaLow技术的强大功能,支持从智能家居到工业自动化的广泛应用。其数据传输速率高达32.5 Mbps,并能在1 GHz以下频率范围内进行可编程操作,是物联网
从Wi-Fi 4到Wi-Fi 7:网速飙升40倍的无线革命
1 Wi-Fi技术的快速发展 每一代新的Wi-Fi协议发布,都会带来更高的无线速率。 从Wi-Fi 4到Wi-Fi 7:无线网络技术显著提升,实现了网速的巨大飞跃。

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