(2014.9.6 作成)
(2015.11.25 更新)
DMAを使用せず通信を行います。また本来はSS(Slave Select)を自動制御させることも出来ますが、あえてこのクラスではSSピンを使用していません。
コンストラクタ |
||
プロトタイプ |
SPI( SPI_TypeDef *SPIx, const uint8_t &PinSCK, const uint8_t &PinMISO, const uint8_t &PinMOSI); |
|
戻り値 |
なし |
|
引数 |
SPIx |
SPI1, SPI2, または SPI3 |
PinSCK PinMISO PinMOSI |
使用するピンを指定します。 詳細は後述。 |
|
備考 |
|
クロックの変更 |
||
プロトタイプ |
void setClockDivider(const uint16_t &Divider); |
|
戻り値 |
なし |
|
引数 |
Divider |
SPI_BaudRatePrescaler_2 SPI_BaudRatePrescaler_4 SPI_BaudRatePrescaler_8 SPI_BaudRatePrescaler_16 SPI_BaudRatePrescaler_32 SPI_BaudRatePrescaler_64 SPI_BaudRatePrescaler_128 SPI_BaudRatePrescaler_256 のどれか |
備考 |
システムクロックを変更していなければSPI1は72MHz, SPI2と3は36MHz基準です。 |
PinSCK,MISO,MOSIの設定値と実際のピンの関係は以下の通りとなります。この中で灰色に塗りつぶされたセルはSTM32F3Discovery基板では既に何かが取り付けられているものになります。
1 | 2 | 3 | |
SPI1 | PA5 | PB3 | |
SPI2 | PB13 | PF9 | PF10 |
SPI3 | PB3 | PC10 |
1 | 2 | |
SPI1 | PA6 | PB4 |
SPI2 | PB14 | |
SPI3 | PB4 | PC11 |
1 | 2 | |
SPI1 | PA7 | PB5 |
SPI2 | PB15 | |
SPI3 | PB5 | PC12 |
setClock関数にて設定される周波数は以下の通りになります。
F303xC (F3Discovery) F103xB |
F401xE (F401Nucleo) |
|
SPI_Speed_100kHz | 288 kHz | 336 kHz |
SPI_Speed_500kHz | 576 kHz | 672 kHz |
SPI_Speed_1MHz | 1152 kHz | 1344 kHz |
SPI_Speed_5MHz | 4.5 MHz | 5.25 MHz |
SPI_Speed_10MHz | 9 MHz | 10.5 MHz |
SPI_Speed_20MHz | 18 MHz | 21 MHz |