在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

汽車玩家 ? 來源:嵌入式大雜燴 ? 作者:嵌入式大雜燴 ? 2020-04-04 17:24 ? 次閱讀

之前分享過的SPI通訊實(shí)例:STM32硬件SPI主從通信實(shí)例,是基于一塊STM32的兩個(gè)SPI通訊。如果要進(jìn)行兩塊STM32之間的SPI通訊,需要注意一些什么呢?

兩塊STM32之間的SPI通訊平時(shí)用的比較少,之前我也沒有用過,網(wǎng)上也查了很多資料,沒有找到現(xiàn)成的,能直接用的例子(做軟件的不就是copy嗎=v=)。

所以只能自己來實(shí)現(xiàn)了,本以為與在同一片STM32上做SPI主、從機(jī)通信一樣,以為挺簡(jiǎn)單的,但是實(shí)際做起來還是遇到了不少問題,比如出現(xiàn)數(shù)據(jù)移位、多出了一些數(shù)據(jù)等問題。下面簡(jiǎn)單分享一下實(shí)現(xiàn)過程:

一、整體框圖及說明

這里使用STM32F429IGT6作為主機(jī),STM32F103ZET6作為從機(jī),都配置為全雙工。本例要實(shí)現(xiàn)的功能就是主、從機(jī)之間的數(shù)據(jù)互傳。

主機(jī)往從機(jī)發(fā)送的數(shù)據(jù)為:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

從機(jī)往主機(jī)發(fā)送的數(shù)據(jù)為:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

二、關(guān)鍵代碼

主機(jī)關(guān)鍵代碼:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

從機(jī)關(guān)鍵代碼:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

可見,主機(jī)與從機(jī)的代碼大多都一樣。只是從機(jī)多了一步啟動(dòng)傳輸?shù)牟僮鳎@一步很關(guān)鍵,少了這一步傳輸就不正常。這是為了制造主機(jī)發(fā)送的同時(shí)也要接收到數(shù)據(jù)的條件。這一點(diǎn)參考手冊(cè)里也有相關(guān)說明:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

此處,要營造這樣的條件,必須先啟動(dòng)從機(jī),然后再啟動(dòng)主機(jī)。只有保證主機(jī)發(fā)送的同時(shí)有接收到數(shù)據(jù),才能保證其時(shí)序的正常,否則可能會(huì)產(chǎn)生數(shù)據(jù)錯(cuò)位,或者會(huì)產(chǎn)生多余數(shù)據(jù)等情況。

三、調(diào)試

我們平時(shí)在做實(shí)際的開發(fā)時(shí),一般很難做到把所有代碼寫完,跑一遍就能成功,都是需要進(jìn)行各個(gè)子模塊的調(diào)試,一步一步來,確保各個(gè)子模塊都沒有問題之后,整體跑起來自然就比較穩(wěn)定。

一些經(jīng)驗(yàn)豐富的軟件工程師常會(huì)教導(dǎo)一些年輕的軟件工程師:在接到一個(gè)開發(fā)任務(wù)之前,先不要急著碼代碼,首先需要明確你這項(xiàng)任務(wù)的需求是什么,把任務(wù)分解成各個(gè)模塊,然后在電腦上或紙上畫出整體框圖,確??驁D的正確性之后,再根據(jù)框圖來編寫代碼、調(diào)試。

此處,我們要調(diào)試SPI主從通信,自然也是這樣分模塊進(jìn)行調(diào)試的:

確認(rèn)主機(jī)是否能正確發(fā)送數(shù)據(jù)

確認(rèn)從機(jī)是否能正確發(fā)送數(shù)據(jù)(返回?cái)?shù)據(jù)給從機(jī))

確認(rèn)從機(jī)是否接收到主機(jī)發(fā)過來的數(shù)據(jù)

確認(rèn)主機(jī)是否接收到從機(jī)發(fā)過來的數(shù)據(jù)

若這幾個(gè)點(diǎn)明確了,都沒問題之后。就可以明確我們的SPI主、從機(jī)的基本通訊沒有問題了,之后就可以進(jìn)行我們的協(xié)議方面處理了(本例中沒有這一部分)。下面分別看一些這幾個(gè)點(diǎn):

1、確認(rèn)主機(jī)是否能正確發(fā)送數(shù)據(jù)

方法:使用邏輯分析儀捕捉主機(jī)的MOSI、SCK這兩條信號(hào)線,查看其波形。實(shí)際測(cè)得地結(jié)果如下:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

其中,白色為SCK信號(hào)線波形,橙色為MOSI信號(hào)線波形。顯然,從MOSI波形可以看出其與我們主機(jī)發(fā)送的數(shù)據(jù)一致,自然就可以確認(rèn)主機(jī)發(fā)送數(shù)據(jù)沒問題了。

此處,細(xì)心的朋友可能會(huì)發(fā)現(xiàn)時(shí)鐘線波形的兩個(gè)數(shù)據(jù)交互處的高電平總是寬一些,這里我們的SPI傳輸數(shù)據(jù)的位數(shù)設(shè)置為8bit,則每一個(gè)數(shù)據(jù)對(duì)應(yīng)的第8位對(duì)應(yīng)的時(shí)鐘信號(hào)的高電平總會(huì)長一些;若我們的SPI傳輸數(shù)據(jù)的位數(shù)配置為16位,則第16位對(duì)應(yīng)的時(shí)鐘信號(hào)的高電平總會(huì)長一些。

出現(xiàn)這個(gè)現(xiàn)象其實(shí)與我們的代碼是有一定關(guān)系的。實(shí)際測(cè)試中發(fā)現(xiàn)是因?yàn)槲覀冇脀hile循環(huán)來做邏輯處理的問題,想辦法把while等待替換為if判斷,就可以改善這個(gè)問題。但是考慮到這并不會(huì)影響我們的數(shù)據(jù),并且另一方面還有助于我們分析波形,所以使用while。

2、確認(rèn)從機(jī)是否能正確發(fā)送數(shù)據(jù)(返回?cái)?shù)據(jù)給從機(jī))

使用邏輯分析儀來捕捉MISO的波形,其波形如下(此處只捕捉了數(shù)據(jù)波形):

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

顯然,我們的從機(jī)發(fā)送數(shù)據(jù)也是沒問題的。

3、確認(rèn)從機(jī)是否接收到主機(jī)發(fā)過來的數(shù)據(jù)

這里使用在線調(diào)試的方法檢測(cè)從機(jī)的接收buf,結(jié)果如下:

兩塊STM32之間SPI通訊進(jìn)行的注意事項(xiàng)

顯然,從機(jī)收到的數(shù)據(jù)與主機(jī)發(fā)送的數(shù)據(jù)一致,說明從機(jī)接收也是沒有問題的。由于手頭里只有一個(gè)仿真器,所以也就沒有同時(shí)監(jiān)測(cè)主機(jī)的接收buf,監(jiān)視主機(jī)的接收buf與監(jiān)視從機(jī)的方法是一樣的。

四、調(diào)試過程需要注意的問題

1、兩塊板子一定要共地。

2、兩塊板子的MOSI與MISO不需要交叉連接。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10924

    瀏覽量

    357599
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1722

    瀏覽量

    92139
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    智多晶DDR Controller使用注意事項(xiàng)

    最后一期我們主要介紹智多晶DDR Controller使用時(shí)的注意事項(xiàng)
    的頭像 發(fā)表于 01-24 11:14 ?205次閱讀
    智多晶DDR Controller使用<b class='flag-5'>注意事項(xiàng)</b>

    多層板埋孔設(shè)計(jì)注意事項(xiàng)

    多層板埋孔設(shè)計(jì)注意事項(xiàng)
    的頭像 發(fā)表于 12-20 16:06 ?287次閱讀

    脈沖式充電器的使用注意事項(xiàng)

    脈沖式充電器的使用注意事項(xiàng)主要包括以下幾個(gè)方面: 一、安全注意事項(xiàng) 用電安全 :在充電過程中,應(yīng)始終保持警惕,注意用電安全,避免觸電和短路等危險(xiǎn)情況的發(fā)生。 防火防災(zāi) :避免在易燃易爆物品附近
    的頭像 發(fā)表于 09-26 16:05 ?1124次閱讀

    繞線電感定制的注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《繞線電感定制的注意事項(xiàng).docx》資料免費(fèi)下載
    發(fā)表于 09-20 11:24 ?0次下載

    對(duì)電源模塊進(jìn)行焊接的注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《對(duì)電源模塊進(jìn)行焊接的注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:07 ?0次下載
    對(duì)電源模塊<b class='flag-5'>進(jìn)行</b>焊接的<b class='flag-5'>注意事項(xiàng)</b>

    如何檢測(cè)INA118的好壞?INA118在使用中還有哪些注意事項(xiàng)?

    我是個(gè)剛剛接觸模擬電路的小白,最近在嘗試做一個(gè)微安級(jí)恒流源出來。方案使用了INA118作為差分放大器,但是從中發(fā)買的三芯片,有兩塊輸出的電壓始終小于輸入電壓;而第三雖然能夠隨著Rg的變動(dòng)而變動(dòng)
    發(fā)表于 09-18 06:41

    使用環(huán)形接線片熱敏電阻進(jìn)行散熱器監(jiān)測(cè)的設(shè)計(jì)注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《使用環(huán)形接線片熱敏電阻進(jìn)行散熱器監(jiān)測(cè)的設(shè)計(jì)注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 09-05 10:54 ?0次下載
    使用環(huán)形接線片熱敏電阻<b class='flag-5'>進(jìn)行</b>散熱器監(jiān)測(cè)的設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    共模電感定制的注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《共模電感定制的注意事項(xiàng).docx》資料免費(fèi)下載
    發(fā)表于 09-04 11:47 ?0次下載

    LiFePO4設(shè)計(jì)注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《LiFePO4設(shè)計(jì)注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 09-03 09:24 ?0次下載
    LiFePO4設(shè)計(jì)<b class='flag-5'>注意事項(xiàng)</b>

    調(diào)試STM32F405兩塊處理器間的SPI通訊,如果全速運(yùn)行,數(shù)據(jù)一直是0怎么解決?

    本人最近正正在調(diào)試STM32F405兩塊處理器間的SPI通訊,主片的發(fā)送程序已調(diào)好,功能是循環(huán)發(fā)送1-100的數(shù)字(數(shù)據(jù)格式為16位),從機(jī)的數(shù)據(jù)接收打算采用中斷的方式用一個(gè)數(shù)組去接收
    發(fā)表于 05-16 07:43

    鉗形電流表的使用方法和注意事項(xiàng)

    鉗形電流表,作為電氣測(cè)量和測(cè)試的重要工具,其使用方法和注意事項(xiàng)對(duì)于保障測(cè)量結(jié)果的準(zhǔn)確性和操作人員的安全至關(guān)重要。本文將從鉗形電流表的使用方法和注意事項(xiàng)個(gè)方面進(jìn)行詳細(xì)闡述,以期為讀者提
    的頭像 發(fā)表于 05-14 16:14 ?3758次閱讀

    FMD LINK 使用注意事項(xiàng)

    電子發(fā)燒友網(wǎng)站提供《FMD LINK 使用注意事項(xiàng).pdf》資料免費(fèi)下載
    發(fā)表于 05-06 10:11 ?0次下載

    請(qǐng)問STM32對(duì)過濾器編號(hào)時(shí)有哪些注意事項(xiàng)?

    STM32對(duì)過濾器編號(hào)時(shí)有哪些注意事項(xiàng)?
    發(fā)表于 04-12 08:23

    項(xiàng)目開發(fā)時(shí)能不能同時(shí)用兩塊芯片,比如一stm32WB一stm32F4?

    請(qǐng)問項(xiàng)目開發(fā)時(shí)能不能同時(shí)用兩塊芯片,比如一stm32WB,一stm32F4?
    發(fā)表于 03-20 08:22

    使用ST-LINK對(duì)STM32G030K8T6TR進(jìn)行燒錄,有什么特別注意事項(xiàng)嗎?

    燒錄時(shí)有什么特別注意事項(xiàng)嗎? 3)另外STM32G030K8T6TR的GPIO口內(nèi)部是否有帶上拉到VDD的保護(hù)二極管?GPIO口可承受的最大電壓是多少?
    發(fā)表于 03-12 06:32
    主站蜘蛛池模板: 自偷自拍亚洲欧美清纯唯美 | 亚洲一区精品中文字幕 | 午夜国产精品理论片久久影院 | a欧美视频 | 国内精品久久久久久久久野战 | 国产午夜大片 | 神马三级我不卡 | 久久天天躁狠狠躁夜夜躁 | 国内一国产农村妇女一级毛片 | 91极品女神嫩模在线播放 | 72种姿势欧美久久久久大黄蕉 | 亚洲综合久久久久久888 | 亚洲天天综合网 | 国产免费成人在线视频 | 亚洲色图在线观看视频 | 国产亚洲网站 | 免费视频爰爱太爽了 | 69re在线观看 | h小视频在线观看 | 一夜七次郎久久综合伊人 | 毛片色毛片18毛片美女 | 天天干天天舔天天操 | 91高清在线成人免费观看 | 特级毛片永久久免费观看 | 亚洲 另类 在线 欧美 制服 | 中文字幕天堂在线 | 婷婷综合激六月情网 | 亚洲综合资源 | 国产欧美乱码在线看 | luxu259在线中文字幕 | 噜噜噜噜天天狠狠 | 免费国产网站 | 日本黄色片免费看 | 九九re热 | 亚洲电影一区二区三区 | 久久综合久久88 | 高清成人| 亚洲欧美色一区二区三区 | 在线观看www妖精免费福利视频 | 美女天天干 | 免费在线观看一级片 |