[[ファームウェア関数一覧>ファームウェア関数一覧#aa40dd64]] *SPI_Init [#vafadb6f] #contents **ヘッダ宣言 [#xddd117f] **関数プロトタイプ [#r300aebb] void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct) **動作 [#md35f48e] -SPIx/I2Sx周辺回路レジスタに値を設定し初期化します。 **引数 [#e148f6d7] -SPIx&br; #include(Macro/SPIx,notitle) -SPI_InitStruct&br; '''stm32f10x_spi.h'''で定義されているSPI_InitTypeDef構造体へのポインタです。 typedef struct { uint16_t SPI_Direction; uint16_t SPI_Mode; // uint16_t SPI_DataSize; uint16_t SPI_CPOL; uint16_t SPI_CPHA; uint16_t SPI_NSS; uint16_t SPI_BaudRatePrescaler; uint16_t SPI_FirstBit; // uint16_t SPI_CRCPolynomial; } SPI_InitTypeDef; --SPI_Direction 信号の本数と送受信の方向を設定します。 通常マスタとスレーブはMISOとMOSIの2本で接続されますが、それぞれ送受信専用として一本の接続でも使えます。&br; &br; #include(Macro/SPI_Direction,notitle)&br; &br; --SPI_Mode &br; #include(Macro/SPI_Mode,notitle) //--SPI_DataSize //#include(Macro/SPI_DataSize,notitle) --SPI_CPOL&br; #include(Macro/SPI_CPOL,notitle) &br; --SPI_CPHA&br; #include(Macro/SPI_CPHA,notitle) &br; --SPI_NSS&br; #include(Macro/SPI_NSS,notitle) &br; --SPI_BaudRatePrescaler #include(Macro/SPI_BaudRatePrescaler,notitle) --SPI_FirstBit&br; 最初に送信するビットを設定します。&br; &br; #include(Macro/SPI_FirstBit,notitle) &br; //--SPI_CRCPolynomial&br; //SPI_CRCPolynomialはCRC計算に使用される多項式を定義します。&br; //uint16_t型で指定します。&br; //&br; **出力値 [#o681cde7] -無し **戻り値 [#ufaad4d3] -無し **場所 [#kb59de54] **呼び出し関数 [#cb72c02b] -無し **サンプル [#r6b3367e] /* Initialize the SPI1 according to the SPI_InitStructure members */ SPI_InitTypeDef SPI_InitStructure; SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; // SPI_InitStructure.SPI_DatSize = SPI_DatSize_16b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_128; SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; // SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(SPI1, &SPI_InitStructure); **参照 [#t0efaa1e] - -STM32マイコン徹底入門 P.267