inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

바닥부터 시작하는 STM32 드론 개발의 모든 것

1-3. 디버그 UART 및 printf 함수 출력

UART Debug 부분

235

방구석하드웨어

작성한 질문수 9

0

일단 CubeIDE 가 아닌 Atolic TrueStudio 환경에서 프로그램을 하고 있는데,

stm32f4xx_it.c 에서 선언한 전역 변수

uart6_rx_flag = 0;

uart6_rx_data = 0;

을 main.c 에 extern 선언 해주는 것 까지 잘 따라했는데

무슨 일인지 USART Receive를 하면서 flag가 바뀌면 

main의 while문에서 

바뀐 flag를 처리를 못합니다.

그래서 플래그를 안쓰고 IRQ Handler에서 받은 데이터를 Direct하게 송신하게 했더니 또 잘되긴 합니다.

애초에 truestudio에서 extern 문법을 제대로 처리를 하지 못하는 건가요? 

드론-개발 iot

답변 3

1

ChrisP

안녕하세요

1. 변수 선언하실때 앞에 volatile 키워드를 붙여서 다시 해보시기 바랍니다.

2. 아마 TrueSTUDIO의 코드 최적화 레벨이 -O0 (None) 이 아닐겁니다. 프로젝트 옵션에서 Optimization 레벨을 위와같이 설정해주셔도 해결 될 겁니다.

후자의 방법을 추천드립니다.

문제가 해결되는지 한번 확인해보세요!

0

ChrisP

잘 된다니 다행입니다! 그럼 앞으로도 즐거운 드론 개발 되시기 바랍니다~

0

방구석하드웨어

잘 해결되네요 감사합니다~

비행승인 문의드립니다

0

38

0

드론의 M4 모터가 느리게 작동합니다.

0

63

2

STM32CubeIDE 관련해서 질문이 있습니다.

0

92

2

while문 루프 속도

0

60

2

변수 선언

0

51

2

FS-i6를 꺼도 LED 토글되는 이유

0

67

2

Fs-i6 i-bus 수신 데이터 이상

0

109

3

3-4. UBX 위도 경도 정보 Terminal에서 깨짐 현상

0

88

2

3-4. LED 토글 안됨

0

50

1

3-1. M8N GPS 강의 통신 연결 관련 문의

0

78

1

2-3. LPS22HH 강의 수행값이 아두이노 IDE Plotter 및 Terminal에서 인식 안됨

0

77

2

6-4 SwC 2000

0

105

2

6-4 ESC Calibration

0

69

1

esc, 모터 교체

0

111

2

부저 소리가 안납니다.

0

134

2

비행 질문

0

63

1

7-5. offset

0

75

2

sysmem.c

0

75

2

전체 제어의 주기를 1KHz로 설정한 이유가 궁금합니다.

0

89

2

부품 구매 관련 문의

0

66

1

PID 게인 문제

0

84

3

3d telemetry cp210x 연결

0

122

2

8-1. 3DR Telemetry HAL_UART_Receive_IT(&huart1, &uart1_rx_data, 1); 관련 문의

0

72

2

PID제어 질문

0

124

2