목차
[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 에서 구매하실 수 있습니다.

