-
本系列博客學(xué)習(xí)由非官方人員 半顆心臟 潛心所力所寫,僅僅做個人技術(shù)交流分享红柱,不做任何商業(yè)用途承匣。如有不對之處,請留言锤悄,本人及時更改韧骗。
一枫慷、本篇主要介紹的如何利用其管腳獲取高低電平與怎么樣控制高低電平让蕾。
電路原理圖:
我們通過按鈕S1按下之后,led0就亮或听,再點擊一次就滅探孝。看圖我們可看到誉裆,開關(guān)s1連接的是GPIO02的管腳顿颅,而LED燈連接的是GPIO16的管腳。一般來說足丢,我們只要觀察S1是否按下就來對燈進(jìn)行開關(guān)粱腻。
打開樂鑫的SDK技術(shù)文檔,我們搜索下管腳GPIO的相關(guān)設(shè)置:
先選定一個GPIO管腳斩跌。用 PIN_FUNC_SELECT(PIN_NAME, FUNC) 函數(shù)绍些。比如我選定GPIO14這個管腳,則這樣寫:PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
如果你設(shè)置這個管腳為高電平耀鸦,則這樣寫:GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 1);
-如果你設(shè)置其為讀取狀態(tài)功能則柬批,這樣初始化: GPIO_DIS_OUTPUT(GPIO_ID_PIN(14)) ;
二、程序入口:user_main.c 袖订。
#include "driver/uart.h" //串口0需要的頭文件
#include "osapi.h" //串口1需要的頭文件
#include "user_interface.h" //WIFI連接需要的頭文件
#include "gpio.h" //端口控制需要的頭文件
void delay_ms(uint16 x)
{
for(;x>0;x--)
{
os_delay_us(1000);
}
}
void user_init()//初始化
{
uint8 bz=0;
uart_init(57600, 57600);//設(shè)置串口0和串口1的波特率
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);//選擇GPIO14
GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 1);//GPIO14為高
PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U,FUNC_GPIO2);//選擇GPIO2
GPIO_DIS_OUTPUT(GPIO_ID_PIN(2)) ; // 設(shè)置GPIO2為輸入
while(1)
{
system_soft_wdt_feed();//這里我們喂下看門狗 氮帐,不讓看門狗復(fù)位
if(GPIO_INPUT_GET(GPIO_ID_PIN(2))==0x00)//讀取GPIO2的值,按鍵按下為0
{
delay_ms(20); //延時20MS洛姑,去抖
if(GPIO_INPUT_GET(GPIO_ID_PIN(2))==0x00)
{
bz++;
if(bz==2)bz=0;
if(bz==1)GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 0); //GPIO16為低
if(bz==0)GPIO_OUTPUT_SET(GPIO_ID_PIN(14), 1); //GPIO16為高
while(GPIO_INPUT_GET(GPIO_ID_PIN(2))==0x00); //等待按鍵釋放
}
}
}
}
void user_rf_pre_init()
{
}
三上沐、編譯與燒錄。
每次編譯工程之前記得先clear project 吏口,再build project 編譯工程奄容,保證生成的bin文件不出錯冰更。
博主習(xí)慣于 Intellij IDEA類型的編譯器,所以不用自己點擊保存昂勒,eclipse需要自己點擊保存蜀细,真麻煩.... 所以,提醒各位小伙伴戈盈,每次修改了文件奠衔,記得 save 保存一下。
問題①:關(guān)于生成的bin文件問題塘娶。
①归斤、有些小伙伴生成的bin文件可能如下(提示不需要boot文件):
如果你的編譯結(jié)果是以下的結(jié)果,那么您的燒錄方式就不需要 燒錄 boot.bin文件啦刁岸。
- 那么對應(yīng)的文件燒錄地址如下格式:
燒錄文件 | 燒錄地址 |
---|---|
blank.bin | 0x3fe000 |
esp_init_data_default.bin | 0x3fc000 |
eagle.flash.bin | 0x00000 |
eagle.irom0text.bin | 0x40000 |
②脏里、有些小伙伴生成的bin文件可能如下圖(提示已經(jīng)生成在upgrade文件夾生成):
- 那么對應(yīng)的文件燒錄地址如下格式:
燒錄文件 | 燒錄地址 |
---|---|
blank.bin | 0x3fe000 |
esp_init_data_default.bin | 0x3fc000 |
boot.bin | 0x00000 |
user1.4096.new.6.bin | 0x10000 |
等到下載完成就可以點擊按下亮燈啦。