stm32的SPI发送和接收与hal库SPI阻塞问题 | 您所在的位置:网站首页 › stm32l452 › stm32的SPI发送和接收与hal库SPI阻塞问题 |
文章目录
一、stm32的SPI发送和接收原理二、hal库函数SPI阻塞2.1 涉及到的函数2.2 解释
一、stm32的SPI发送和接收原理
SPI寄存器有16位,其中8位用于读操作,另8位用于写操作。往DR寄存器写数据,该数据将被装载到图上所示的TX缓冲区,在缓存区中的数据将通过MOSI引脚发射出去;相反的,如果读取DR寄存器,RX缓冲区中的数据将返回给程序员用于处理,RX缓冲区中的数据来自MISO引脚。 二、hal库函数SPI阻塞 2.1 涉及到的函数 HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,uint32_t Timeout) 2.2 解释HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,uint32_t Timeout)函数发送Size大小的数据并且需要接收到Size大小的数据才会结束,否则阻塞在while ((hspi->TxXferCount > 0U) || (hspi->RxXferCount > 0U))这个位置,直到接收计数值等于0,此时代表接收了SIZE大小的数据,在此之前,后续程序无法被执行,而是等待SPI接收数据完成。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |