色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

關(guān)于STM32定時(shí)器觸發(fā)SPI逐字收發(fā)之應(yīng)用示例

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-01-14 16:35 ? 次閱讀

我們?cè)谧鯯PI應(yīng)用時(shí),有時(shí)希望通過(guò)定時(shí)器來(lái)定時(shí)地觸發(fā)SPI的收發(fā),并利用DMA完成數(shù)據(jù)的傳輸。這里,以STM32L476芯片為例來(lái)做個(gè)演示,以供參考。

本示例的大致過(guò)程是這樣的:

片內(nèi)SPI1做Master,SPI2做Slave,均工作在全雙工模式。

這里使用片內(nèi)定時(shí)器TIM3,通過(guò)它的更新事件觸發(fā)DMA請(qǐng)求,通過(guò)DMA將數(shù)據(jù)給到SPI1的數(shù)據(jù)寄存器并發(fā)送出去,同時(shí)也開(kāi)啟SPI1接收事件的DMA傳輸。總之,SPI2的收、發(fā)事件都啟用DMA完成。

TIM3的更新事件周期控制兩個(gè)SPI的收發(fā)節(jié)奏,即定時(shí)器每產(chǎn)生一次更新事件,SPI1/SPI2這兩個(gè)主從通信模塊就進(jìn)行一個(gè)數(shù)據(jù)的收發(fā)。我們可以通過(guò)調(diào)整定時(shí)器的計(jì)時(shí)周期來(lái)調(diào)整數(shù)據(jù)收發(fā)的快慢。

好,先基于STM32CubeMx進(jìn)行初始化配置。

1. 對(duì)TIM3做基本配置。選擇時(shí)鐘源,先大致估算個(gè)定時(shí)器計(jì)時(shí)周期,調(diào)試時(shí)我們可以自行靈活調(diào)整。

開(kāi)啟基于TIM3更新事件的DMA配置。傳輸方向是從Memory 到 外設(shè)SPI1,即將內(nèi)存數(shù)據(jù)傳輸?shù)絊PI1的數(shù)據(jù)寄存器進(jìn)行數(shù)據(jù)發(fā)送,這里選用循環(huán)模式,以便測(cè)試。

2. 對(duì)SPI1/SPI2進(jìn)行基本配置。細(xì)節(jié)請(qǐng)參看下面三幅截圖。

3、DMA的配置情況。

在TIM3和SPI1/SPI2外設(shè)配置中,開(kāi)啟了相關(guān)事件的DMA請(qǐng)求,匯總?cè)缦聢D。

4、準(zhǔn)備用戶(hù)代碼。

當(dāng)完成基于STM32CubeMx的初始化配置并生產(chǎn)初始化代碼后,我們準(zhǔn)備相應(yīng)的用戶(hù)代碼。這里準(zhǔn)備了4個(gè)內(nèi)存數(shù)組,分別用于存放SPI1/SPI2的收發(fā)數(shù)據(jù)。

在定時(shí)器的觸發(fā)下,Master SPI1逐字的向Slave SPI2發(fā)送“Hello! I AM STM32!”,Slave SPI2也逐字的向Master回應(yīng)“HI,MASTER,ME TOO!”,這樣循環(huán)操作。下面兩幅截圖是本示例中使用到的用戶(hù)代碼,是基于STM32Cube固件庫(kù)而編寫(xiě)的。應(yīng)該說(shuō)簡(jiǎn)單明了,無(wú)須過(guò)多解釋。

5、結(jié)果驗(yàn)證。

下面的截圖是兩個(gè)不同時(shí)刻SPI通信時(shí)的信號(hào)波形圖。其中,紫色的是時(shí)鐘信號(hào),綠色、黃色是數(shù)據(jù)信號(hào)。兩個(gè)數(shù)據(jù)信號(hào)間的時(shí)間間隔由定時(shí)器的更新周期決定。

下面的截圖是在調(diào)試狀態(tài)下的通過(guò)觀察窗口得到的SPI1/SPI2分別從對(duì)方收到的數(shù)據(jù),即SPI2收到的數(shù)據(jù)是“HELLO,I AM STM32!”,SPI1收到的數(shù)據(jù)則是“HI,MASTER,ME TOO!”

整體上講,上述應(yīng)用的實(shí)現(xiàn)不難,可能稍微有點(diǎn)綜合性。

要實(shí)現(xiàn)上述應(yīng)用,首先要求我們對(duì)DMA傳輸?shù)脑碛星逦牧私猓|發(fā)事件,傳輸源、傳輸目標(biāo)幾個(gè)概念及關(guān)系要弄清楚。

另外,即使我們基于STM32固件庫(kù)開(kāi)發(fā),不一定能找到完整的現(xiàn)存例程,我們可能需要基于現(xiàn)有驅(qū)動(dòng)代碼自行組織用戶(hù)程序。

還有,在上面示例代碼中,我沒(méi)有開(kāi)啟DMA的中斷事件,我們?cè)诰唧w應(yīng)用中可以根據(jù)情況來(lái)決定是否啟用DMA中斷,比方開(kāi)啟傳輸完成中斷等。

最后順便提醒下,這里我們基于定時(shí)器事件的DMA請(qǐng)求而自行指定DMA的源端和目的端,?一定要保證是該觸發(fā)事件所請(qǐng)求的DMA可以到達(dá)的地方。建議編程設(shè)計(jì)前最好查看下相關(guān)芯片數(shù)據(jù)手冊(cè)里的芯片模塊及總線(xiàn)框架圖,不然的話(huà),有時(shí)你可能遇到你指定的DMA根本就不正常運(yùn)作的情況。

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

    關(guān)注

    2270

    文章

    10921

    瀏覽量

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

    關(guān)注

    17

    文章

    1721

    瀏覽量

    91923
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3255

    瀏覽量

    115153
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    定時(shí)器已安排!開(kāi)發(fā)小白看過(guò)來(lái)~

    或周期性地執(zhí)行代碼段,為物聯(lián)網(wǎng)設(shè)備的運(yùn)行提供了精確的時(shí)間控制。在多種應(yīng)用場(chǎng)景中都發(fā)揮著重要作用,例如:定時(shí)發(fā)送數(shù)據(jù)、周期性檢查傳感狀態(tài)等。 Air201最新資料下載: www.air201.cn 本文將通過(guò)demo示例,帶你了
    的頭像 發(fā)表于 12-31 14:30 ?117次閱讀
    <b class='flag-5'>定時(shí)器</b>已安排!開(kāi)發(fā)小白看過(guò)來(lái)~

    定時(shí)器相關(guān)的寄存有哪些類(lèi)型

    在微控制編程中,定時(shí)器是一種非常常見(jiàn)的功能模塊,用于實(shí)現(xiàn)各種定時(shí)和計(jì)數(shù)功能。定時(shí)器的工作原理是通過(guò)內(nèi)部的計(jì)數(shù)來(lái)跟蹤時(shí)間的流逝,當(dāng)計(jì)數(shù)
    的頭像 發(fā)表于 07-12 10:25 ?1038次閱讀

    關(guān)于定時(shí)器觸發(fā)ADC連續(xù)采樣dma傳輸?shù)囊蓡?wèn)求解?

    。 我想問(wèn)兩個(gè)問(wèn)題: 第一:我上述的采樣思路是否存在錯(cuò)誤,因?yàn)槲疫@幾天寫(xiě)該程序的時(shí)候,從會(huì)有各種bug導(dǎo)致ESP32-S2重啟(多數(shù)為開(kāi)門(mén)狗超時(shí)) 第二:stm32具有定時(shí)器觸發(fā)連續(xù)采樣的功能,我更想
    發(fā)表于 06-14 07:25

    CW32使用DMA單通道、定時(shí)器觸發(fā)ADC實(shí)現(xiàn)了多路AD采集

    本測(cè)試樣例基于CW32F030C8T6MCU,使用DMA單通道、定時(shí)器觸發(fā)ADC實(shí)現(xiàn)了12路AD采集。
    的頭像 發(fā)表于 05-24 09:29 ?884次閱讀
    CW32使用DMA單通道、<b class='flag-5'>定時(shí)器</b><b class='flag-5'>觸發(fā)</b>ADC實(shí)現(xiàn)了多路AD采集

    stm32定時(shí)器的如何外部啟動(dòng)?

    我想利用stm32定時(shí)器精確定時(shí)一個(gè)信號(hào)從發(fā)生到結(jié)束的時(shí)間,想讓定時(shí)器通過(guò)外部觸發(fā)開(kāi)啟,一般有什么方法。
    發(fā)表于 05-10 06:40

    求助,關(guān)于STM32定時(shí)器級(jí)聯(lián)做計(jì)數(shù)的問(wèn)題求解

    最近在做一個(gè)設(shè)計(jì),使用STM32L1的定時(shí)器做一個(gè)大的計(jì)數(shù),每當(dāng)外部PPS信號(hào)進(jìn)來(lái)后,利用捕獲功能來(lái)計(jì)算捕獲值。這個(gè)計(jì)數(shù)是采用定時(shí)器級(jí)聯(lián)
    發(fā)表于 05-10 06:15

    請(qǐng)問(wèn)如何使用定時(shí)器的更新事件觸發(fā)DMA讀取6字節(jié)SPI數(shù)據(jù)?

    想用定時(shí)器的更新事件觸發(fā)DMA讀取SPI數(shù)據(jù),現(xiàn)在有個(gè)問(wèn)題是一次更新事件只能觸發(fā)一次DMA傳輸,我想要定時(shí)器
    發(fā)表于 03-29 06:16

    STM32G030定時(shí)器16 17和1同步輸出如何實(shí)現(xiàn)?

    STM32G030系列中只有定時(shí)器1 16和17三個(gè)定時(shí)器可以輸出帶死區(qū)時(shí)間互補(bǔ)pwm,我想實(shí)現(xiàn)其中兩個(gè)或者3個(gè)同步輸出,請(qǐng)問(wèn)如何實(shí)現(xiàn),我查了好像只有定時(shí)器1才能支持
    發(fā)表于 03-27 06:45

    如果STM32定時(shí)器外接了正交編碼,該剩余通道是否能做PWM輸出呢?

    其實(shí),對(duì)于STM32芯片,編碼輸入信號(hào)就是定時(shí)器的計(jì)數(shù)時(shí)鐘源之一。定時(shí)器外接了編碼輸入,若還有剩余通道的話(huà),剩余通道依然可以實(shí)現(xiàn)輸入捕獲或輸出比較功能。
    的頭像 發(fā)表于 03-21 09:06 ?1930次閱讀
    如果<b class='flag-5'>STM32</b><b class='flag-5'>定時(shí)器</b>外接了正交編碼<b class='flag-5'>器</b>,該剩余通道是否能做PWM輸出呢?

    STM32L0使用定時(shí)器上升沿觸發(fā)ADC采樣時(shí),采樣頻率如何確定?

    我想問(wèn)一下,在使用定時(shí)器上升沿觸發(fā)ADC采樣時(shí),采樣頻率如何確定,是定時(shí)器頻率就等于ADC采樣頻率嗎?用的是STM32L0
    發(fā)表于 03-20 06:37

    STM32U575定時(shí)器PWM觸發(fā)DMA搬運(yùn)內(nèi)存時(shí),為什么程序在DMA中斷里出不來(lái)?

    STM32U575 定時(shí)器PWM觸發(fā)DMA搬運(yùn)內(nèi)存,為什么程序在DMA中斷里出不來(lái)?
    發(fā)表于 03-12 08:33

    使用555定時(shí)器的可調(diào)雙定時(shí)器電路

    定時(shí)器 IC 555 是最通用和最常用的 IC 之一,因?yàn)樗膽?yīng)用范圍更廣,如 PWM放大器、延遲定時(shí)器、開(kāi)關(guān)電路、占空比選擇、時(shí)鐘脈沖發(fā)生等。這也可用于各種應(yīng)用,如精確
    的頭像 發(fā)表于 02-25 15:16 ?2357次閱讀
    使用555<b class='flag-5'>定時(shí)器</b>的可調(diào)雙<b class='flag-5'>定時(shí)器</b>電路

    使用555定時(shí)器的報(bào)警電路圖

    555定時(shí)器是一種集成電路芯片,常被用于定時(shí)器、脈沖產(chǎn)生和振蕩電路。555可被作為電路中的延時(shí)器件、觸發(fā)器或起振元件。
    的頭像 發(fā)表于 02-02 11:14 ?5801次閱讀
    使用555<b class='flag-5'>定時(shí)器</b>的報(bào)警<b class='flag-5'>器</b>電路圖

    如何使用定時(shí)器觸發(fā)器進(jìn)行SPI DMA傳輸?

    我正在做一個(gè)項(xiàng)目,在這個(gè)項(xiàng)目中,我必須在 DMA 模式下通過(guò) SPI 定期傳輸數(shù)據(jù)。 為了避免 CPU 干預(yù),我想使用計(jì)時(shí)觸發(fā)器觸發(fā) SPI
    發(fā)表于 01-30 08:08

    定時(shí)器原理能控制馬達(dá)嗎為什么

    定時(shí)控制。 定時(shí)器的工作原理是基于內(nèi)部的振蕩電路,通過(guò)穩(wěn)定的時(shí)鐘信號(hào)來(lái)觸發(fā)或計(jì)時(shí)特定的事件。常見(jiàn)的定時(shí)器電路有555定時(shí)器和微控制
    的頭像 發(fā)表于 01-23 15:21 ?714次閱讀
    主站蜘蛛池模板: 不卡一区二区高清观看视频| 国内精品日本久久久久影院| 免费国产在线观看| 99热免费精品店| 日本三区四区免费高清不卡| 国产精品久久久久久久久齐齐 | 俄罗斯1819y0u| 亚洲国产在线视频中文字| 蜜芽tv在线www| 国产色婷婷精品人妻蜜桃成熟| 最近中文字幕完整版高清| 日韩无码在线| 久久性生大片免费观看性| 岛国大片在线观看免费版| 伊人久久国产| 三级中国免费的| 精品一二三区久久AAA片| 成年黄网站免费大全毛片| 亚洲中文字幕无码爆乳APP| 日本熟妇乱妇熟色A片蜜桃| 久久99re8热在线播放| 成人免费无毒在线观看网站| 亚洲在线国产日韩欧美| 日本美女论坛| 菊地凛子av| 国产偷国产偷亚洲高清app| 99国产精品久久人妻无码| 小舞被爆操| 欧美极品尿交| 久久免费视频| 国产免费69成人精品视频| av在线观看网站免费| 一个人在线观看免费高清视频在线观看 | 久久偷拍国2017| 国产精品嫩草久久久久| 日日干夜夜啪蕉视频| 色欲AV亚洲午夜精品无码| 亚洲区 bt下载| 操中国老太太| 久久99热这里只有精品66| 日韩精品免费在线观看|