精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

ESP8266_09基于IIC控制的OLED屏幕

單片機(jī)愛(ài)好者 ? 來(lái)源:?jiǎn)纹瑱C(jī)愛(ài)好者 ? 2019-12-06 15:12 ? 次閱讀

事情比較多,停了幾天,到目前為止,事情依然很多……

從第一節(jié)到第九節(jié)(也就是這一節(jié)),說(shuō)的都是ESP8266的基本應(yīng)用,例如GPIO、定時(shí)器、中斷、PWM等等。從后面開(kāi)始,將陸續(xù)說(shuō)一下基于網(wǎng)絡(luò)的用法,畢竟這是個(gè)聯(lián)網(wǎng)的芯片,還是要聯(lián)網(wǎng)玩,才更能體現(xiàn)它的特點(diǎn)。但偶爾,我可能還會(huì)說(shuō)一下它的硬件的基本用法,例如ADC、SPI等,看情況吧,時(shí)間富裕與否~

好,這一節(jié),主要說(shuō)一下ESP8266上面的IIC接口。是的,它有SPI接口,也有IIC接口。但I(xiàn)IC接口是使用GPIO模擬的,也就是說(shuō),你可以使用8266上的任意兩個(gè)GPIO模擬出IIC接口來(lái)。同時(shí),每個(gè)管腳內(nèi)部都有上拉電阻,無(wú)需外接。

注:ESP8266只能用做IIC主設(shè)備,不能用做從設(shè)備。

那我們是否還要寫一堆IIC的start函數(shù)、stop函數(shù)?

不用,官方的SDK已經(jīng)給我們寫好了整個(gè)的IIC庫(kù),只要配置好要用的管腳,直接調(diào)用函數(shù)即可,例如:

i2c_master_start(void);

i2c_master_stop(void);

i2c_master_writeByte(uint8 wrdata);

如何使用?很簡(jiǎn)單,分四步:

1 添加相關(guān)源文件和頭文件

把i2c_master.c拷入app下的driver文件夾,把i2c_master.h拷入app下的include下的driver文件夾。

2 選擇要用到的GPIO

打開(kāi)i2c_master.h文件,管腳選擇部分如下所示:

#defineI2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U

#defineI2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U

#defineI2C_MASTER_SDA_GPIO 2

#defineI2C_MASTER_SCL_GPIO 14

#defineI2C_MASTER_SDA_FUNC FUNC_GPIO2

#defineI2C_MASTER_SCL_FUNC FUNC_GPIO14

通過(guò)這6個(gè)宏定義,配置好IIC接口要用的時(shí)鐘腳和數(shù)據(jù)腳,我這里想用GPIO12和14,所以改成如下的樣子:

#defineI2C_MASTER_SDA_MUX PERIPHS_IO_MUX_MTDI_U

#defineI2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U

#defineI2C_MASTER_SDA_GPIO 12

#defineI2C_MASTER_SCL_GPIO 14

#defineI2C_MASTER_SDA_FUNC FUNC_GPIO12

#defineI2C_MASTER_SCL_FUNC FUNC_GPIO14

關(guān)于管腳的名字,主要看eagle_soc.h文件。

3 初始化IIC管腳

通過(guò)下面的函數(shù)實(shí)現(xiàn):

i2c_master_gpio_init();

4 開(kāi)始寫數(shù)據(jù)

用過(guò)24C02的童鞋都知道,IIC的寫操作,前后就幾步:開(kāi)始信號(hào)、寫入設(shè)備地址、等待應(yīng)答、寫入存儲(chǔ)地址、等待應(yīng)答、寫入數(shù)據(jù)、結(jié)束信號(hào)。這里結(jié)合SDK中的例程IOT_DEMO中的IIC代碼,實(shí)現(xiàn)寫數(shù)據(jù)的函數(shù)如下:

boolICACHE_FLASH_ATTRWrite_IIC_Data(unsignedcharIIC_Data)

{

uint8 ack;

i2c_master_start();

i2c_master_writeByte(0x78); //D/C#=0; R/W#=0

ack = i2c_master_getAck();

if(ack) {

os_printf("addrnotackwhentxwritecmd ");

i2c_master_stop();

returnfalse;

}

i2c_master_writeByte(0x40); //write data

ack = i2c_master_getAck();

if(ack) {

os_printf("addrnotackwhentxwritecmd ");

i2c_master_stop();

returnfalse;

}

i2c_master_writeByte(IIC_Data);

ack = i2c_master_getAck();

if(ack) {

os_printf("addrnotackwhentxwritecmd ");

i2c_master_stop();

returnfalse;

}

i2c_master_stop();

}

上面代碼中出現(xiàn)的函數(shù),例如i2c_master_start()、i2c_master_writeByte(0x78)、i2c_master_getAck();等,都已經(jīng)在i2c_master.c中寫好了。換句話說(shuō),我們只需要像堆積木一樣,按照特定的順序把這些函數(shù)擺下來(lái)就行了。

so,是不是很簡(jiǎn)單?

如何演示?

這里使用一個(gè)0.96寸的,帶有IIC接口的OLED屏幕。這類屏幕按照我見(jiàn)過(guò)的接口不同,分兩種:一種是4針的,只能接IIC接口;一種是7針的,既能接IIC,又能接SPI。我手里這個(gè)是7針的,出廠默認(rèn)SPI接口,怎么切換到IIC,我看了半天手冊(cè):

看起來(lái)不難,當(dāng)我翻開(kāi)我的液晶背面的時(shí)候,發(fā)現(xiàn)是這樣:

所以我只把SPI字符旁邊的電阻改到IIC旁邊就可以了。

程序使用賣家提供的代碼,做了一下移植。會(huì)用IIC的自然就懂了,不懂就說(shuō)明你還沒(méi)學(xué)好IIC。

7針的接口,針腳功能如下:

雖然IIC只用到CLK和SDA兩個(gè)腳,但是這里還要注意下復(fù)位管腳,要給它接一個(gè)高電平,否則無(wú)法工作。

程序移植完成,保存、清理、編譯、下載一條龍,然后重新上電,效果如下所示:

程序里使用了一個(gè)軟件定時(shí)器,每隔3秒刷新一下圖片。

聲明:本文內(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)投訴
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6183

    瀏覽量

    223859
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1701

    瀏覽量

    91345
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4308

    瀏覽量

    62445

原文標(biāo)題:ESP8266_09基于IIC控制的OLED屏幕

文章出處:【微信號(hào):gh_dae0718828df,微信公眾號(hào):gh_dae0718828df】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    esp8266加入到c51單片機(jī)單通道程序怎么寫

    要將ESP8266模塊加入到C51單片機(jī)的單通道程序中,您需要了解如何通過(guò)串行通信(UART)與ESP8266進(jìn)行通信。以下是如何實(shí)現(xiàn)這一點(diǎn)的步驟和示例代碼。 步驟 1:硬件連接 首先,您需要
    的頭像 發(fā)表于 10-18 11:32 ?392次閱讀

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示

    ESP8266 太空人動(dòng)畫(huà)的 OLED 顯示
    的頭像 發(fā)表于 10-08 15:06 ?218次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動(dòng)畫(huà)的 <b class='flag-5'>OLED</b> 顯示

    ESP8266 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程控制

    本文簡(jiǎn)要介紹了搭建 EMQX 服務(wù)器實(shí)現(xiàn)基于 MQTT 協(xié)議遠(yuǎn)程控制 NodeMCU ESP8266 板載 LED 的解決方案。
    的頭像 發(fā)表于 09-25 09:11 ?1813次閱讀
    <b class='flag-5'>ESP8266</b> 通過(guò) MQTT 協(xié)議實(shí)現(xiàn) LED 的遠(yuǎn)程<b class='flag-5'>控制</b>

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯(lián)網(wǎng)電表 登錄阿里云
    發(fā)表于 08-29 14:21 ?5次下載

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來(lái)越多的智能設(shè)備開(kāi)始進(jìn)入我們的生活。其中,ESP32和
    的頭像 發(fā)表于 08-19 18:23 ?1003次閱讀

    esp8266esp32區(qū)別是什么

    以下是關(guān)于ESP8266ESP32的主要區(qū)別: 處理器和架構(gòu) : ESP8266 :使用一個(gè)Tensilica L106 80MHz的處理器,屬于Xtensa架構(gòu)。 ESP32 :使
    的頭像 發(fā)表于 08-19 18:16 ?4507次閱讀

    ESP8266需要燒錄固件庫(kù)嘛

    需要。ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。它具有低成本、低功耗、易于編程等特點(diǎn),因此受到了許多開(kāi)發(fā)者的喜愛(ài)。在開(kāi)發(fā)ESP8266項(xiàng)目時(shí),燒錄固件庫(kù)是一個(gè)非常重要
    的頭像 發(fā)表于 08-19 17:30 ?732次閱讀

    esp8266不燒錄可以使用嗎

    ESP8266是一款非常流行的Wi-Fi模塊,廣泛應(yīng)用于物聯(lián)網(wǎng)項(xiàng)目中。然而,如果不進(jìn)行燒錄,ESP8266將無(wú)法正常工作。 1. ESP8266簡(jiǎn)介 ESP8266是一款由Espres
    的頭像 發(fā)表于 08-19 17:28 ?658次閱讀

    esp8266wifi模塊怎么連接手機(jī)

    ESP8266 WiFi模塊連接手機(jī)主要可以通過(guò)兩種方式實(shí)現(xiàn): 通過(guò)路由器連接(STA模式)和直接作為熱點(diǎn)連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過(guò)路由器連接(STA模式) 配置
    的頭像 發(fā)表于 08-19 17:27 ?2305次閱讀

    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 ?1002次閱讀
    Arduino Nano 和 NodeMCU <b class='flag-5'>ESP8266</b> 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 <b class='flag-5'>OLED</b>顯示

    ESP8266-01如何更新固件?

    您好,我有 ESP8266-01,我需要通過(guò) Arduino 更新固件......我有這個(gè)版本......esp_iot_sdk_v1.4.0_15_09_18.zip 可以給任何鏈接重言同義嗎?
    發(fā)表于 07-22 07:33

    ESP8266網(wǎng)絡(luò)天氣時(shí)鐘OLED顯示

    基于ESP8266實(shí)現(xiàn)網(wǎng)絡(luò)獲取天氣和時(shí)鐘并OLED顯示
    的頭像 發(fā)表于 06-28 04:46 ?1006次閱讀
    <b class='flag-5'>ESP8266</b>網(wǎng)絡(luò)天氣時(shí)鐘<b class='flag-5'>OLED</b>顯示

    國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片ESP8266ESP8285對(duì)比差異

    ESP8266ESP8285對(duì)比差異 ESP8285相當(dāng)于在ESP8266基礎(chǔ)上多加了1/2MB Flash, ESP8285與
    的頭像 發(fā)表于 05-17 11:44 ?1189次閱讀
    國(guó)產(chǎn)低成本W(wǎng)i-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對(duì)比差異

    使用Wi-Fi ESP8266方案模組接入云平臺(tái)

    ESP8266的模塊芯片是基于無(wú)線通信協(xié)議的UARTWi-Fi透?jìng)髂K芯片,支持802.11b/g/n的無(wú)線標(biāo)準(zhǔn),并帶有三種可選擇的工作模式。ESP8266模塊的控制是通過(guò)AT指令的形式控制
    的頭像 發(fā)表于 05-10 08:20 ?1751次閱讀
    使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模組接入云平臺(tái)

    STM32、ESP8266與MQTT連接阿里云物聯(lián)網(wǎng)的串口通信異常解析

    STM32、ESP8266與MQTT協(xié)議連接阿里云物聯(lián)網(wǎng)平臺(tái)時(shí)常見(jiàn)的串口通信異常介紹 在構(gòu)建物聯(lián)網(wǎng)應(yīng)用時(shí),STM32、ESP8266與MQTT協(xié)議的結(jié)合是實(shí)現(xiàn)設(shè)備與網(wǎng)絡(luò)間穩(wěn)定通信的關(guān)鍵。然而,在連接
    的頭像 發(fā)表于 04-19 17:19 ?1380次閱讀