SPI使用DMA实现阻塞式发送,HAL使用哪个API?
RT,看了下头文件stm32f1xx_hal_spi.h,非DMA收发才有超时参数,也就是DMA都是非阻塞式。int SPI3_Flash_DMA_RD(unsigned long Off, unsigned short NumBytes, void *pVoid, void *pBuffer)
{
(void)pVoid;
assert_param(pBuffer != 0);
SPI3_CS_LOW();
unsigned char init_str[] = {READ, (Off & 0xFF0000) >> 16, (Off & 0xFF00) >> 8, (Off & 0xFF)};
HAL_SPI_Transmit(&hSPI3, init_str, sizeof(init_str), 5);
HAL_SPI_Receive_DMA(&hSPI3, pBuffer, NumBytes);
/* 等待发送完毕 */
SPI3_CS_HIGH();
return 0;
}
不懂,帮顶 不懂,帮顶 不懂,帮顶
页:
[1]