国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32使用SPI通信時(shí)的一些常見問題及解決方法(主,從)

這篇具有很好參考價(jià)值的文章主要介紹了STM32使用SPI通信時(shí)的一些常見問題及解決方法(主,從)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

? ? ? ? 最近在做一個(gè)多MCU的項(xiàng)目時(shí),MCU之間的數(shù)據(jù)傳輸使用了SPI通信,在做從機(jī)時(shí)遇到了一些 “疑難雜癥”,研究了半天,總算是把故障排除了,就又總結(jié)了一下SPI常遇到的幾種問題寫出來整理一下。

目錄

一、SPI簡介:

?二、常見問題:

三、疑難雜癥:

Q1:使用的HAL庫,先開從機(jī),然后再給主機(jī)上電,通信正常,但是同時(shí)上電,即便是給主機(jī)加了延時(shí)都通信異常。

Q2:使用的DMA收發(fā),單獨(dú)測試一切正常,但是只要跟其他DMA同時(shí)使用就死機(jī)

四、SPI的穩(wěn)定性優(yōu)化:


一、SPI簡介:

? ? ? ? SPI是一種高速,全雙工的串行通信協(xié)議,由Motorola首先提出,其通信速率可輕松超過10Mbps

(詳見文章:STM32初學(xué)入門筆記(4):一文解析常見通信協(xié)議(USATR/UART,SPI,IIC))

?二、常見問題:

? ? ? ? 從結(jié)果來看,常見的問題可大致分為兩種:

? ? ? ? 1:主從完全無法通信

? ? ? ? 2:從機(jī)接收到的數(shù)據(jù)亂碼,移位等數(shù)據(jù)異常

? ? ? ? 第一種情況多是由硬件導(dǎo)致的,如SCK接到了MOSI,或者主從MOSI和MISO反接了(總之就是線沒接對),也有可能是因?yàn)槌跏蓟瘯r(shí)沒有開啟SPI的時(shí)鐘,或是沒有配置IO口等軟件問題。

? ? ? ? 其中我們經(jīng)常遇到的是第二種,導(dǎo)致第二種的原因通常有:

? ? ? ? 1、硬錯(cuò)誤:即硬件連接出現(xiàn)的錯(cuò)誤,如接觸不良,接線過長,噪聲過大等,常見于數(shù)據(jù)亂碼,移位的問題中。

? ? ? ? 2、軟錯(cuò)誤:若發(fā)生數(shù)據(jù)移位,且確定硬件無誤,則優(yōu)先排查主從機(jī)的數(shù)據(jù)長度是否一致,如主機(jī)發(fā)送的數(shù)據(jù)為16bits,從機(jī)接收的為8bits,如果從機(jī)項(xiàng)目使用了多個(gè)中斷,應(yīng)保證DMA的優(yōu)先級最高,以保證能夠完整獲取數(shù)據(jù)包。此外,如果發(fā)送的是數(shù)組,還有可能數(shù)據(jù)內(nèi)的數(shù)據(jù)出現(xiàn)錯(cuò)位,這種情況則應(yīng)檢查主從機(jī)數(shù)據(jù)包大小是否一致,如果使用的是DMA接收,則還有可能是因?yàn)?strong>在DMA傳輸完成中斷中再次開啟DMA時(shí)設(shè)置的數(shù)據(jù)包大小異常(總之就是數(shù)據(jù)包大小的問題)。數(shù)據(jù)亂碼在本質(zhì)上還是發(fā)生了數(shù)據(jù)移位,導(dǎo)致數(shù)據(jù)異常無法識別,從而引起亂碼,使用移位的排查方法即可,這里不再重復(fù)。

三、疑難雜癥:

Q1:使用的HAL庫,先開從機(jī),然后再給主機(jī)上電,通信正常,但是同時(shí)上電,即便是給主機(jī)加了延時(shí)都通信異常。

A:首先應(yīng)排查硬件上的問題,如芯片間的去耦電容是否正常,電源是否穩(wěn)定,如果確定了硬件沒有問題,就使用硬件片選試試,非常穩(wěn)定,主從同時(shí)上電即使主機(jī)不加延時(shí)也不會引起通信異常。具體原因不詳,個(gè)人猜測應(yīng)該是HAL庫的問題

Q2:使用的DMA收發(fā),單獨(dú)測試一切正常,但是只要跟其他DMA同時(shí)使用就死機(jī)

A:?嘗試增大堆棧,STM32死機(jī)很大一部分原因是堆棧溢出(DMA是要用到堆棧的)

四、SPI的穩(wěn)定性優(yōu)化:

1,通信速率:主機(jī)的通信速率盡量不要超過從機(jī)SPI的最大速率

2,CRC校驗(yàn):如果工作環(huán)境較為惡劣,有較大的噪聲干擾,推薦開啟CRC校驗(yàn)

3,硬件片選雖然從理論上講,只有主機(jī)和從機(jī)片選開不開無所謂,但是經(jīng)過向多名開發(fā)者驗(yàn)證和我的多次測試,發(fā)現(xiàn)開啟硬件片選可以大大提升SPI通信穩(wěn)定性,甚至可以直接解決疑難雜癥一文章來源地址http://www.zghlxwxcb.cn/news/detail-832419.html

到了這里,關(guān)于STM32使用SPI通信時(shí)的一些常見問題及解決方法(主,從)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【【STM32-SPI通信協(xié)議】】

    【【STM32-SPI通信協(xié)議】】

    STM32-SPI通信協(xié)議 ?SPI(Serial Peripheral Interface)是由Motorola公司開發(fā)的一種通用數(shù)據(jù)總線 ?四根通信線:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select) ?同步,全雙工 ?支持總線掛載多設(shè)備(一主多從) 既然是同步的,我們就會發(fā)

    2024年02月12日
    瀏覽(41)
  • STM32開發(fā)(十)STM32F103 通信 —— SPI通信編程詳解

    ??《上一篇》 ???《主目錄》 ???《下一篇》 本實(shí)驗(yàn)通過STM32F103 的SPI功能,實(shí)現(xiàn)對W25Q64JVSSIQ (Flash芯片)芯片擦除,讀數(shù)據(jù),寫數(shù)據(jù)等操作。 本實(shí)驗(yàn)內(nèi)容知識點(diǎn): 1、SPI通信協(xié)議介紹 2、

    2024年02月07日
    瀏覽(25)
  • 【STM32】學(xué)習(xí)筆記-SPI通信

    【STM32】學(xué)習(xí)筆記-SPI通信

    SPI通信(Serial Peripheral Interface)是一種同步的串行通信協(xié)議,用于在微控制器、傳感器、存儲器、數(shù)字信號處理器等之間進(jìn)行通信。SPI通信協(xié)議需要使用4個(gè)線路進(jìn)行通信:時(shí)鐘線(SCLK)、主輸入/主輸出線(MISO)、主輸出/主輸入線(MOSI)和片選線(SS)。其中,SCLK由主設(shè)備提供,用于

    2024年02月09日
    瀏覽(24)
  • STM32-SPI通信(W25Q64芯片簡介,使用SPI讀寫W25Q64存儲器芯片)

    STM32-SPI通信(W25Q64芯片簡介,使用SPI讀寫W25Q64存儲器芯片)

    ???SPI(Serial Peripheral Interface)是由Motorola公司開發(fā)的一種通用數(shù)據(jù)總線四根通信線:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)。 ?SPI通信具有以下特點(diǎn): 同步,全雙工; 支持總線掛載多設(shè)備(SPI僅支持一主多從); 在不

    2024年02月08日
    瀏覽(21)
  • 入門stm32:STM32hal庫實(shí)現(xiàn)ESP8266與手機(jī)通信(不定長數(shù)據(jù)收發(fā)和ESP8266使用的一些問題)

    入門stm32:STM32hal庫實(shí)現(xiàn)ESP8266與手機(jī)通信(不定長數(shù)據(jù)收發(fā)和ESP8266使用的一些問題)

    目錄 前言 一、stm32cubeMX的串口配置 二、空閑中斷+dma接收 三、ESP8266.c和ESP8266.h ESP8266.h ESP8266.c 注意事項(xiàng) 四、與手機(jī)通信例程 步驟: ?例程代碼main.c 運(yùn)行結(jié)果 五、相關(guān)問題 總結(jié) 相關(guān)的app和源碼 ? ? ? ? 前提: 1.掌握串口通信和ESP8266的使用方法 串口通信:單片機(jī)串口通信

    2024年02月04日
    瀏覽(157)
  • STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

    STM32F429IGT6使用CubeMX配置SPI通信(W25Q256芯片)

    1、硬件電路 需要系統(tǒng)性的看一下W25Q256芯片手冊? 2、設(shè)置RCC,選擇高速外部時(shí)鐘HSE,時(shí)鐘設(shè)置為180MHz 3、配置SPI 4、生成工程配置 ? 5、讀寫流程圖 5、相關(guān)代碼 6、實(shí)驗(yàn)現(xiàn)象 沒有問題!

    2024年02月12日
    瀏覽(41)
  • STM32硬件SPI通信詳解-------附代碼

    STM32硬件SPI通信詳解-------附代碼

    1.STM32內(nèi)部集成了 硬件SPI收發(fā)電路 ,可以由 硬件自動(dòng)執(zhí)行時(shí)鐘生成 、 數(shù)據(jù)收發(fā) 等功能, 減輕CPU的負(fù)擔(dān) 2.可配置 8位/16位數(shù)據(jù)幀 、 高位先行/低位先行 3. 時(shí)鐘頻率 : fPCLK / (2, 4, 8, 16, 32, 64, 128, 256) 4.支持 多主機(jī)模型 、 主或從操作 5.可精簡為 半雙工/單工通信 6. 支持DMA 7. 兼

    2024年04月27日
    瀏覽(16)
  • STM32 HAL庫 SPI主從雙機(jī)通信

    STM32 HAL庫 SPI主從雙機(jī)通信

    最近因?yàn)轫?xiàng)目需求,需要在一塊板子內(nèi)實(shí)現(xiàn)一個(gè)主機(jī)和五個(gè)從機(jī)的通信; 主機(jī)平臺選用的是STM32F407VGT6,從機(jī)平臺選用的是STM32F103C8T6;通信總線選用的是SPI總線。在構(gòu)想是覺得采用SPI進(jìn)行主從通信會很簡單,但在實(shí)際開發(fā)的過程中,各種坑,通信時(shí)而正常時(shí)而混亂。不過在不

    2024年01月17日
    瀏覽(19)
  • STM32與ESP32的硬件SPI通信(個(gè)人學(xué)習(xí)記錄)

    STM32與ESP32的硬件SPI通信(個(gè)人學(xué)習(xí)記錄)

    ????????STM32F103ZET6作為主機(jī),使用SPI2,ESP32S2作為從機(jī),進(jìn)行SPI雙向通信;硬件接線如下: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 主機(jī)? ? ? ? ? ? ? ? ? ? ? ? 從機(jī) CS? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PB12 ——————? 14 MOSI? ? ? ? ?

    2024年02月07日
    瀏覽(16)
  • 基于SPI實(shí)現(xiàn)stm32與fpga通信(一)

    SPI通信協(xié)議有以下4種模式: 模式0:時(shí)鐘極性為0,時(shí)鐘相位為0,數(shù)據(jù)在時(shí)鐘下降沿捕獲,數(shù)據(jù)在時(shí)鐘上升沿改變。 模式1:時(shí)鐘極性為0,時(shí)鐘相位為1,數(shù)據(jù)在時(shí)鐘上升沿捕獲,數(shù)據(jù)在時(shí)鐘下降沿改變。 模式2:時(shí)鐘極性為1,時(shí)鐘相位為0,數(shù)據(jù)在時(shí)鐘上升沿捕獲,數(shù)據(jù)在時(shí)鐘

    2024年04月16日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包