STM322 STM32 DMA를 통한 I2C Receive시 Hard Fault 문제 STM32CubeMX로 코드를 생성하고 Linux Machine 과 연결한 뒤 HAL_I2C_Slave_Receive_DMA 으로 읽기를 시작한다. Linux Machine에서 i2cdetect 명령을 실행하면 STM32에서는 Hard Fault가 발생한다. https://community.st.com/s/question/0D50X0000BTcGDf/bug-report-fix-hal-i2c-interrupt-handler-not-working 비슷한 문제인거 같다. stm32f1xx_hal_i2c.c의 I2C_DMAAbort에서 /* Clear Complete callback */ hi2c->hdmatx->XferCpltCallback = NULL; hi2c->hdmarx->XferCpltCallback.. 2020. 8. 29. ERROR: Cannot read register while CPU is running 디버깅 오류 STM32 개발하는데 CubeIDE로는 잘 되다가 IDE를 Clion으로 바꾼 뒤 ST-Link도.. J-Link도.. 디버깅이 안되는 문제가 있어서 계속 삽질했다. 그런데 원인이 너무 허무했다...ㅠㅠ 아래 내용을 지우지 않아서였다. stm32f1xx_hal_msp.c 파일 중.. /** DISABLE: JTAG-DP Disabled and SW-DP Disabled */ __HAL_AFIO_REMAP_SWJ_DISABLE(); 알고 있는 내용이었긴 했지만 왜 이걸 지우지 않았는지...ㅠㅠ 추가로 clion 에서 디버깅하려면 https://github.com/nagelkl/clion_embedded nagelkl/clion_embedded Embedded Development on STM32 with .. 2020. 8. 29. 이전 1 다음 반응형