3장 - UML 소개와 LED Blinking

조재훈·2023년 6월 1일
0

UML

  • Unified Modeling Language
  • 소프트웨어 설계에 사용하는 언어
  • 소프트웨어 모델링, 객체지향 소프트웨어 모델링하는 표준 그래픽 언어
  • 시스템의 여러 측면을 그림으로 모델링
  • 하드웨어의 회로도같은 의미

UML 다이어그램

  • 시스템의 모델링은 아래 3가지 관점으로 구성
    : 기능적 관점
    : 구조적 관점
    : 동적 관점

시퀀스 다이어그램

  • 객체간의 동작 상호작용을 시간개념 중심으로 모델링하는 것
  1. 참여하는 객체를 그린다
  2. 파악한 객체를 X축에 나열하고 라이프라인을 긋는다 '-----'
  3. 사용 사례에 기술된 이벤트 순서에 따라 객체의 메시지 호출을 화살표로 나타낸다

상태 다이어그램

  • 상태는 객체가 존재할 수 있는 조건 중 하나로 모서리를 둥근 사각형으로 표시
  • 안쪽 상단에 상태 이름을 기술
  • 이벤트는 화살표로 상태 사이를 표현

Activity Diagram

  • 우리가 알고 있는 플로우차트와 유사한 개념
  • 처리절차를 한눈에 확인할 수 있는 다이어그램
  • 시작점, 활동, 종료점, 전이로 구성
  • 시작점은 검은 점으로 표시
  • 활동상태는 둥근 사각으로 어떤 처리와 실행 의미
  • 판단은 다이아몬드로 함
  • 종료는 처리의 종료를 의미, 이중원

예제1: LED Blinking

  • NUCLEO-F429Zi

  • GPIO : PB0, PB7, PB14, PC13, PG6, PG7

  • Clock Configuration 확인
    : 클럭 발생기용 크리스탈이 8MHz로 공급
    : 이것을 채배하여 168MHz로 동작

  • PB7을 이용해 LED를 500ms마다 깜빡이게 하기

코드작성

  • GPIO를 이용해 제어하므로 아래의 함수 사용
HAL_GPIO_WritePin(GPIO_Type, GPIO_Pin, PinState)
  • Inc-main.h를 보면 핀 번호들이 정의되어있다

  • MX_ETH_Init() 주석처리

  • 우리가 쓰려는 핀은 PB7이므로
    : GPIO_Type : GPIOB => LD2_GPIO_Port
    : GPIO_Pin : LD2_Pin
    : Pin_State : GPIO_PIN_SET
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_RESET);
HAL_Delay(500);

혹은 아래와 같이 코딩

HAL_Delay(500);
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_7);

  • HAL_Delay() 함수 재정의
    : HAL_Delay()함수는 weak_으로 정의가 되어있어 동작하지 않음

    : 본문에 재정의하기
  • 디버그 설정

  • 실행

  • 결과
    : 주기적으로 깜빡인다

2. Clock Configuration 확인

  • 클럭 발생기용 크리스탈이 8MHz로 공급
  • 이것을 채배하여 168MHz로 동작
profile
맨땅에 헤딩. 인생은 실전.

0개의 댓글