本文來源電子發燒友社區,作者: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文章
2424瀏覽量
129559 -
HarmonyOS
+關注
關注
80文章
2153瀏覽量
36053 -
HiSpark
+關注
關注
1文章
156瀏覽量
7757
發布評論請先 登錄
相關推薦
熱點推薦
技術資訊 I Wi-Fi 模塊設計
本文要點Wi-Fi模塊設計旨在打造一套緊湊且高效的硬件和軟件解決方案,使設備能夠通過Wi-Fi網絡實現通信。Wi-Fi模塊設計是一個復雜的過程,要求研發人員兼具硬件與軟件工程方面的專業知識
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模塊
淺談Wi-Fi 6E與Wi-Fi 7的關鍵器件——BAW濾波器新技術
作者: Qorvo 亞太區無線連接事業部高級行銷經理林健富 ? 2020年1月,Wi-Fi聯盟正式宣布開放6GHz頻段(5925MHz-7125MHz),并將其命名為Wi-Fi 6E。2020年4月
發表于 09-19 18:29
?2128次閱讀
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
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】oled操作之hello world
評論