那曲檬骨新材料有限公司

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

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

3天內不再提示

ESP8266的管腳的控制和軟件定時器的使用

單片機愛好者 ? 來源:LONG ? 2019-07-29 14:57 ? 次閱讀

這一節主要有兩部分內容:1、管腳的控制;2、軟件定時器的使用。

先說定時器,ESP8266內部的定時器分為軟件定時器和硬件定時器。手冊中指出硬件定時器其實就跟單片機里的timer一樣,而軟件定時器純粹由軟件實現,咱們可以理解為單片機里面類似for循環之類的循環延時函數。

定時器理解了,管腳控制就簡單了,先上一下我這里的模塊原理圖:

ESP8266的管腳的控制和軟件定時器的使用

原理很簡單,板上有一個三色的LED,所以這里實現一個定時實現LED開關的程序。先說GPIO的用法,分倆步。使用之前包含“user_interface.h”文件:

1、設置管腳為普通的GPIO模式

PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);

函數PIN_FUNC_SELECT的功能是選擇管腳功能,第一個參數是管腳的名字,第二個參數看起來像管腳編號,但其實是管腳對應的功能。

在編譯器中選中FUNC_GPIO12,按F3,會打開eagle_soc.h文件,在這個文件里你會發現,無論是FUNC_GPIO12,FUNC_GPIO13,還是多少,對應的宏定義都是3:

#define FUNC_GPIO12 3

2、設置管腳方向和電平

gpio_output_set(BIT12, BIT13, BIT12|BIT13, 0):

該函數的功能是設置GPIO屬性,共有四個參數,沒有用到的填0即可。

第一個參數,設置輸出為高的位;

第二個參數,設置輸出為低的位;

第三個參數,設置使能輸出的管腳;

第四個參數,設置使能輸入的管腳。

所以上面一行代碼的意思是:設置GPIO12和GPIO13為輸出,12輸出高,13輸出低。同理,下面一行代碼的意思是:設置GPIO12為輸入。

gpio_output_set(0, 0, 0, BIT12):

注:參考手冊2c-esp8266_sdk_api_guide_cn_v1.5.4的152頁。

然后是軟件定時器的使用,使用之前包含如下兩個頭文件:

#include "ets_sys.h" //內有timer結構體的定義

#include "osapi.h"

使用方法也很簡單,共分四步:

1、定義一個軟件定時器的結構體

os_timer_t LED_timer; //定義一個軟件定時器的結構體,用于實現周期操作

2、關掉該定時器的定時功能

os_timer_disarm(&LED_timer); //配置之前,先關閉

3、設置該定時器的回調函數。使用定時器,必須設置回調函數

os_timer_setfn(&LED_timer, (os_timer_func_t *)LED_TURN, NULL);

該函數共有三個參數:

第一個,你要設置哪個定時器?LED_timer

第二個,定時器定時時間到了之后,要執行哪個函數:LED_TURN

第三個,回調函數的參數,沒有的話寫NULL即可。

完了,也很簡單。等等!定時的時長是多少?別急。

4、使能定時器,并設置時長,是否循環執行

os_timer_arm(&LED_timer, 3000, 1);

該函數共有三個參數:

第一個,你要使能哪個定時器? LED_timer

第二個,時長多長? 3000,單位是毫秒。另有微秒的函數,可自行研究。

第三個,這三秒定時的功能只運行一次,還是循環執行?1,循環;0,一次。

第三步里,提到了一個函數LED_TURN,這個函數就是開啟或關閉LED的函數:

void LED_TURN()

{

static state_flag = 0;

if(state_flag == 0)

{

//GPIO12拉高,GPIO13拉低

gpio_output_set(BIT12, BIT13, BIT12|BIT13, 0);

state_flag = 1;

}

else

{

gpio_output_set(BIT13, BIT12, BIT12|BIT13, 0);

state_flag = 0;

}

}

到此,軟件定時器的用法說完了。

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

    關注

    6043

    文章

    44622

    瀏覽量

    638548
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115371
  • 管腳
    +關注

    關注

    1

    文章

    228

    瀏覽量

    32121

原文標題:ESP8266_04管腳控制與軟件定時器

文章出處:【微信號:gh_dae0718828df,微信公眾號:gh_dae0718828df】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ESP8266 太空人動畫的 OLED 顯示

    ESP8266 太空人動畫的 OLED 顯示
    的頭像 發表于 10-08 15:06 ?334次閱讀
    <b class='flag-5'>ESP8266</b> 太空人動畫的 OLED 顯示

    ESP8266 通過 MQTT 協議實現 LED 的遠程控制

    本文簡要介紹了搭建 EMQX 服務實現基于 MQTT 協議遠程控制 NodeMCU ESP8266 板載 LED 的解決方案。
    的頭像 發表于 09-25 09:11 ?2206次閱讀
    <b class='flag-5'>ESP8266</b> 通過 MQTT 協議實現 LED 的遠程<b class='flag-5'>控制</b>

    arduino(1)--ESP8266配置

    之后在打開開發板管理。 之后輸入esp8266,安裝對應的庫文件,因為我已經安裝,故顯示為灰色,由于網絡原因,下載的時間可能比較久。 安裝完畢之后,選擇Generic ESP8266
    發表于 09-06 11:00

    STM32 ESP8266阿里云鏈接源碼

    stm32F103C8T6 ESP8266 物聯網電表 登錄阿里云
    發表于 08-29 14:21 ?6次下載

    esp32和esp8266代碼共用嗎

    本文將介紹ESP32和ESP8266兩款流行的微控制器在代碼共用性方面的可能性與差異性。 一、引言 隨著物聯網技術的飛速發展,越來越多的智能設備開始進入我們的生活。其中,ESP32和
    的頭像 發表于 08-19 18:23 ?1431次閱讀

    esp8266esp32區別是什么

    以下是關于ESP8266ESP32的主要區別: 處理和架構 : ESP8266 :使用一個Tensilica L106 80MHz的處理
    的頭像 發表于 08-19 18:16 ?5953次閱讀

    esp8266不燒錄可以使用嗎

    Systems推出的低成本、低功耗的Wi-Fi模塊。它基于Tensilica L106微處理,具有32位處理能力,最高頻率可達160MHz。ESP8266具有豐富的外設接口,如GPIO、ADC、PWM等
    的頭像 發表于 08-19 17:28 ?999次閱讀

    esp8266wifi模塊怎么連接手機

    ESP8266 WiFi模塊連接手機主要可以通過兩種方式實現: 通過路由連接(STA模式)和直接作為熱點連接(AP模式) 。以下是兩種連接方式的步驟: 一、通過路由連接(STA模式) 配置
    的頭像 發表于 08-19 17:27 ?3571次閱讀

    ESP8266軟件定時器允許在user_init中定義兩個不同的定時器然后去定時兩個不同的操作嗎?

    8266軟件定時器允許在user_init中定義兩個不同的定時器然后去定時兩個不同的操作嗎?如果可以需要注意什么,如果不可以,那么我想分別
    發表于 07-22 06:54

    ESP8266EX開發板PWM非常不準確是怎么回事?

    , 根據開發文檔,我編譯下載了 IOT_DEMO 控制燈的案例到開發板,實際測試 RGB 的3路PWM控制信號,發現PWM非常不準確(根據代碼查看估計ESP8266可能不是硬件PWM用定時器
    發表于 07-12 08:16

    esp8266定時器中程序占用時間太長,導致AP無法廣播或者廣播了連接不上怎么解決?

    使用esp8266定時器去跑ws2811效果,目前的情況是可以跑效果,但是在AP模式下,esp8266無法廣播,改了廣播間隔,還是會出現找不到廣播的現象。
    發表于 07-10 08:07

    ESP8266使用PWM庫時,它導致esp-homekit客戶端斷開連接,怎么解決?

    我正在嘗試了解 RTOS SDK ESP8266的所有計時。當我使用 PWM 庫時,它導致我的 esp-homekit 客戶端斷開連接。調試日志中沒有任何內容,他們只是斷開了連接。也許是安全連接
    發表于 07-09 08:12

    ESP8266網絡天氣時鐘OLED顯示

    基于ESP8266實現網絡獲取天氣和時鐘并OLED顯示
    的頭像 發表于 06-28 04:46 ?1424次閱讀
    <b class='flag-5'>ESP8266</b>網絡天氣時鐘OLED顯示

    國產低成本Wi-Fi SoC解決方案芯片ESP8266ESP8285對比差異

    ESP8266ESP8285對比差異 ESP8285相當于在ESP8266基礎上多加了1/2MB Flash, ESP8285與
    的頭像 發表于 05-17 11:44 ?1508次閱讀
    國產低成本Wi-Fi SoC解決方案芯片<b class='flag-5'>ESP8266</b>與<b class='flag-5'>ESP</b>8285對比差異

    使用Wi-Fi ESP8266方案模組接入云平臺

    ESP8266的模塊芯片是基于無線通信協議的UARTWi-Fi透傳模塊芯片,支持802.11b/g/n的無線標準,并帶有三種可選擇的工作模式。ESP8266模塊的控制是通過AT指令的形式控制
    的頭像 發表于 05-10 08:20 ?1933次閱讀
    使用Wi-Fi <b class='flag-5'>ESP8266</b>方案模組接入云平臺
    信誉好百家乐平台| 风水24山代表什么| 嘉禾百家乐官网的玩法技巧和规则| 百家乐官网桌布呢布| 百家乐智能分析软| 百家乐java| 网上百家乐真钱游戏| 大发888古怪猴子| 至尊百家乐| 百家乐官网园百利宫娱乐城怎么样百家乐官网园百利宫娱乐城如何 | 赌百家乐官网的方法| 菲律宾百家乐官网开户| G3百家乐官网的玩法技巧和规则 | 保单百家乐官网游戏机厂家| 24山72向水口吉凶断| 百家乐庄家闲| 大发888 网站被攻击了| 承德县| 福布斯百家乐官网的玩法技巧和规则| 百家乐在线赌场| 大发888真钱游戏| 免费百家乐官网奥秘| 在线真人娱乐城| 百家乐官网怎么完才能嬴| 真钱百家乐哪里最好| 大发888注册娱乐账号| 出国| 户型风水不好害死人 24种破财户| 高尔夫百家乐的玩法技巧和规则| 外围博彩| 百家乐官网如何骗人| 赌场百家乐玩法介绍| 宝马会娱乐城官网| 百家乐官网翻天粤| 百家乐开户优惠多的平台是哪家| 大发888官方6222.| 百家乐官网信誉平台现金投注 | 网上玩百家乐官网游戏有人挣到钱了吗| 百家乐霸王闲| 乌苏市| 杨筠松古法风水24|