인프런 커뮤니티 질문&답변

dayday님의 프로필 이미지
dayday

작성한 질문수

STM32 FFT 구현

main.c 코드 문의 (교육자료 34p)

작성

·

274

0

56 uint8_t g_100ms_flag = 0;

-> TIM1 인터럽트 주기 = 50ms 인데, 위 변수에 100ms라고 하는것은 토글에 의한 PB3

핀의 신호 주기가 2배가 되기 때문인가요? (아래 그림 cnt_100ms 변화도 맞게 그린건가요?)

 

-> 그리고 강의 초반에 division = 2 는 어떤것에 영향을 주는것인가요??

 

 

답변 1

1

alex님의 프로필 이미지
alex
지식공유자

50ms 주기인데, 변수명이 잘못되었네요 ㅠㅠ
g_50ms_flag를 사용해야 되는데, 오타입니다 ㅎㅎ


divider = 2는 특별한 의미는 없습니다.
보통 타이머의 주기를 설정하기 위하여 아래와 같은 식이 사용됩니다.
타이머 주파수 = (System clock) / (Prescaler * divider)
낮은 주파수(큰 주기)를 만들기 위하여 divider 값을 크게 해서 사용합니다.
divider로 인해서 설정가능한 주파수 범위가 더 넗어진다고 생각하면 됩니다.
감사합니다 ~!!

dayday님의 프로필 이미지
dayday
질문자

아하 ㅎㅎㅎ 감사합니다.

추가로 질문이 있습니다...

main.c 코드의 454번째 줄에서 "HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);" 를 사용하셨는데..
-> "HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);" 라는 코드만 보면 High 출력 상태인지 Low 출력 상태인지를 알 수가 없고, 단순히 인터럽트 잘 되고있는지 확인하는 용도 잖아요?!

-> gpio 핀에서 계속 High 신호 or low 신호를 출력하도록 하려면 어떤 함수를 써야 하나요..??

alex님의 프로필 이미지
alex
지식공유자

HAL_GPIO_TogglePin 함수에서 F3 키를 누르면 해당 함수로 이동합니다.
해당 함수 위 아래에 함수들이 정의되어 있습니다.
직접 확인해 보세요 ~

dayday님의 프로필 이미지
dayday
질문자

아아~~ 확인했습니다 감사해요!!!

dayday님의 프로필 이미지
dayday

작성한 질문수

질문하기