본문 바로가기
전자/임베디드 시스템

STM32 HAL 인터럽터와 DMA 함수 사용시 주의사항

by Begi 2021. 7. 1.
반응형

STM32의 HAL에서 HAL_I2C_Master_Transmit_IT또는 HAL_I2C_Master_Transmit_DMA와 같은 함수를 사용할 때 이상한 데이터가 송수신되는 경우가 있다.

 

위와 같은 함수에서 전달되는 변수는 글로벌 변수를 사용해야 한다. 만약 로컬 변수를 사용하면 로컬 변수가 스택에서 해제되면 데이터가 유지되지 않기 때문에 이상한 데이터가 송수신 될 수 있다.

 

인터럽터나 DMA는 함수 실행이 끝나도 계속 동작하기 때문에 송수신할 데이터를 글로벌 변수에서 계속 유지하고 있어야 한다.

 

반응형

'전자 > 임베디드 시스템' 카테고리의 다른 글

STM32 HAL DMA 사용시 주의사항  (0) 2021.07.03
STM32 개발 라이브러리 종류  (0) 2021.07.03
STM32의 HAL_SPI_TransmitReceive_IT 함수 동작원리  (0) 2021.06.30
PL2303 드라이버  (0) 2021.06.30
SPI의 CPOL과 CPHA  (0) 2021.06.29

댓글