色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【南京中科微CSM32RV20開發(fā)板試用體驗(yàn)】模擬IIC和硬件IIC的使用點(diǎn)亮0.96OLED屏幕+溫濕度讀取顯示

開發(fā)板試用精選 ? 來(lái)源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-30 10:59 ? 次閱讀
本文來(lái)源電子發(fā)燒友社區(qū),作者:少年阿炳, 帖子地址:https://bbs.elecfans.com/jishu_2246563_1_1.html

本次內(nèi)容包括
1.使用模擬IIC點(diǎn)亮OLED屏幕,并讀取DHT11的溫濕度顯示在OLED屏上
2.硬件IIC非中斷的使用

首先是模擬IIC的使用
模擬IIC就是使用單片機(jī)控制IO口輸出高低電平模擬實(shí)際IIC開始,結(jié)束,數(shù)據(jù)發(fā)送等的相應(yīng)規(guī)則達(dá)到點(diǎn)亮OLED的目的。所以最重要的就是如何配置IO口已經(jīng)輸出高低電平。
將需要的IO口配置成輸出模式


  1. GPIO_PULL_Init(GPIOA,PIN7,GPIO_PULLUP);
  2. GPIO_MODE_Init(GPIOA,PIN7,GPIO_MODE_OUTPUT); //SDAGPIO 模式
  3. GPIO_MODE_Init(GPIOA,PIN5,GPIO_MODE_OUTPUT); // SCL GPIO 模式
  4. GPIO_PULL_Init(GPIOA,PIN5,GPIO_PULLUP);
復(fù)制代碼

使用GPIO_Write()函數(shù)輸出高/低電平


  1. //#define OLED_SCLK_Set() GPIO_Write(GPIOA,PIN5,GPIO_SET)//PA5(SCL)輸出高
  2. //#define OLED_SCLK_Clr() GPIO_Write(GPIOA,PIN5,GPIO_RESET) //PA5(SCL)輸出低
  3. //#define OLED_SDIN_Set() GPIO_Write(GPIOA,PIN7,GPIO_SET) //PA7(SDA)輸出高
  4. //#define OLED_SDIN_Clr() GPIO_Write(GPIOA,PIN7,GPIO_RESET) //PA7(SDA)輸出高
  5. //#define OLED_READ_SDIN() GPIO_Read(GPIOA, PIN7) //讀取PA7(SDA)電平
復(fù)制代碼


之后就是模擬開始信號(hào),結(jié)束信號(hào),響應(yīng)信號(hào),數(shù)據(jù)發(fā)送,命令發(fā)送等。我這里是將現(xiàn)成可用的STM32代碼移植過(guò)來(lái),然后做了對(duì)應(yīng)的修改。詳細(xì)可以查看附件1.
特別說(shuō)明:我這里的響應(yīng)信號(hào)也是模擬的,并不是真讀取OLED的返回。

DHT11溫濕度的讀取
DHT11的數(shù)據(jù)是通過(guò)單總線實(shí)現(xiàn)的。數(shù)據(jù)讀取信號(hào)以及返回的溫濕度值都是通過(guò)一根數(shù)據(jù)線完成,因此需要對(duì)同一個(gè)IO口先進(jìn)行輸出配置,然后進(jìn)行輸入配置。


  1. // DTH11---> PB6
  2. // 輸出模式
  3. void DHT11_OUT(void)
  4. {
  5. GPIO_MODE_Init(GPIOB,PIN6,GPIO_MODE_OUTPUT); //GPIO 模式
  6. GPIO_PULL_Init(GPIOB,PIN6,GPIO_PULLUP); //GPIO 上拉//PB6
  7. }
  8. // 輸入模式
  9. void DHT11_IN(void)
  10. {
  11. GPIO_MODE_Init(GPIOB,PIN6,GPIO_MODE_INPUT); //GPIO 模式
  12. GPIO_PULL_Init(GPIOB,PIN6,GPIO_PULLUP); //GPIO
  13. }
復(fù)制代碼



硬件IIC使用的注意事項(xiàng)
在用模擬IIC點(diǎn)亮OLED后,我尋思著使用以下CSM32自帶的硬件IIC點(diǎn)亮OLED,
使用的是非中斷模式,啟動(dòng)硬件IIC使用的I2C_Init_case1()函數(shù)。


  1. void I2C_Init_case1(void)//非中斷模式
  2. {
  3. GPIO_MODE_Init(GPIOA, PIN7,GPIO_MODE_AF);
  4. GPIO_MODE_Init(GPIOA, PIN8,GPIO_MODE_AF);
  5. GPIO_AF_Init(GPIOA,PIN7,GPIO_AF0); //SCL
  6. GPIO_AF_Init(GPIOA,PIN8,GPIO_AF0); //SDA
  7. GPIO_PULL_Init(GPIOA, PIN7,GPIO_PULLUP);
  8. GPIO_PULL_Init(GPIOA, PIN8,GPIO_PULLUP);
  9. I2C->CTRL =1<<12? ? //時(shí)鐘分頻:0-不分頻,1-2分頻
  10. |0<<9? ???//error中斷:0-關(guān)閉,1-開啟
  11. |0<<8? ???//ready中斷:0-關(guān)閉,1-開啟
  12. |0<<7? ???//時(shí)鐘頻率:0-100K,1-400K
  13. |0x3C; //從機(jī)地址
  14. }
復(fù)制代碼


特別說(shuō)明一下從機(jī)地址的配置形式,因?yàn)榇司€使用模式IIC時(shí)從機(jī)地址都是0x78,所以到了硬件IIC,我想當(dāng)然配置成了0x78,這樣是錯(cuò)誤的。
從機(jī)地址的bit0位需要根據(jù)READ或者WRITE分別配置成1/0
一開始我將地址配置成0x78后,通過(guò)邏輯分析儀讀取到的SDA變成了0xF0(11110000),也就是0x78(01111000)左移了一位,也就是說(shuō)CSM32的硬件IIC將我的地址左移了一位,然后在bit0插入了一位0。所以在初始化配置時(shí),需要將從機(jī)地址配置成0x3C,這樣才能確保從機(jī)地址正確。
之后通過(guò)I2C_Write函數(shù)寫數(shù)據(jù)。


  1. void I2C_Write(uint8_t addr,uint8_t data)//適用于非中斷模式
  2. {
  3. uint32_t i2c_rw_en = 0x0<<16; //i2c操作:0-寫操作,1-讀操作
  4. uint32_t i2c_addr = addr<<8;??//存儲(chǔ)單元地址
  5. uint32_t i2c_rwdata = data; //數(shù)據(jù)
  6. I2C->STATUS1 = 0; //清除狀態(tài)標(biāo)志
  7. I2C->DATA = i2c_addr|i2c_rw_en|i2c_rwdata;//寫數(shù)據(jù)
  8. while(!(I2C->STATUS1&0x01));
  9. I2C->STATUS1 = 0;
  10. }
復(fù)制代碼

I2C_Write(uint8_t addr,uint8_t data)

addr參數(shù),實(shí)際代表的是數(shù)據(jù)命令,對(duì)應(yīng)的就是模擬IIC發(fā)送時(shí),中間的那位數(shù)據(jù),
0x00,寫入命令。0x40,寫入數(shù)據(jù)。


  1. void OLED_Write_IIC_Command(u8 IIC_Command)
  2. {
  3. I2C_Write(0x00,IIC_Command);
  4. }
  5. /**********************************************
  6. // IIC Write Data
  7. **********************************************/
  8. void OLED_Write_IIC_Data(u8 IIC_Data)
  9. {
  10. I2C_Write(0x40,IIC_Data);
  11. }
復(fù)制代碼

完成以上修改后,就能將之前模擬IIC修改為硬件IIC。

下面圖片中邏輯分析儀的時(shí)序圖供大家參考,截圖框內(nèi)是錯(cuò)誤配置的從機(jī)地址。
因?yàn)槲沂褂玫倪壿嫹治鰞x就20幾塊,顯示的從機(jī)地址好像不正確,但是波形還是準(zhǔn)確的。




3.jpg

2.jpg

40c93b9a48e41c95584ee2fb4f59c3435b492d03.jpg

硬件IIC.rar(源代碼下載

模擬IIC+DHT11.rar(源代碼下載)


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 南京中科微
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    744
  • CSM32RV20
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    216
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【敏矽ME32G070開發(fā)板免費(fèi)體驗(yàn)】開箱+點(diǎn)燈+點(diǎn)亮OLED

    ME32G070 支持硬件 I2C,這里偷個(gè)懶,不想使用繁瑣的跳線,直接在開發(fā)板上隨意插入 OLED 顯示屏的引腳,如下: 直接插上 OLED
    發(fā)表于 12-19 00:25

    基于CW32模塊的SHT30溫濕度傳感器設(shè)計(jì)

    我們的目標(biāo)是將例程移植至CW32F030C8T6開發(fā)板上【測(cè)量溫濕度的功能】。首先要獲取資料,查看數(shù)據(jù)手冊(cè)應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。
    的頭像 發(fā)表于 11-12 11:14 ?289次閱讀
    基于CW32模塊的SHT30<b class='flag-5'>溫濕度</b>傳感器設(shè)計(jì)

    【RA-Eco-RA2E1-48PIN-V1.0開發(fā)板試用IIC 通信的 OLED 顯示

    【RA-Eco-RA2E1-48PIN-V1.0開發(fā)板試用IIC 通信的 OLED 顯示 簡(jiǎn)介 IIC
    發(fā)表于 11-07 02:30

    關(guān)于Air780E:使用文件系統(tǒng)存儲(chǔ)溫濕度數(shù)據(jù)怎么操作?

    ?伙伴們,今天我們來(lái)學(xué)習(xí)合宙低功耗4G模組Air780E快速入門之使用文件系統(tǒng)存儲(chǔ)溫濕度數(shù)據(jù)。 一、 編寫腳本 1.1 硬件及資料準(zhǔn)備 780E開發(fā)板 LuatOS-Air780E-文件系統(tǒng)
    的頭像 發(fā)表于 10-31 07:26 ?158次閱讀
    關(guān)于Air780E:使用文件系統(tǒng)存儲(chǔ)<b class='flag-5'>溫濕度</b>數(shù)據(jù)怎么操作?

    【RA-Eco-RA0E1-32PIN-V1.0開發(fā)板試用】sht30溫濕度傳感器

    這一章節(jié),繼續(xù)探究RA0E1的硬件iic外設(shè)。來(lái)驅(qū)動(dòng)SHT30溫濕度傳感器,該款溫濕度傳感器具有高精度穩(wěn)定性,可以精確到0.125度的分辨率,特別適合用來(lái)做環(huán)境的監(jiān)測(cè)。
    發(fā)表于 10-14 23:40

    【BearPi-Pico H3863星閃開發(fā)板體驗(yàn)連載】GPIO 控制與 IIC OLED 顯示

    杜邦線連接開發(fā)板OLED 顯示屏,接線方式如下 TXD -----> SDA ? RXD -----> SCL ? 3V3 ------> VCC ? GND -----> GND
    發(fā)表于 10-03 12:47

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?1157次閱讀
    Arduino Nano 和 NodeMCU ESP8266 <b class='flag-5'>讀取</b> DHT11 環(huán)境<b class='flag-5'>溫濕度</b>數(shù)據(jù)及 <b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

    求助,請(qǐng)問(wèn)ESP32-S2-DevKitM-1開發(fā)板IIC引腳是哪些?

    購(gòu)買的ESP32-S2-DevKitM-1,說(shuō)是有兩路IIC,可是到處找的資料,都沒說(shuō)是哪些引腳,使用Arduino里的Adafruit_SSD1306或者U8g2庫(kù)對(duì)0.96OLED
    發(fā)表于 07-01 07:03

    【GD32F303紅楓派開發(fā)板使用手冊(cè)】第二十二講 IIC-IIC OLED顯示實(shí)驗(yàn)

    通過(guò)本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: ?OLED驅(qū)動(dòng)原理 ?IIC驅(qū)動(dòng)OLED顯示操作 22.2 實(shí)驗(yàn)原理 OLED模塊的驅(qū)動(dòng)芯片為SSD1306,
    的頭像 發(fā)表于 06-22 09:59 ?677次閱讀
    【GD32F303紅楓派<b class='flag-5'>開發(fā)板</b>使用手冊(cè)】第二十二講  <b class='flag-5'>IIC-IIC</b> <b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>實(shí)驗(yàn)

    如何用stm32實(shí)現(xiàn)將IIC溫濕度傳感線采集到的數(shù)據(jù)轉(zhuǎn)發(fā)到485的設(shè)備。

    各位前輩,小弟剛畢業(yè)。公司要求實(shí)現(xiàn)這么一個(gè)項(xiàng)目,把iic協(xié)議的sht30溫濕度傳感器線采集到的數(shù)據(jù)轉(zhuǎn)在485通訊的顯示屏上打印出來(lái),小弟毫無(wú)頭緒,網(wǎng)上資料不多,望指點(diǎn)。
    發(fā)表于 06-21 09:40

    項(xiàng)目分享|基于ELF 1開發(fā)板的MQTT遠(yuǎn)程溫濕度監(jiān)測(cè)系統(tǒng)

    今天非常榮幸向各位小伙伴詳細(xì)展示一個(gè)由共創(chuàng)社成員完成的MQTT遠(yuǎn)程溫濕度監(jiān)控系統(tǒng)項(xiàng)目。該項(xiàng)目借助ELF1開發(fā)板作為核心技術(shù)支撐,成功實(shí)現(xiàn)了對(duì)各類環(huán)境空間中溫濕度數(shù)據(jù)的實(shí)時(shí)、遠(yuǎn)程、穩(wěn)定監(jiān)測(cè)。該系統(tǒng)不僅
    的頭像 發(fā)表于 04-26 09:54 ?498次閱讀
    項(xiàng)目分享|基于ELF 1<b class='flag-5'>開發(fā)板</b>的MQTT遠(yuǎn)程<b class='flag-5'>溫濕度</b>監(jiān)測(cè)系統(tǒng)

    基于51單片機(jī)的SHT11溫濕度監(jiān)測(cè)系統(tǒng),LCD1602顯示,上下限按鍵設(shè)置

    LCD1602顯示模塊實(shí)時(shí)顯示溫濕度數(shù)據(jù),同時(shí)可以通過(guò)按鍵模塊對(duì)溫濕度報(bào)警上、下限值進(jìn)行設(shè)定。 當(dāng)SHT11讀取
    發(fā)表于 03-26 17:44

    stm32f407vet6驅(qū)動(dòng)0.96oled,顯示屏無(wú)法顯示怎么解決?

    stm32f407vet6驅(qū)動(dòng)0.96oled——iic協(xié)議代碼無(wú)報(bào)錯(cuò)時(shí)鐘正確顯示屏無(wú)法顯示
    發(fā)表于 03-14 06:49

    【原創(chuàng)】DHT11傳感器溫濕度監(jiān)測(cè)系統(tǒng)畢設(shè),論文、代碼、原理圖和仿真介紹

    使用。但從成本考慮,DHT11價(jià)格便宜,其應(yīng)用更為廣泛。 系統(tǒng)概述 本文設(shè)計(jì)了一種基于51單片機(jī)和DHT11傳感器的溫濕度監(jiān)測(cè)系統(tǒng),能夠?qū)崿F(xiàn)對(duì)當(dāng)前環(huán)境溫濕度數(shù)據(jù)的采集、處理、顯示和報(bào)警等功能。 系統(tǒng)
    發(fā)表于 03-13 00:53

    【外設(shè)移植】0.96IIC單色屏+Ai-M61開發(fā)板

    本作品由安信可社區(qū)用戶 沈夜 制作 ? 01外設(shè)介紹 先來(lái)介紹下0.96OLED顯示屏(驅(qū)動(dòng)芯片:SSD1306 / SSD1315) [color=rgba(0, 0, 0, 0.87
    的頭像 發(fā)表于 02-26 09:54 ?2512次閱讀
    【外設(shè)移植】<b class='flag-5'>0.96</b>寸<b class='flag-5'>IIC</b>單色屏+Ai-M61<b class='flag-5'>開發(fā)板</b>
    主站蜘蛛池模板: 99精品久久精品一区二区| 在教室轮流被澡高H林萌 | 久久精品热播在线看| 久久毛片网站| 年轻漂亮的妺妺中文字幕版| 啪啪后入内射日韩| 天天躁日日躁狠狠躁中文字幕老牛 | 日本美女bb| 午夜十八岁禁| 一区二区三区无码被窝影院| 97亚洲狠狠色综合久久久久| 第四色播日韩AV第一页| 国产又粗又猛又爽又黄的免费视频| 黃色带三级a级| 欧美成人性色生活18黑人| 日韩精品一区二区三区色欲AV | 国产精品99久久久久久AV蜜臀| 国内精品久久久久影院老司| 老师我好爽再深一点老师好涨| 青青久在线视频免费观看| 亚洲AV精品乱码专区| 中文字幕亚洲综合小综合在线| 超碰caoporon最新视频| 韩国hd高清xxx| 欧美多毛的大隂道| 性欧美videos俄罗斯| 538prom精品视频我们不只是| 成人免费在线| 久久国产av偷拍在线| 日本美女搞基视频| 艳照门在线观看| 超碰日韩人妻高清视频| 精品国产乱码久久久久乱码| 欧美久久综合网| 亚洲视频在线免费| 厕所xxxxx| 久久精品国产午夜伦班片| 深夜释放自己污在线看| 中文字AV字幕在线观看| 国产精品成人观看视频免费| 免费小视频在线观看|