如何使用SPI庫
1 聲明SPI hanlde, 例如: SPI_HandleTypeDef hspi
2 通過實現HAL_SPI_MspInit()函數初始化底層資源
以下兩個必須進行初始化
a 使能spi時鍾
b 配置spi pins
以下根據需要初始化
c NVIC 中斷配置
d DMA配置
3 配置hspi,包括模式,datasize,baudrate,msb/lsb,crc等
4 調用HAL_SPI_Init()函數,初始化spi配置以及底層資源(通過調用HAL_SPI_MspInit())
初始化與配置函數
• HAL_SPI_Init()
• HAL_SPI_DeInit()
• HAL_SPI_MspInit()
• HAL_SPI_MspDeInit()
• HAL_SPI_InitExtended()
備注:
SPI中 datasize可以指定4-16bit數據,在SPI_DR寄存器中無論是字節還是字,數據總是右對齊,通訊時,只有數據字長范圍內的位會隨時鍾輸出
如下圖,左側只有0-->5位會輸出,右側只有0-->13位會輸出
使用單線模式時,主機的MISO,從機的MOSI都可以作為普通IO使用。