목차
[WAT-STM32-2.8] 19번 예제 라이브러리 사용으로 LED 제어
WAT-STM32-2.8 예제 중 19번째로 라이브러리를 사용하여 LED를 제어하는 예제입니다.
앞의 예제까지 사용하던 rcc.h 를 더 이상 사용하지 않고 기본적으로 제공되는 라이브러리를 사용할 것입니다.
이제부터는 “stm32f10x.h” 와 “stm32f10x_gpio.h” 헤더를 사용합니다.
주요 코드
main.c 파일입니다.
// WAT_STM3228_19 라이브러리 사용하기 // 일정 간격으로 LED 를 이동하는 예제 // // 출처: https://docs.whiteat.com/?p=3984 // #include "stm32f10x.h" #include "stm32f10x_gpio.h" void delay(uint32_t); //delay int main(void) { GPIO_InitTypeDef GPIO_InitStructure; /* GPIOA, GPIOB Enable */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); // LED1, LED3 에 사용할 포트 Enable RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // LED2 에 사용할 포트 Enable /* LED에 연결된 GPIO 설정 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; // LED가 연결된 PIN2, PIN3을 지정 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // PIN 을 (Push-Pull) 으로 지정 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // PIN 속도를 50MHz 지정 GPIO_Init(GPIOA, &GPIO_InitStructure); //GPIOA 설정 GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIOB 설정 while (1) { GPIOA->BRR = GPIO_Pin_2; // LED1 ON delay(2000000); GPIOA->BSRR = GPIO_Pin_2; // LED1 OFF delay(2000000); GPIOB->BRR = GPIO_Pin_2; // LED2 ON delay(2000000); GPIOB->BSRR = GPIO_Pin_2; // LED2 OFF delay(2000000); GPIOA->BRR = GPIO_Pin_3; // LED3 ON delay(2000000); GPIOA->BSRR = GPIO_Pin_3; // LED3 OFF delay(2000000); } } void delay(__IO uint32_t nCount) //delay { for (; nCount != 0; nCount--); }
결과화면
WAT-STM32-2.8보드 전체 예제
제품 구매
WAT-STM32-2.8 [STM32F103RB Board + 2.8인치 TFT LCD 터치 세트] 는 https://kit128.com/goods/view?no=221 에서 구매하실 수 있습니다.