반응형
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 |
댓글