16ビットデータ送信にHAL_SPI_Transmit(。)を使用しようとしています。STM32 HAL SPI 16ビット送信
Iは16ビット・データ・サイズ(hspi2.Init.DataSize = SPI_DATASIZE_16BIT
有する)
としてSTM32Cubeを使用してSPIを設定しています。
私は16ビットのデータを送信しようとした:
uint16_t DataToSend[10]={...};
HAL_SPI_Transmit(&hspi2,DataToSend, 2,TIMEOUTSPI);
しかしuint8_tのために特別に必要HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout)
機能*、それが次のエラーを返します。
error: #167: argument of type "uint16_t *" is incompatible with parameter of type "uint8_t *"
それでは、どのようにすることができますHAL_SPI_Transmit()
を使用して16ビットのデータを送信しますか?
私はこれを見つけましたが、バグだけが議論され、その機能を使用する方法ではありませんでした。だから私の質問は残っている。
私は運がないネットを検索しました。 私はむしろSTM32を初めて使っているので、答えはあなたには明らかです。
サイズパラメータとして2を使用した理由は、2つの16ビットデータを送信したかったからです。私はその場合4を書くべきですか? @Guillaume – Alithewise
私はちょうどHALコードを見てきました、そして、サイズが言葉の数であるように見えます。だからそれはあなたが正しいと思われる、それは2(2 16ビットの単語を送信する)でなければなりません –
あなたの答えをありがとう。私はそれをテストし、それは働いた。しかし、私は関数の定義をタイプ変換なしの16ビットデータをサポートするように変更する必要があると思います。 – Alithewise