(2014.5.8 作成)
(2015.4.25 更新)
(2017.8.3 Update)
Standard Peripheral Libraryを使用する場合にはSTマイクロエレクトロニクス社謹製のCPALライブラリーというのが存在します。このCPALライブラリはさすがに公式だけあって何でも出来ます(10bitアドレス、スレーブモード、DMA転送、エラーハンドリングなどなど、、、)。
しかしその反面、仕様が複雑で設定するだけでも複数のファイルにまたがっており、なかなか個人の趣味では敷居が高いものでした。
HALドライバが導入された後のI2Cはずいぶん楽になっています。
コンストラクタ |
||
プロトタイプ |
I2C( I2C_TypeDef* I2Cx, const uint8_t &SCLpinMode, const uint8_t &SDApinMode, const FrequencyMode &Frequency = Frequency_400kHz ); |
|
戻り値 |
なし |
|
引数 |
I2Cx |
I2C1 または I2C2を使用してください |
SCLpinMode SDApinMode |
使用するピンを指定します。 詳細は後述。 |
|
Frequency |
400kHzまたは100kHzが使用可能です。 |
|
備考 |
|
マイコンごとに使用されるピンの組み合わせが異なっており、以下の通りになっています。
またDiscovery基板の場合既に他に使用されているため、事実上使用できないピン設定があります。以下の表で灰色に塗りつぶされたセルが該当していますので、使用する場合は接続されている部品(LEDなど)を外す必要があります。
SCLpinMode | SDApinMode | |||||
0 | 1 | 2 | 0 | 1 | 2 | |
I2C1 | PA15 | PB6 | PB8 | PA14 | PB7 | PB9 |
I2C2 | PA9 | PF1 | PF4 | PA10 | PF0 |
SCLpinMode | SDApinMode | |||||
0 | 1 | 2 | 0 | 1 | 2 | |
I2C1 | PB6 | PB8 |
|
PB7 | PB9 |
|
I2C2 | PB10 |
|
|
PB3 |
|
|
I2C3 | PA8 |
|
|
PC9 | PB4 |
|
SCLpinMode | SDApinMode | |||
0 | 1 | 0 | 1 | |
I2C1 | PB6 | PB8 | PB7 | PB9 |
I2C2 | PB10 | PB11 |
加速度センサ(MPU-6050)のページに記載します。
ライブラリ自体はこちらからダウンロードできます。