[[ファームウェア関数一覧>ファームウェア関数一覧#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
#include(Macro/SPI_Mode,notitle)
--SPI_DataSize
#include(Macro/SPI_DataSize,notitle)
--SPI_CPOL&br;
クロックパルスの極性を設定します。&br;
&br;
#include(Macro/SPI_CPOL,notitle)
&br;
--SPI_CPHA&br;
ラッチとシフトのどちらが先行するかを設定します。&br;
&br;
#include(Macro/SPI_CPHA,notitle)
&br;
--SPI_NSS&br;
SPIのNSS(Slave select)のソースをNSSピンにするかレジスタにするかを設定します。&br;
Hardの場合NSSピンの信号が内部NSSに接続されます。&br;
Softの場合SSIビット(CR1)が内部NSSに接続されます。内部NSSがアサートされるとSPIがスレーブとして動作します。&br;
STM32のSPIモジュールでは、マスタモードでNSS信号の出力を有効化すると、アサートされ続けてしまうという仕様です。&br;
&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]
-


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS