1 분 소요

학습 목표

  • LED 및 스위치 회로 설명
  • CubeMX로 RCC 및 GPIO 입출력 설정
  • CubeMX로 TrueSTUDIO 프로젝트 및 코드 생성
  • TrueSTUDIO 자동생성된 프로젝트 및 코드 설명
  • HAL드라이버 함수를 이용한 GPIO 출력 (LED출력)
  • HAL드라이버 함수를 이용한 GPIO 입력 (스위치입력)

개념정리

개발 활용 보드

  • 보드 이름
  • NUCLEO -F767ZI
  • 보드 CPU
  • STM32F767ZI

제품 관련 링크

https://www.st.com/en/microcontrollers-microprocessors/stm32f7-series/products.html


Clock 설정 보기

클록 세팅


HSI 설정

High Speed Internal 의 약자 내부 설정으로 된 클록이라 정확도가 낮다

따래서 외부에서 공급받아서 사용하도록

RCC 클록에서 HSE 클록을 바꿔줘야한다

  • RCC 란 칩 내부에 공급되는 클럭

  • 참고 HSI : High Spead internal clock 내부 에서 생성되는 클럭이라 오차가 심하다 HSE : (High-Speed External )외부 클럭으로 오차가 덜하다

HSE 설정

HSE Clock Config 설정

참고로 사용하는 보드는

보드 스펙

여기에서 문서를 보면

LED 버튼

이떄 PB0의 핀 값을 어떻게 확인하는지 궁금했다. 물론 안내 책자에 적혀있다

핀정보

또는 기본 세팅 제공 CubeMX에도 적용되어 있었다.

CubeMx 사진

예제 로 소스코드 확인해보기

  /* 1단계 GPIO 클록 사용가능하게 만들기*/
  __HAL_RCC_GPIOB_CLK_ENABLE();

/* 2단계 GPIO 기능 Push-Pull mode로 변경하기*/
  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull  = GPIO_PULLUP;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
  GPIO_InitStruct.Pin = GPIO_PIN_0;
  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /*3단계 토글 진행 */
    /* -3- Toggle IO in an infinite loop */
  while (1)
  {
    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
    /* Insert delay 100 ms */
    HAL_Delay(100);
  }  
//#입력 받아서 토글하는 경우
		 if( HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13) == GPIO_PIN_SET)
		 {
			    HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
		 }

특정 함수 자세히 알고 싶으면 ctrl +Space

기타

참고로 현재

// MX_ETH_Init(); 해당 주석에서 오류가 있어 블럭해 놓은 상태입니다.

태그:

카테고리:

업데이트:

댓글남기기