女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 作者:黃工的嵌入式技術(shù) ? 2020-01-14 16:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

本示例的大致過程是這樣的:

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

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

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

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

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

開啟基于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è)配置中,開啟了相關(guān)事件的DMA請(qǐng)求,匯總?cè)缦聢D。

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

當(dāng)完成基于STM32CubeMx的初始化配置并生產(chǎn)初始化代碼后,我們準(zhǔn)備相應(yīng)的用戶代碼。這里準(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)操作。下面兩幅截圖是本示例中使用到的用戶代碼,是基于STM32Cube固件庫而編寫的。應(yīng)該說簡單明了,無須過多解釋。

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)下的通過觀察窗口得到的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固件庫開發(fā),不一定能找到完整的現(xiàn)存例程,我們可能需要基于現(xiàn)有驅(qū)動(dòng)代碼自行組織用戶程序。

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

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

聲明:本文內(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)注

    2292

    文章

    11027

    瀏覽量

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

    關(guān)注

    17

    文章

    1794

    瀏覽量

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

    關(guān)注

    23

    文章

    3298

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    stm32H743定時(shí)器溢出的原因?怎么解決?

    我利用定時(shí)器更新中斷實(shí)現(xiàn)軟件計(jì)時(shí),定時(shí)時(shí)間是固定的按照{(diào)10ms, 20ms,650ms, 50ms,50ms}周期性進(jìn)行的。由于下一次的計(jì)時(shí)時(shí)間是需要在定時(shí)器的中斷處理函數(shù)中更新的,定時(shí)器
    發(fā)表于 06-23 08:26

    MCU定時(shí)器/計(jì)數(shù)

    RISC-V核低功耗MCU通過靈活的定時(shí)器架構(gòu)、低功耗模式適配及硬件級(jí)中斷優(yōu)化,在工業(yè)控制、智能家居等場(chǎng)景中實(shí)現(xiàn)高精度計(jì)時(shí)與能耗控制的協(xié)同設(shè)計(jì),滿足復(fù)雜任務(wù)調(diào)度與實(shí)時(shí)響應(yīng)的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?245次閱讀

    STM32定時(shí)器基本原理及常見問題培訓(xùn)資料

    STM32 定時(shí)器基本原理及常見問題培訓(xùn)資料v3.10 時(shí)基單元、捕捉比較功能、主從觸發(fā)與級(jí)聯(lián)、案例分享 培訓(xùn)內(nèi)容:
    發(fā)表于 04-08 16:26

    使用stm32f405做6步pwm輸出時(shí),定時(shí)器配置由強(qiáng)制輸出轉(zhuǎn)為pwm,com觸發(fā)后會(huì)有延遲生效的現(xiàn)象,怎么解決?

    我在使用stm32f405做6步pwm輸出時(shí)發(fā)現(xiàn),定時(shí)器的配置由pwm改為強(qiáng)制輸出后會(huì)在com觸發(fā)時(shí)立即生效,但是定時(shí)器配置由強(qiáng)制輸出轉(zhuǎn)為pwm,com
    發(fā)表于 03-13 07:24

    STM32Cube配置RTOS時(shí)定時(shí)器如何選擇?

    STM32Cube配置RTOS時(shí)定時(shí)器如何選擇
    發(fā)表于 03-07 08:47

    定時(shí)器已安排!開發(fā)小白看過來~

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

    看門狗定時(shí)器的工作原理

    看門狗定時(shí)器是一種獨(dú)立的計(jì)時(shí)硬件模塊,其核心功能是倒計(jì)時(shí)。如果系統(tǒng)軟件在計(jì)時(shí)超時(shí)前沒有對(duì)其進(jìn)行復(fù)位操作(即“喂狗”),看門狗將觸發(fā)一個(gè)預(yù)定義的動(dòng)作,通常是系統(tǒng)復(fù)位或中斷。
    的頭像 發(fā)表于 10-21 14:18 ?1224次閱讀
    看門狗<b class='flag-5'>定時(shí)器</b>的工作原理

    定時(shí)器自動(dòng)控制開關(guān)怎么設(shè)置

    定時(shí)器自動(dòng)控制開關(guān)是一種常見的自動(dòng)化設(shè)備,廣泛應(yīng)用于家庭、工業(yè)、農(nóng)業(yè)等多個(gè)領(lǐng)域。通過定時(shí)器,用戶可以預(yù)設(shè)時(shí)間,讓設(shè)備在特定時(shí)間自動(dòng)開啟或關(guān)閉,從而實(shí)現(xiàn)節(jié)能、提高效率和便利性。 一、定時(shí)器
    的頭像 發(fā)表于 09-19 16:19 ?3907次閱讀

    stm32怎樣觸發(fā)軟件中斷

    了解STM32中斷系統(tǒng) STM32微控制器具有豐富的中斷系統(tǒng),包括NVIC(嵌套向量中斷控制)和SYSTICK定時(shí)器。NVIC可以處理多達(dá)240個(gè)中斷源,包括外部中斷和內(nèi)部中斷。 配
    的頭像 發(fā)表于 09-02 09:32 ?1816次閱讀

    定時(shí)器的基本組成和工作模式

    定時(shí)器是計(jì)算機(jī)或電子設(shè)備中常見的一個(gè)硬件或軟件組件,其主要功能是測(cè)量和控制時(shí)間的流逝。它在各種應(yīng)用中起著至關(guān)重要的作用,如操作系統(tǒng)調(diào)度、多媒體播放、網(wǎng)絡(luò)通信、工業(yè)自動(dòng)化控制以及家電設(shè)備的定時(shí)功能等。定時(shí)器的工作原理基于時(shí)序控制,
    的頭像 發(fā)表于 08-19 18:28 ?2714次閱讀

    SPI數(shù)據(jù)速率影響定時(shí)器中斷,問題出在哪里?

    你好,在我的項(xiàng)目中,我使用了 Psoc6 的 DMA(2 條數(shù)據(jù)線)和 SPI PDL。 此外,還有一個(gè)定時(shí)器(通過 HAL 實(shí)現(xiàn))不斷觸發(fā)中斷。 當(dāng)相應(yīng)的 ISR 執(zhí)行到規(guī)定次數(shù)時(shí),收集到的數(shù)據(jù)
    發(fā)表于 07-23 07:07

    定時(shí)器的工作方式介紹

    定時(shí)器是計(jì)算機(jī)和嵌入式系統(tǒng)中常見的一種硬件模塊,用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。定時(shí)器的工作方式通常由一組寄存來控制,這些寄存定義了
    的頭像 發(fā)表于 07-12 10:29 ?1917次閱讀

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

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

    tc397如何使用定時(shí)器的更新事件來觸發(fā)dma搬運(yùn)數(shù)據(jù)?

    請(qǐng)問有沒有人使用過定時(shí)器的更新事件來觸發(fā)dma搬運(yùn)數(shù)據(jù),或者哪里有相關(guān)的示例代碼,我不知道應(yīng)該使用gtm模塊的哪個(gè)子模塊來做這件事情,有經(jīng)驗(yàn)的大佬可否指教下。
    發(fā)表于 07-05 06:36