STM32F1 HALライブラリ-SPI通信

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
)

引数

引数説明
hspiSPI_HandleTypeDef *SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。
pDatauint8_t *データバッファへのポインタ
Sizeuint16_t送信するデータの量
Timeoutuint32_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
)

引数

引数説明
hspiSPI_HandleTypeDef *SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。
pDatauint8_t *データバッファへのポインタ
Sizeuint16_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
)

引数

引数説明
hspiSPI_HandleTypeDef *SPIモジュールの構成情報を含むSPI_HandleTypeDef構造体へのポインター。
pDatauint8_t *データバッファへのポインタ
Sizeuint16_t送信するデータの量

戻り値

説明
HAL_StatusTypeDef

コールバック

いくつかのコールバック関数を指定でき、DMA転送の状態をユーザプログラムで察知することができる。
詳細は以下にまとめている。

あわせて読みたい
STM32F DMAを使った周辺機能データ送受信の転送完了コールバック設定方法 STM32Cubeには、周辺機能(ADC結果レジスタやSPI送受信レジスタ)からのデータ転送完了時にコールバックを受け、データ転送完了時に追加処理を行うことができる。その設...
https://setaria.rwc.0t0.jp/2021/07/11/stm32f-dma/

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次