TIM7이 클럭을 카운팅하고 있을때는 다른 동작들이 수행할수 있나요?
237
작성한 질문수 10
안녕하세요?
강의를 듣다가 근본적?인 질문을 드립니다...
STM32에서 타이머가 동작할때, 즉 클럭을 카운팅 하는것은
하드웨어적으로 발생하는 것일텐데 그렇게 클럭을 카운팅하는 동
안에는 동시에 다른 동작(I/O 입출력, UART 송수신 등)이 가능한
가요!?
조언 부탁드립니다!^^
답변 1
0
안녕하세요!
Q. STM32에서 타이머가 동작할때, 즉 클럭을 카운팅 하는것은 하드웨어적으로 발생하는 것일텐데 그렇게 클럭을 카운팅하는 동안에는 동시에 다른 동작(I/O 입출력, UART 송수신 등)이 가능한가요!?
A. 좋은 질문이네요! 네 가능합니다.
하드웨어적으로 동작한다는 것은, 내부 페리페럴을 동작시키는 것을 의미하고, 이런 페리페럴들은 초기화 하고 Enable 해준 후부터는 혼자 스스로 동작합니다.
그동안 다른 페리페럴이나 사용자 코드는 그와 별개로 동작하죠!
이걸 잘 고려해서 펌웨어 소스코드를 작성해야 하는데요, 하드웨어적으로 동작하지만 소프트웨어적으로도 별도 처리를 해줘야 하는 경우도 있습니다.
예를 들어, UART 수신의 경우, 인터럽트와 DMA를 사용하지 않는다면,
수신이 되면 UART data register에 데이터가 저장되지만 이걸 사용자 버퍼 변수에 저장하는 것은 소프트웨어적으로 처리해야 합니다.
그러기 위해서는 데이터 수신이 완료됐는지를 검사해야 하는데 이것 역시 소프트웨어적으로 처리해줘야 하고요.
워낙 다양한 경우가 많아서 각 페리페럴들이 어떻게 동작하는지 개념을 정확히 이해하는 것이 좋습니다만, 그러려면 많은 시행착오와 경험이 필요합니다 ㅎㅎ
이걸 배운후 freertos 및 can통신으로 전환가능할까요?
0
35
0
비행승인 문의드립니다
0
58
0
드론의 M4 모터가 느리게 작동합니다.
0
98
2
STM32CubeIDE 관련해서 질문이 있습니다.
0
113
2
while문 루프 속도
0
77
2
변수 선언
0
70
2
FS-i6를 꺼도 LED 토글되는 이유
0
84
2
Fs-i6 i-bus 수신 데이터 이상
0
138
3
3-4. UBX 위도 경도 정보 Terminal에서 깨짐 현상
0
110
2
3-4. LED 토글 안됨
0
60
1
3-1. M8N GPS 강의 통신 연결 관련 문의
0
94
1
2-3. LPS22HH 강의 수행값이 아두이노 IDE Plotter 및 Terminal에서 인식 안됨
0
100
2
6-4 SwC 2000
0
115
2
6-4 ESC Calibration
0
75
1
esc, 모터 교체
0
139
2
부저 소리가 안납니다.
0
149
2
비행 질문
0
78
1
7-5. offset
0
84
2
sysmem.c
0
88
2
전체 제어의 주기를 1KHz로 설정한 이유가 궁금합니다.
0
102
2
부품 구매 관련 문의
0
74
1
PID 게인 문제
0
97
3
3d telemetry cp210x 연결
0
130
2
8-1. 3DR Telemetry HAL_UART_Receive_IT(&huart1, &uart1_rx_data, 1); 관련 문의
0
86
2





