Microprocessor/STM32 [STM32F103VCT6] LED on & off/Delay
  • 728x90
    반응형

     

     

    STM32F103VCT6 LED On/Off 제어

     

    우선 컴파일러는 Keil uVision5 를 사용하였고, miniJLINK 를 이용하여 F/W를 다운로드 하였다.

     

    miniJLINK V2.0 Spec

    📌 STM32F407 칩이 내장된 개발 보드에 F/W 다운로드를 위하여 miniJLINK V2.0을 써보기로 하였다. 아래는 devtool 에서 긁어온 miniJLINK V2.0 의 설명이다. 기능 설명 miniJLINK V2.0 는 기존의 V1.0의 최신펌웨어

    mystyle1057.tistory.com

     

    PORT PD15, PD14, PD13 에 연결된 RGB LED및 PC6에 연결된 SM-1205C  BUZ를 사용하였다.

    아래는 GPIO 포트를 초기화하는 함수 이다.

     

     

    GPIO_initTypeDef는 헤더파일을 보면 구조체로 만들어져 있다.

    GPIO 몇번 핀을 사용할지, GPIO 속도, GPIO모드를 설정하기 위해 필요한 것들이 있다.

    GPIO_Pin 에는 16비트 숫자를 넣어주면 된다.

    0번 비트를 사용하려면 0x0001, 1번 비트를 사용하려면 0x0002 와 같이 값을 넣어주면 된다.

     

    만약 0, 1, 2 번 핀만 활성화 하고 싶으면 0x0001, 0x0002, 0x0004 값을 더한 0x0007을 대입해주면 된다.

     

    GPIO_Speed 는 GPIO의 반응속도를 나타낸다. GPIO_Mode는 입력으로 사용할지 출력으로 사용할지, Push-pull 혹은 Open-drain 으로 사용할지 등을 결정해 준다.

     

    RCC_APB2PeriphClockCmd()함수는 사용하고자 하는 포트에 클럭신호를 넣어준다. 클럭이 발생하지 않을 경우 동작하지 않는다.

     

    인자값을 살펴보면 사용할 포트를 입력해주고, ENABLE를 넣어주면 된다.

    사용할 포트도 비트연산(OR)을 이용하여 한번에 여러포트를 동작시킬 수 있다.

     

     

    RCC_APB2PeriphClockCmd()함수를 이용하면 RCC_APB2ENR 라는 레지스터에 값을 써주는데 위에 표시된 부분을 SET해주면 PORTA를 사용할 수 있다.

     

    Delay 함수는 Start_stm32f10x_hd.s에 아래와 같이 정의되어 있는 SysTick_Handler함수를 호출하여 틱을 발생시킨다.

     

    아래와 같이 Delay 함수를 구현할 수 있다.

     

    아래와 같이 main 함수를 작성한다.

    Delay 함수를 사용하기위해서 SysTick_Config()함수를 설정해야 한다. 동작은 BUZ음이 발생하고 BULE LED 가 1초 간격으로 점멸한다.

     

     

     

     

     

     

    728x90
    반응형

    'Microprocessor > STM32' 카테고리의 다른 글

    STM32 Clock - 클럭 소스와 클럭 설정  (0) 2016.09.23
    [STM32F103VCT6] USART/FT232RL  (0) 2016.09.21
    STM32F407VET6 UART (RS-232)  (0) 2016.09.12
    STM32F407VET6 Delay 함수 설정  (0) 2016.09.12
    STM32F407VET6 GPIO 동작 테스트  (0) 2016.09.07
상단으로