こんにちは、やましょうです。
STM32のSPI-MASTERでSPIで通信を行っていないときにCLOCKラインをHIGHにしておきたいのですが、なぜかCUBE MXの吐き出すコードだと、1度SPIを使用するまでCLOCKラインがLOWですね。
まぁ、問題はないんでしょうけど、最初だけ通常時と異なるのはちょっと考えてしまいますよね。
波形としてこんな感じです。(上の黄色がCLOCK)
この原因を調査すると、
SPI_CR1の SPE BITの設定ですね。
(注意:SPE BITはいろいろな回路に使われている様でON時には設定変更はできない様なことが書いてあります。)
6 SPE:SPI ペリフェラル イネーブル フラグな様です。
対応 SPIの初期化部でフラグオンを追加します。
/* USER CODE BEGIN SPI1_Init 2 */
__HAL_SPI_ENABLE(&hspi1);
/* USER CODE END SPI1_Init 2 */
}
対応後
最初の時点でHIGHになりました。
以上
やましょうでした。
0 件のコメント:
コメントを投稿