[WAT-STM32-2.8]19번 예제 라이브러리 사용 – LED 제어

[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 터치 세트

제품 구매

WAT-STM32-2.8 [STM32F103RB Board + 2.8인치 TFT LCD 터치 세트] 는 https://kit128.com/goods/view?no=221 에서 구매하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다