任何人可以解釋我的SPI通信的工作原理?如果有可能向我展示與SPI通信示例代碼的鏈接? 我將使用「STM32f1xx」微處理器與SPI通信的外圍設備ADE7878(能量分析器)。我正在使用「STM32CubeMx」和「stm32f1xx_hal.h」庫。但是我找不到「stm32f1xx_hal.h」庫的很多代碼示例。 在此先感謝您的幫助如何使用STM32f1xx_HAL SPI通信
0
A
回答
0
基本上SPI是一種同步串行通訊接口,採用主從關係。主器件(您的STM32微控制器)選擇總線上的從器件,拉低片選引腳。在所有通信操作之前,您需要在ADE7878中選擇SPI接口。切換三次電後的SS/HSA
銷,除非你需要與I2C protokoll(見datasheet在68頁的詳細信息)通信。選擇主器件在SCLK線中啓動時鐘信號後。主機發送第一個字節來選擇讀/寫位0,第二個字節在MOSI線上有一個寄存器地址。最後,主設備讀取MISO線上從設備寄存器的日期或在MOSI上寫入寄存器值。
通信之前,需要設定參數(時鐘相位,極性,時鐘頻率等)。您可以在文獻中閱讀它並參閱STM32F1 HAL documentation。關於SPI有很多很好的通用材料。首先我建議你the wiki page of SPI。如果你在這裏搜索,你可以找到幾個有關SPI和stm32的有用提示(例如,some shorter general intro)。我熱烈建議您閱讀Geoffrey Brown's book,這是介紹STM32F1編程的內容。它基於標準外設庫(HAL的祖先),但其原理已得到很好的解釋。
如果使用CubeMX和STM32CubeF1 firmware package安裝你可以找到在倉庫中不同工具的一些工作SPI例子。如果你想要更多,你可以看到任何STM32的例子,因爲HAL代碼可以跨系列移植。我推薦用例如搜索。 "__HAL_SPI_ENABLE"
。
相關問題
- 1. Stm32f407IG SPI通信
- 2. MAX31865 SPI通信失敗
- 3. Raspberry Pi spidev.h SPI通信
- 4. lpc1788 ssp(SPI) - proc處理通信
- 5. Verilog FPGA之間的SPI通信
- 6. LPC1788:使用SPI與UFDC-1進行通信
- 7. 使用USBASP編程器進行SPI通信
- 8. 如何從讀取和寫入EEPROM起訴SPI通信
- 9. SD卡使用SPI
- 10. ARM中主從站的Spi通信同步
- 11. 幫助理解Arduino Mega上的串行通信(SPI)
- 12. 在Linux上使用spidev進行SPI(樹莓派)SPI使用spidev
- 13. 多個MSP430可能同時進行I2C,SPI和USB通信嗎?
- 14. 微控制器到微控制器SPI通信
- 15. 如何比HTTP通信更好地使用TCP通信?
- 16. 爲什麼在SPI通信中提供了不同的模式?
- 17. 如何在iPhone上使用HTTP通信?
- 18. 在Coldfire系統中通過SPI使用SD或SDHC
- 19. 如何閱讀使用Java通信的GSM GSM短信?
- 20. STM43F4發現:如何通過SPI讀取閃存器件?
- 21. 如何在WAS 6.1中使用javax/persistence/spi/PersistenceUnitInfo.getValidationMode()
- 22. 如何使用SPI與LPC1788傳輸和接收數據
- 23. 如何使用Keycloak部署器(/ deploy)部署keycloak的SPI項目?
- 24. Websphere PUMA SPI(PumaLocator)如何與ICEfaces Portlet結合使用?
- 25. 驗證guice模塊配置 - 如何使用SPI?
- 26. STM32F4:通過SPI管理EEPROM 25LC256
- 27. 如何通過Java通信API使用Eclipse Indigo
- 28. 如何通過使用twilio sdk通過java發送短信
- 29. 如何使用Google protobuf通過串口進行通信?
- 30. 如何使用意圖通信使用活動元素的ID
這有幫助嗎?:https://github.com/eleciawhite/STM32Cube/tree/master/STM32Cube_FW_F3_V1.3.0/Projects/STM32F303RE-Nucleo/Examples/SPI/SPI_FullDuplex_ComIT/Src – TisteAndii