国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32_ SPI主從通信

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-08 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天講解“STM32F103SPI主從通信”,原本計劃將這部分內容定在后面(第二階段)來講解,滿足一位網友的問題“關于兩塊MCU的SPI通訊”,所以今天特地提前講解了。

由于昨天講解的是“SPI讀寫Flash”,MCU是作為SPI通信中的主機,今天主要講解SPI通信的從機,我將我測試的主機和從機的代碼分別打包供大家下載測試。

每天提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。

今天的軟件工程下載地址(360云盤):

主機:https://yunpan.cn/cPIJguDkjntYI訪問密碼 7bb6

從機:https://yunpan.cn/cPIJfZxr7D5Sk訪問密碼 fd5a

STM32F10x的資料可以在我360云盤下載:

https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90

測試原理及現象:主機間隔500ms發送10個字符(0-9),從機開啟SPI中斷接收數據,接收滿10字節數據,置標志位gSPI_FlagOver有效,并變化LED,通過串口打印接收到的數據。

關于“STM32F103SPI通信從機部分”我把重要的幾點在下面分別講述,若不明白,請關注微信公眾號“EmbeddDeveloper”查閱或留言。

一、RCC時鐘配置

該函數位于在bsp.c文件下面;

使能RCC時鐘:RCC_APB2Periph_SPI1

二、引腳配置

該函數位于在spi.c文件下面;

這里是對SPI所使用引腳進行配置。

注意:

SPI作為從機,MOSI作為從機接收而不是MISO,“今天的重點”我還會強調這點。

三、SPI配置

該函數位于在spi.c文件下面;

對SPI進行配置。

配置的每一條語句都有注釋,請看源代碼.

強調一點:SPI_CPOL_Low時鐘空閑為低,這個引腳容易受干擾導致通信故障。

四、SPI中斷控制器配置

該函數位于在bsp.c文件下面;

因為開啟了中斷接收數據,這里必須配置中斷控制器。

五、SPI中斷處理

該函數位于在stm32f10x_it.c文件下面;

文章開始就說明了:接收滿10字節數據,置標志位gSPI_FlagOver有效。該函數就是這個意思。

六、主函數應用

該函數位于在main.c文件下面;

這就是文章開頭“測試原理及現象”的描述,就不多說了。

六、今天的重點提示

A.主從連接方式:

這里對于開始學習的朋友來說,有點不理解(因為基本上都知道串口的通信,主機Tx對應從機Rx),還以為“主機的MOSI”連接的是“從機的MISO”,其實這里是和串口的區別之一(當然還有其他,這里不講解)。具體請看參考手冊。

B.常見問題

之前有寫過關于SPI主從通信的實例。但是,我今天專門找了兩套板子來測試,剛開始,通信始終有問題(從機不停地在接收0x00數據),結果發現兩板子之間沒有共地,找了根線接上,數據沒有不停地接收了。

但新的問題又來了,開始接收的數據正確,一旦出錯了一位,后面接收到的數據都不對了。我是不停的查看代碼,開始始終懷疑代碼有問題,但把代碼該了無數次(不知道好多次)之后,手冊看了幾遍,上網也查了很久,還是一樣的現象,結果,我用示波器測試了一下通信的時鐘(SCK),頻率有幾M, 波形間隔大概只有100ns,我就懷疑問題出在通信的線上,線太長了(估計有四五十厘米),果不然,使用短點的通信線,問題就好了。

說實話,一個不起眼的問題,可能會耗掉你無數的時間,這里我將我走過的彎路告訴大家,希望不要走這條彎路,今后的分享中我也會將一些容易出錯的地方拿到這里講解。

下載方式:長按網站 ->選擇復制 ->打開

或者復制網站在電腦上下載也可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373414
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1885

    瀏覽量

    101225
  • 主從通信
    +關注

    關注

    0

    文章

    7

    瀏覽量

    3643
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    使用SPI給兩塊板子相互通信主從設備該如何選擇呢?

    使用SPI給兩塊板子相互通信主從設備該如何選擇呢?
    發表于 01-20 07:11

    SPI 支持單線半雙工通信模式

    SPI 支持單線半雙工通信模式,在該模式下,主機和從機通過一條雙向數據線進行數據通信,主機使用 MOSI,從機使用 MISO,未使用的其他 SPI 信號線可供其它功能使用。設置控制寄存
    發表于 12-12 07:52

    通信協議IIC與SPI最全對比分析

    現今,在低端數字通信應用領域,我們隨處可見IIC(Inter-Integrated Circuit)和 SPI(Serial Peripheral Interface)的身影。原因是這兩種通信
    發表于 12-10 06:04

    SPI的多機通信

    SPI支持多機通信模式。在該模式下,主機的從機選擇 CS 引腳應配置為輸入,與其他主機的總線申請信號相連,用于檢測 SPI 總線是否發生沖突。如果某一主機的從機選擇 CS 引腳被拉為低電平,說明有
    發表于 12-08 06:47

    SPI、I2C、I2S、UART:通信協議解釋

    ? ? ? ? 在嵌入式開發中,最常用的幾種通信接口無非就是SPI、I2C、I2S、UART。名字看起來差不多,但應用場景和特性卻大不相同。為什么都叫串行通信,結構卻不一樣?為什么有的能傳音頻,有的
    的頭像 發表于 11-18 10:53 ?534次閱讀

    AEK-COM-ISOSPI1技術解析:SPI隔離通信在汽車電子中的應用

    加密狗可以通過SPI與SPC5、Stellar和STM32微控制器系列連接。AEK-COM-ISOSPI1用于電池管理系統(BMS)和通過SPI協議的隔離通信
    的頭像 發表于 10-24 15:48 ?759次閱讀
    AEK-COM-ISOSPI1技術解析:<b class='flag-5'>SPI</b>隔離<b class='flag-5'>通信</b>在汽車電子中的應用

    基于STEVAL-BMS1T的隔離式SPI通信技術解析與應用指南

    STMicroelectronics STEVAL-BMS1T SPI轉隔離式SPI加密狗支持將SPI信號轉換為隔離式SPI信號,從而將必要的電線數量從四根減至兩根。ISOSPI協議提
    的頭像 發表于 10-16 14:01 ?613次閱讀
    基于STEVAL-BMS1T的隔離式<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>技術解析與應用指南

    spi硬件主從機,從機接收失敗的原因?怎么解決?

    #include \"master_slave.h\" #define MASTER_BUS_NAME\"spi2\" #define
    發表于 10-10 08:10

    數字電壓表設計教程之SPI協議詳解

    SPI(Serial Peripheral Interface)是串行外設接口的縮寫,SPI是一種高速、主從模式、全雙工、同步的串行通信總線,由摩托羅拉公司(Motorola)于 20
    的頭像 發表于 09-06 10:08 ?4398次閱讀
    數字電壓表設計教程之<b class='flag-5'>SPI</b>協議詳解

    SPI通信筆記:基礎+動圖+時序圖+總結,一文吃透!

    SPI現在已經成為MCU和外圍設備之間最常用的通信方式了。它是一種同步、全雙工、主從式的通信接口。工作原理其實很直接:主機產生時鐘信號,從機跟著這個時鐘同步收發數據。允許雙向傳輸,可以
    的頭像 發表于 07-29 14:15 ?7762次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>通信</b>筆記:基礎+動圖+時序圖+總結,一文吃透!

    適用TI ADS1299器件的ADS129x設備SPI通信問題調試步驟教程

    適用TI ADS1299器件的ADS129x設備SPI通信問題調試步驟教程
    的頭像 發表于 06-18 16:19 ?2305次閱讀
    適用TI ADS1299器件的ADS129x設備<b class='flag-5'>SPI</b><b class='flag-5'>通信</b>問題調試步驟教程

    第十七章 SPI

    本篇文章介紹了W55MH32的SPI接口,可工作于SPI或I2S模式,支持半 / 全雙工、主從操作,具可編程時鐘極性/相位等特征。闡述了主從模式配置、DMA
    的頭像 發表于 05-28 17:29 ?1234次閱讀
    第十七章 <b class='flag-5'>SPI</b>

    AD7768與STM32F407進行數據通信SPI1讀取到的數據不完整,整體數據在字節上出現偏移,怎么解決?

    我再做一個任務,需要使用STM32F407對AD7768的數據進行讀取,當然我們的AD采集速率要求不高,只需要2K。 我使用GPIO來模擬SPI對AD7768的寄存器進行配置讀取,使用硬件SPI1來
    發表于 04-24 06:40

    串行通信接口SPI與QSPI的區別

    在嵌入式系統的世界里,選擇正確的通信技術可以對項目的性能和可擴展性產生重大影響。讓我們比較兩個流行的串行通信接口:SPI(串行外設接口)和QSPI(四路SPI)。
    的頭像 發表于 04-09 15:24 ?3264次閱讀
    串行<b class='flag-5'>通信</b>接口<b class='flag-5'>SPI</b>與QSPI的區別

    使用SPI進行通信STM32F4做從機,通信時數據異常怎么解決?

    使用SPI進行通信STM32F4做從機,通信時數據異常,SPI2中SR寄存器會出現0xc0,0xc1,0x80的異常狀態值,大概就是BYS
    發表于 03-14 12:14