ESP32 IDF 2일차 Blink
서론
프로그래밍을 처음 시작한다면 당연히 거쳐야하는 그것을 해야한다.
바로 그것은 Hello World!
또, 보드를 처음 다룬다면 무엇을 해야겠는가..!
Blink ~!!
오늘은 보드의 Hello World 인 Blink 를 해보자
Example
- ESP-idf 프로그래밍 가이드 GPIO <-- 좀 찾아봐도 어떻게 하는지를 모르겠다.
해결 못한 방법
하지만 모든 자료는 이미 주어졌다.
C:\esp-idf\examples\get-started
위 경로에 가면 준비된 자료가 있다 한번 사용해보자.
▲ 해결 못한 방법 아래쪽에 다른 방법있음
파일 예제를 복사해서 ESP-idf 작업공간에 붙여넣는다.
이제 ESP-idf 를 열고
File -> Open Projects from file System..
열고 싶은 프로젝트를 선택한다. (Blink, Hello World)
하지만 이 파일은 ESP-idf 파일이지만 eclipse에서 돌아가는 파일이 아니였다.
[?]모양이 보이는가
다른 방법
그래서 다른 방법을 찾아보았는데
그 방법은 처음 프로젝트를 만들 때 template 를 가져오는 것이다.
프로젝트 명을 적는다. 그리고 하단의 Next 로 이동한다.
template 사용에 체크를 하고 아래 blink를 누른다. blink를 눌렀을 때 프로젝트 명이 바뀌기 때문에 다시 적어준다. 그 후 Finish를 눌러 프로젝트를 생성한다.
이제 빌드(망치모양 클릭)가 잘 되는 것을 볼 수 있다.
ESP32의 built-in LED 를 사용하려면 GPIO2를 사용해야한다.
그래서 이미 정의 되어있는 CONFIG_BLINK_GPIO 핀을 수정하러 F3을 눌러 들어갔다.
정의된 5번을 2번으로 바꾸고 BUILD - UPLOAD 했는데
깜빡이지 않는 것이다!! 다시 확인해 보니 5번에서 안 바뀌는 것이였다.
찾아보니까 이 고정 핀을 바꾸려면
ESP-idf CMD에 가서 idf.py menuconfig 를 건들어야했다.
2번으로 바꾸고 S를 눌러 저장
변경이 잘 되었다.
이제 UPLOAD를 하면
정상적으로 2번 핀으로 바뀌어서 작동하는 걸 볼 수 있다.
코드
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
#define BLINK_GPIO CONFIG_BLINK_GPIO
void app_main(void)
{
gpio_reset_pin(BLINK_GPIO);
/* Set the GPIO as a push/pull output */
gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
while(1) {
/* Blink off (output low) */
printf("Turning off the %2d LED\n", BLINK_GPIO);
gpio_set_level(BLINK_GPIO, 0);
vTaskDelay(1000 / portTICK_PERIOD_MS);
/* Blink on (output high) */
printf("Turning on the %2d LED\n", BLINK_GPIO);
gpio_set_level(BLINK_GPIO, 1);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
물론 이렇게 안 바꾸고 새롭게 핀을 설정하는 것도 방법이다.
아두이노와 비교해보면 어느정도 느낌이 올 것이다.
아두이노 | ESP-idf |
---|---|
pinMode(BLINK_GPIO, OUTPUT) | gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT) |
digitalWrite(BLINK_GPIO, HIGH) | gpio_set_level(BLINK_GPIO, 1) |
delay(1000) | vTaskDelay(1000 /portTICK_PERIOD_MS) |
참고
중간에 눈이 빠질 것 같아서 폰트 사이즈를 변경해주었다.
메뉴창 Window -> preferences 경로에 있다.
Author And Source
이 문제에 관하여(ESP32 IDF 2일차 Blink), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lcooldong/ESP32-IDF-2일차-Blink저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)