目的
SPIの初期化の値による速度を
カウンターを使って計って遊ぶ
参考
●プログラム仕様
=SPI実験速度の項目
STM32G071は、クロック32MHzで動いています。
(1) 32MHz
(2) 16MHz
(3) 8MHz
(4) 4MHz
(5) 2MHz
(6) 1MHz
SPIの速度は、(4)から(6)まで実施
//SPI.beginTransaction( SPISettings( 4000000, MSBFIRST, SPI_MODE0) );
//SPI.beginTransaction( SPISettings( 2000000, MSBFIRST, SPI_MODE0) );
SPI.beginTransaction( SPISettings( 1000000, MSBFIRST, SPI_MODE0) );
●結果
1MHz
2MHz
4MHz
●プログラム
//SPI_spped_ck_071_2
//ヘッダーファイル
#include <SPI.h>
//定義
#define DW digitalWrite
//初期化
void setup() {
// SPIの初期化
SPI.beginTransaction( SPISettings( 4000000, MSBFIRST, SPI_MODE0) );
//SPI.beginTransaction( SPISettings( 2000000, MSBFIRST, SPI_MODE0) );
//SPI.beginTransaction( SPISettings( 1000000, MSBFIRST, SPI_MODE0) );
SPI.begin(); // 11 12 13
pinMode(SS, OUTPUT); // 10
DW(SS, LOW); // 10
loop1_a:
SPI.transfer(0b11110000); //1
SPI.transfer(0b11110000); //2
SPI.transfer(0b11110000); //3
SPI.transfer(0b11110000); //4
SPI.transfer(0b11110000); //5
SPI.transfer(0b11110000); //6
SPI.transfer(0b11110000); //7
SPI.transfer(0b11110000); //8
SPI.transfer(0b11110000); //9
SPI.transfer(0b11110000); //10
SPI.transfer(0b11110000); //11
SPI.transfer(0b11110000); //12
SPI.transfer(0b11110000); //13
SPI.transfer(0b11110000); //14
SPI.transfer(0b11110000); //15
SPI.transfer(0b11110000); //16
SPI.transfer(0b11110000); //17
SPI.transfer(0b11110000); //18
SPI.transfer(0b11110000); //19
SPI.transfer(0b11110000); //20
goto loop1_a;
} //setup
//無限ループ
void loop() {
} //loop