我試圖使用HAL_SPI_Transmit(。)進行16位數據傳輸。STM32 HAL SPI 16位發送
我已經使用STM32Cube作爲16位的數據大小
(與hspi2.Init.DataSize = SPI_DATASIZE_16BIT
)上配置的SPI。
我試圖在16位與發送數據:
uint16_t DataToSend[10]={...};
HAL_SPI_Transmit(&hspi2,DataToSend, 2,TIMEOUTSPI);
但HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
專門爲uint8_t *需求,並返回以下錯誤的功能:
error: #167: argument of type "uint16_t *" is incompatible with parameter of type "uint8_t *"
因此,如何能我使用HAL_SPI_Transmit()
發送16位數據?
我發現這個link但只討論了該錯誤,並沒有討論使用該函數的方式。所以我的問題依舊。
我搜查了網沒有任何運氣。 我對STM32相當陌生,因此對您來說答案可能很明顯。
我使用2作爲Size參數的原因是我想發送2個16位數據。我應該在這種情況下寫4嗎? @Guillaume – Alithewise
我剛看了一下HAL代碼,看起來大小就是單詞的數量。所以看起來你是對的,應該是2(發送2個16位字) –
感謝您的回答。我測試了它,它工作。但我認爲應該改變函數定義來支持16位數據而不用進行類型轉換。 – Alithewise