cancel
Showing results for 
Search instead for 
Did you mean: 

Do I need to use DMA in order to use HAL_SPI_RxHalfCpltCallback()?

MFolk.1
Senior

I recently switched from DMA to IT for receiving commands via SPI. Now I'm noticing that commands are being received and processed correctly, but HAL_SPI_RxHalfCpltCallback() is no longer being called. A lot has changed in my program since then, but in regards to the SPI drivers I can't recall anything else changing. I would like to stay off of DMA if I can, but I absolutely need HAL_SPI_RxHalfCpltCallback() to work. Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Georgy Moshkin
Senior II

Half complete interrupts are coming from DMA. HAL_SPI_RxHalfCpltCallback() is called on DMA interrupt. I can fix your DMA issues if you provide some details

Disappointed with crowdfunding projects? Make a lasting, meaningful impact as a Tech Sponsor instead: Visit TechSponsor.io to Start Your Journey!

View solution in original post

2 REPLIES 2
MFolk.1
Senior

I switched back to using DMA and now HAL_SPI_RxHalfCpltCallback() is getting called again. Is there a reason why DMA must be used here? Can this be done without DMA?

Georgy Moshkin
Senior II

Half complete interrupts are coming from DMA. HAL_SPI_RxHalfCpltCallback() is called on DMA interrupt. I can fix your DMA issues if you provide some details

Disappointed with crowdfunding projects? Make a lasting, meaningful impact as a Tech Sponsor instead: Visit TechSponsor.io to Start Your Journey!