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

STM32의 HAL_SPI_TransmitReceive_IT 함수 동작원리

by Begi 2021. 6. 30.
반응형

HAL_SPI_TransmitReceive_IT 함수이 실행되면 SPI 인터럽터가 실행되면서 SPI에 데이터를 쓰고 읽는다. 매 바이트마다 인터럽터 함수가 실행된다.

 

SPI 인터럽터 함수는 stm32l1xx_it.c 파일에 있다.

    void SPIx_IRQHandler(void)
    {
        HAL_SPI_IRQHandler(&SpiHandle);
    }

 

인터럽터가 발생하면 실행되는 HAL_SPI_IRQHandler 함수는 stm32l1xx_hal_spi.c 파일에 정의되어 있다. 이 함수에서 SPI에 데이터를 쓰고 읽는다.

 

HAL_SPI_IRQHandler 함수에서 송수신이 종료되면 HAL_SPI_TxRxCpltCallback 함수를 호출하고 에러가 발생하며 HAL_SPI_ErrorCallback 함수를 호출한다.

 

HAL_SPI_TransmitReceive_IT는 SPI 인터럽터를 사용하기 때문에 SPI 인터럽터의 우선순위가 낮으면 정확한 시간에 데이터를 읽고 쓰지 못해 Overrun 등의 에러가 발생할 수 있다.

 

반응형

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

STM32 개발 라이브러리 종류  (0) 2021.07.03
STM32 HAL 인터럽터와 DMA 함수 사용시 주의사항  (0) 2021.07.01
PL2303 드라이버  (0) 2021.06.30
SPI의 CPOL과 CPHA  (0) 2021.06.29
블루투스 모듈 HC-06  (0) 2021.06.28

댓글