国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-30 10:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發燒友社區,作者:少年阿炳, 帖子地址:https://bbs.elecfans.com/jishu_2246563_1_1.html

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

首先是模擬IIC的使用
模擬IIC就是使用單片機控制IO口輸出高低電平模擬實際IIC開始,結束,數據發送等的相應規則達到點亮OLED的目的。所以最重要的就是如何配置IO口已經輸出高低電平。
將需要的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);
復制代碼

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


  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)電平
復制代碼


之后就是模擬開始信號,結束信號,響應信號,數據發送,命令發送等。我這里是將現成可用的STM32代碼移植過來,然后做了對應的修改。詳細可以查看附件1.
特別說明:我這里的響應信號也是模擬的,并不是真讀取OLED的返回。

DHT11溫濕度的讀取
DHT11的數據是通過單總線實現的。數據讀取信號以及返回的溫濕度值都是通過一根數據線完成,因此需要對同一個IO口先進行輸出配置,然后進行輸入配置。


  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. }
復制代碼



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


  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? ? //時鐘分頻:0-不分頻,1-2分頻
  10. |0<<9? ???//error中斷:0-關閉,1-開啟
  11. |0<<8? ???//ready中斷:0-關閉,1-開啟
  12. |0<<7? ???//時鐘頻率:0-100K,1-400K
  13. |0x3C; //從機地址
  14. }
復制代碼


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


  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;??//存儲單元地址
  5. uint32_t i2c_rwdata = data; //數據
  6. I2C->STATUS1 = 0; //清除狀態標志
  7. I2C->DATA = i2c_addr|i2c_rw_en|i2c_rwdata;//寫數據
  8. while(!(I2C->STATUS1&0x01));
  9. I2C->STATUS1 = 0;
  10. }
復制代碼

I2C_Write(uint8_t addr,uint8_t data)

addr參數,實際代表的是數據命令,對應的就是模擬IIC發送時,中間的那位數據,
0x00,寫入命令。0x40,寫入數據。


  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. }
復制代碼

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

下面圖片中邏輯分析儀的時序圖供大家參考,截圖框內是錯誤配置的從機地址。
因為我使用的邏輯分析儀就20幾塊,顯示的從機地址好像不正確,但是波形還是準確的。




3.jpg

2.jpg

40c93b9a48e41c95584ee2fb4f59c3435b492d03.jpg

硬件IIC.rar(源代碼下載)

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


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 南京中科微
    +關注

    關注

    0

    文章

    60

    瀏覽量

    1431
  • CSM32RV20
    +關注

    關注

    0

    文章

    40

    瀏覽量

    497
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    星鴻派——開源星閃開發板上線!首批試用申請中~

    按鍵,另外還有溫濕度模塊用以檢測溫濕度?!毙区櫯桑êK糤S63V100)掃碼入群,獲取試用鏈接概覽星鴻派是一款面向創客、學生、嵌入式開發者的星閃開發
    的頭像 發表于 01-27 08:04 ?518次閱讀
    星鴻派——開源星閃<b class='flag-5'>開發板</b>上線!首批<b class='flag-5'>試用</b>申請中~

    【瑞薩RA × Zephyr開發板評測】+模擬IIC實現OLED輸出(與硬件IIC輸出的失敗經驗)

    使用的瑞薩芯片設置有些不一樣,反正我測試是出現了莫名其妙的問題,一下輸出數據一下又沒有輸出了,最后只 能使用替代方案實現模擬IIC輸出OLED顯示了。
    發表于 01-19 22:23

    RA MCU眾測寶典 | IIC之【RA2E1】IIC通信的OLED顯示

    “RAMCU眾測寶典”IIC專題上線啦!這次,瑞薩嵌入式小百科將和大家一起聚焦【瑞薩RA2E1】開發板,一步步玩轉IIC通信的OLED顯示。
    的頭像 發表于 01-01 10:04 ?1859次閱讀
    RA MCU眾測寶典 | <b class='flag-5'>IIC</b>之【RA2E1】<b class='flag-5'>IIC</b>通信的<b class='flag-5'>OLED</b><b class='flag-5'>顯示</b>

    國產IIC溫濕度傳感器GXHTC3可替代盛思銳SHTC3

    在智能設備飛速發展的今天,高精度、低功耗的溫濕度傳感器已成為消費電子、物聯網等領域的關鍵部件。英尚代理的國產IIC溫濕度傳感器GXHTC3,正是為滿足市場對高性能傳感解決方案的需求而設計,其性能與兼容性可完美對標并替代盛思銳SH
    的頭像 發表于 12-29 16:31 ?251次閱讀
    國產<b class='flag-5'>IIC</b><b class='flag-5'>溫濕度</b>傳感器GXHTC3可替代盛思銳SHTC3

    【瑞薩RA6E2地奇星開發板試用】DHT11 測量溫濕度

    使用瑞薩 RA6E2 微控制器,實現 DHT11 溫濕度傳感器的數據采集,并通過 I2C 接口的 OLED12864 顯示屏實時顯示數據。 硬件
    發表于 12-19 18:50

    【瑞薩RA6E2地奇星開發板試用】軟件IIC驅動OLED屏幕實現數字打印

    整體功耗; 調試優化:新增IIC通信狀態打?。ㄍㄟ^UART),便于快速定位通信異常問題。 4.3 適用場景 本方案適用于瑞薩RA6E2開發板的入門級外設驅動開發、教學演示、小型嵌入式設備的數字
    發表于 12-11 19:58

    【瑞薩RA6E2】硬件IIC驅動九軸傳感器與OLED顯示

    一、項目概述 1.1 項目簡介 本次試用基于瑞薩RA6E2開發板,通過硬件IIC協議驅動GY-85九軸傳感器模塊(包含ITG3205陀螺儀、ADXL345加速度計和QMC5883P磁力
    發表于 11-27 02:18

    基于hbirdv2-sdk的iic 0.96寸lcd調試

    一.前言 簡介: 基于hbird-sdk的硬件IIC控制 0.96寸lcd. 二.工程結構 硬件: mcu200t fpga開發板 軟件結構
    發表于 10-30 06:20

    【RA-Eco-RA6M4開發板評測】DHT11溫濕度傳感器獲取+OLED 屏幕顯示

    【簡介】 本項目使用瑞薩的RA6M4開發板作為控制和數據處理的單元,使用溫濕度傳感器去監測周圍的環境參數,在OLED 屏幕上完成傳感器數據和相關信息的
    發表于 08-26 00:10

    【上海晶珩睿莓1開發板試用體驗】Home Assistant 物聯網溫濕度

    實時上傳至 Home Assistant 平臺,實現物聯網溫濕度計,并進一步結合 LabVIEW 上位機實現演化曲線分析及數據采集的項目設計。 項目介紹 硬件連接:通過開發板 IIC
    發表于 08-18 13:55

    五科技CF5010RBT60開發板試用體驗】硬件IIC點亮OLED屏幕

    顯示 七、結論 五科技 CF5010RBT60 開發板通過其高效的硬件 IIC 外設,為驅動 OLED
    發表于 08-08 11:01

    【RA-Eco-RA6M4開發板評測】+OLED顯示驅動

    RA-Eco-RA6M4開發板是一款近于最小系統得開發板,為其添加相應的外設,可用起到豐富其羽翼的作用。 這里就為它配置一個I2C接口的OLED屏,其引腳連接關系為: SCLK------P208
    發表于 07-23 17:33

    愛芯32位MCU開發板AiP32RV15X介紹

    AiP32RV15X開發板是一款基于RISCV內核的32位MCU開發板,提供了板載調試器、RESET、WAKEUP按鍵、三色LED、CAN收發器、USB接口、UART、ADC、SPI、IIC
    的頭像 發表于 06-17 10:54 ?843次閱讀
    中<b class='flag-5'>微</b>愛芯32位MCU<b class='flag-5'>開發板</b>AiP32<b class='flag-5'>RV</b>15X介紹

    用樹莓派RP2350 DIY 桌面動態溫濕度

    桌面動態溫濕度計本文介紹了DFrobotBeetleRP2350開發板結合DHT11模塊、鋰電池模塊、隨機眨眼動畫,實現OLED顯示的桌面動態溫濕度
    的頭像 發表于 05-27 08:05 ?915次閱讀
    用樹莓派RP2350 DIY 桌面動態<b class='flag-5'>溫濕度</b>計

    【RA-Eco-RA4M2開發板評測】RA-Eco-RA4M2 溫濕度傳感器HS3003

    傳感元件,其性能已經大大提升甚至超出了前一代傳感器的可靠性水平,新一代溫濕度傳感器,經過改進使其在惡劣環境下的性能更穩定。 2.2 HS3003采集溫濕度 溫度濕度讀取時序如下: F
    發表于 05-03 22:57