2016-05-16 36 views
0

誰でも私にSPI通信の動作原理を説明できますか?可能であれば、私はSPIを通信するためのサンプルコードとリンクしていますか? 私はADE7878(Energy Analyzer)であるSPI通信周辺デバイスを備えた "STM32f1xx"マイクロプロセッサを使用します。私は "STM32CubeMx"と "stm32f1xx_hal.h"ライブラリを使用しています。しかし、私は "stm32f1xx_hal.h"ライブラリで多くのコード例を見つけることができませんでした。 ご協力いただきありがとうございますSTM32f1xx_HAL SPI通信の使用方法

+0

これは役に立ちますか?:https://github.com/eleciawhite/STM32Cube/tree/master/STM32Cube_FW_F3_V1.3.0/Projects/STM32F303RE-Nucleo/Examples/SPI/SPI_FullDuplex_ComIT/Src – TisteAndii

答えて

0

基本的に、SPIはマスターとスレーブの関係を使用する同期シリアル通信インターフェイスです。マスター(STM32マイクロ)はバス上のスレーブを選択し、チップセレクトピンをプルダウンします。すべての通信アクションが必要な場合は、ADE7878でSPIインターフェイスを選択してください。 I2Cプロトコールと通信する必要がないかぎり、SS/HSAピンを3回トグルしてください(詳細は、datasheetの68ページを参照してください)。選択後、マスタはクロック信号をSCLKラインで開始します。マスタは最初のバイトを送信して、ビット0の読み出し/書き込みを選択し、2番目のバイトはMOSIラインのレジスタアドレスを送信します。最後に、マスタは、MISOライン上のスレーブのレジスタの日付を読み取り、またはMOSI上にレジスタ値を書き込む。

通信する前に、パラメータ(クロック位相、極性、クロック周波数など)を設定する必要があります。文献については、STM32F1 HAL documentationをご覧ください。 SPIには多くの優れた原材料があります。まず、私はあなたにお勧めしますthe wiki page of SPI。ここで検索すると、SPIとstm32に関連するいくつかの有用なヒント(例:some shorter general intro)を見つけることができます。私は暖かくあなたがSTM32F1プログラミングの紹介であるGeoffrey Brown's bookを読むことをお勧めします。標準周辺ライブラリ(HALの祖先)に基づいていますが、その原則は非常によく説明されています。

CubeMXを使用し、STM32CubeF1 firmware packageがインストールされている場合、リポジトリ内のさまざまなツールのSPIの実例がいくつか見つかります。 HALコードはファミリ間で移植可能であるため、より多くのSTM32の例を見ることができます。私は例えばとの検索をお勧めします。 "__HAL_SPI_ENABLE"

関連する問題