本文來源電子發燒友社區,作者:少年阿炳, 帖子地址:https://bbs.elecfans.com/jishu_2246563_1_1.html 本次內容包括 1.使用模擬IIC點亮OLED屏幕,并讀取DHT11的溫濕度顯示在OLED屏上 2.硬件IIC非中斷的使用 首先是模擬IIC的使用 模擬IIC就是使用單片機控制IO口輸出高低電平模擬實際IIC開始,結束,數據發送等的相應規則達到點亮OLED的目的。所以最重要的就是如何配置IO口已經輸出高低電平。 將需要的IO口配置成輸出模式 使用GPIO_Write()函數輸出高/低電平
之后就是模擬開始信號,結束信號,響應信號,數據發送,命令發送等。我這里是將現成可用的STM32代碼移植過來,然后做了對應的修改。詳細可以查看附件1. 特別說明:我這里的響應信號也是模擬的,并不是真讀取OLED的返回。 DHT11溫濕度的讀取 DHT11的數據是通過單總線實現的。數據讀取信號以及返回的溫濕度值都是通過一根數據線完成,因此需要對同一個IO口先進行輸出配置,然后進行輸入配置。
硬件IIC使用的注意事項 在用模擬IIC點亮OLED后,我尋思著使用以下CSM32自帶的硬件IIC點亮OLED, 使用的是非中斷模式,啟動硬件IIC使用的I2C_Init_case1()函數。
特別說明一下從機地址的配置形式,因為此線使用模式IIC時從機地址都是0x78,所以到了硬件IIC,我想當然配置成了0x78,這樣是錯誤的。 從機地址的bit0位需要根據READ或者WRITE分別配置成1/0 一開始我將地址配置成0x78后,通過邏輯分析儀讀取到的SDA變成了0xF0(11110000),也就是0x78(01111000)左移了一位,也就是說CSM32的硬件IIC將我的地址左移了一位,然后在bit0插入了一位0。所以在初始化配置時,需要將從機地址配置成0x3C,這樣才能確保從機地址正確。 之后通過I2C_Write函數寫數據。
I2C_Write(uint8_t addr,uint8_t data) addr參數,實際代表的是數據命令,對應的就是模擬IIC發送時,中間的那位數據, 0x00,寫入命令。0x40,寫入數據。
完成以上修改后,就能將之前模擬IIC修改為硬件IIC。 下面圖片中邏輯分析儀的時序圖供大家參考,截圖框內是錯誤配置的從機地址。 因為我使用的邏輯分析儀就20幾塊,顯示的從機地址好像不正確,但是波形還是準確的。 |
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
南京中科微
+關注
關注
0文章
60瀏覽量
784 -
CSM32RV20
+關注
關注
0文章
40瀏覽量
230
發布評論請先 登錄
相關推薦
【正點原子STM32H7R3開發套件試用體驗】DS18B20、DHT11溫濕度采集
【正點原子STM32H7R3開發套件試用體驗】DS18B20、DHT11溫濕度采集
本文主要分為兩部分,分別介紹了使用正點原子STM32H7R3開發
發表于 01-01 11:16
【敏矽微ME32G070開發板免費體驗】開箱+點燈+點亮OLED
ME32G070 支持硬件 I2C,這里偷個懶,不想使用繁瑣的跳線,直接在開發板上隨意插入 OLED 顯示屏的引腳,如下:
直接插上 OLED
發表于 12-19 00:25
【RA-Eco-RA2E1-48PIN-V1.0開發板試用】IIC 通信的 OLED 顯示
【RA-Eco-RA2E1-48PIN-V1.0開發板試用】IIC 通信的 OLED 顯示
簡介
IIC
發表于 11-07 02:30
關于Air780E:使用文件系統存儲溫濕度數據怎么操作?
?伙伴們,今天我們來學習合宙低功耗4G模組Air780E快速入門之使用文件系統存儲溫濕度數據。 一、 編寫腳本 1.1 硬件及資料準備 780E開發板 LuatOS-Air780E-文件系統
【RA-Eco-RA0E1-32PIN-V1.0開發板試用】sht30溫濕度傳感器
這一章節,繼續探究RA0E1的硬件iic外設。來驅動SHT30溫濕度傳感器,該款溫濕度傳感器具有高精度穩定性,可以精確到0.125度的分辨率,特別適合用來做環境的監測。
發表于 10-14 23:40
【BearPi-Pico H3863星閃開發板體驗連載】GPIO 控制與 IIC OLED 顯示
杜邦線連接開發板與 OLED 顯示屏,接線方式如下
TXD -----> SDA
?
RXD -----> SCL
?
3V3 ------> VCC
?
GND -----> GND
發表于 10-03 12:47
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據及 OLED顯示
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據及 OLED顯示
求助,請問ESP32-S2-DevKitM-1開發板的IIC引腳是哪些?
購買的ESP32-S2-DevKitM-1,說是有兩路IIC,可是到處找的資料,都沒說是哪些引腳,使用Arduino里的Adafruit_SSD1306或者U8g2庫對0.96吋OLED
發表于 07-01 07:03
如何用stm32實現將IIC溫濕度傳感線采集到的數據轉發到485的設備。
各位前輩,小弟剛畢業。公司要求實現這么一個項目,把iic協議的sht30溫濕度傳感器線采集到的數據轉在485通訊的顯示屏上打印出來,小弟毫無頭緒,網上資料不多,望指點。
發表于 06-21 09:40
項目分享|基于ELF 1開發板的MQTT遠程溫濕度監測系統
今天非常榮幸向各位小伙伴詳細展示一個由共創社成員完成的MQTT遠程溫濕度監控系統項目。該項目借助ELF1開發板作為核心技術支撐,成功實現了對各類環境空間中溫濕度數據的實時、遠程、穩定監測。該系統不僅
基于51單片機的SHT11溫濕度監測系統,LCD1602顯示,上下限按鍵設置
LCD1602顯示模塊實時顯示溫濕度數據,同時可以通過按鍵模塊對溫濕度報警上、下限值進行設定。
當SHT11讀取的
發表于 03-26 17:44
stm32f407vet6驅動0.96寸oled,顯示屏無法顯示怎么解決?
stm32f407vet6驅動0.96寸oled——iic協議代碼無報錯時鐘正確顯示屏無法顯示
發表于 03-14 06:49
【原創】DHT11傳感器溫濕度監測系統畢設,論文、代碼、原理圖和仿真介紹
使用。但從成本考慮,DHT11價格便宜,其應用更為廣泛。
系統概述
本文設計了一種基于51單片機和DHT11傳感器的溫濕度監測系統,能夠實現對當前環境溫濕度數據的采集、處理、顯示和報警等功能。
系統
發表于 03-13 00:53
【外設移植】0.96寸IIC單色屏+Ai-M61開發板
本作品由安信可社區用戶 沈夜 制作 ? 01外設介紹 先來介紹下0.96寸OLED顯示屏(驅動芯片:SSD1306 / SSD1315) [color=rgba(0, 0, 0, 0.87
評論