HALライブラリのSPI通信使用方法@V1.8.4
目次
SPI送信関数
HAL_SPI_Transmit
HAL_SPI_Transmitの使い方
概要
ブロッキングモード(データ転送が全部終わるまで関数から帰ってこない)で指定された数のデータをSPI送信する
定義
HAL_StatusTypeDef HAL_SPI_Transmit (
SPI_HandleTypeDef *
hspi,
uint8_t * pData,
uint16_t Size,
uint32_t Timeout
)
引数
引数 | 型 | 説明 |
---|---|---|
hspi | SPI_HandleTypeDef * | SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。 |
pData | uint8_t * | データバッファへのポインタ |
Size | uint16_t | 送信するデータの量 |
Timeout | uint32_t | 送信完了しなかったときのタイムアウト時間をmsecで指定(スレーブ時) |
戻り値
型 | 説明 |
---|---|
HAL_StatusTypeDef |
使用例
uint8_t sendData[] = { 0x00,0x20,0x54,0x7e,0x34,0x14,0x60,0x00 };
HAL_StatusTypeDef res = HAL_SPI_Transmit(&hspi1, sendData, sizeof(sendData), 10);
HAL_SPI_Transmit_IT
HAL_SPI_Transmit_ITの使い方
概要
非ブロッキングモード(データ転送が全部終わる前に関数から帰ってくる)で指定された数のデータをSPI送信し、送信完了で割り込みを発生させる
定義
HAL_StatusTypeDef HAL_SPI_Transmit_IT (
SPI_HandleTypeDef *
hspi,
uint8_t * pData,
uint16_t Size
)
引数
引数 | 型 | 説明 |
---|---|---|
hspi | SPI_HandleTypeDef * | SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。 |
pData | uint8_t * | データバッファへのポインタ |
Size | uint16_t | 送信するデータの量 |
戻り値
型 | 説明 |
---|---|
HAL_StatusTypeDef |
HAL_SPI_Transmit_DMA
HAL_SPI_Transmit_DMAの使い方
概要
非ブロッキングモード(データ転送が全部終わる前に関数から帰ってくる)でDMAを使用しデータをSPI送信する
定義
HAL_StatusTypeDef HAL_SPI_Transmit_DMA (
SPI_HandleTypeDef *
hspi,
uint8_t * pData,
uint16_t Size
)
引数
引数 | 型 | 説明 |
---|---|---|
hspi | SPI_HandleTypeDef * | SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。 |
pData | uint8_t * | データバッファへのポインタ |
Size | uint16_t | 送信するデータの量 |
戻り値
型 | 説明 |
---|---|
HAL_StatusTypeDef |
コールバック
いくつかのコールバック関数を指定でき、DMA転送の状態をユーザプログラムで察知することができる。
詳細は以下にまとめている。
コメント