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

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

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

3天內不再提示

關于STM32定時器觸發SPI逐字收發之應用示例

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

掃碼添加小助手

加入工程師交流群

我們在做SPI應用時,有時希望通過定時器來定時地觸發SPI的收發,并利用DMA完成數據的傳輸。這里,以STM32L476芯片為例來做個演示,以供參考。

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

片內SPI1做Master,SPI2做Slave,均工作在全雙工模式。

這里使用片內定時器TIM3,通過它的更新事件觸發DMA請求,通過DMA將數據給到SPI1的數據寄存器并發送出去,同時也開啟SPI1接收事件的DMA傳輸。總之,SPI2的收、發事件都啟用DMA完成。

TIM3的更新事件周期控制兩個SPI的收發節奏,即定時器每產生一次更新事件,SPI1/SPI2這兩個主從通信模塊就進行一個數據的收發。我們可以通過調整定時器的計時周期來調整數據收發的快慢。

好,先基于STM32CubeMx進行初始化配置。

1. 對TIM3做基本配置。選擇時鐘源,先大致估算個定時器計時周期,調試時我們可以自行靈活調整。

開啟基于TIM3更新事件的DMA配置。傳輸方向是從Memory 到 外設SPI1,即將內存數據傳輸到SPI1的數據寄存器進行數據發送,這里選用循環模式,以便測試。

2. 對SPI1/SPI2進行基本配置。細節請參看下面三幅截圖。

3、DMA的配置情況。

在TIM3和SPI1/SPI2外設配置中,開啟了相關事件的DMA請求,匯總如下圖。

4、準備用戶代碼。

當完成基于STM32CubeMx的初始化配置并生產初始化代碼后,我們準備相應的用戶代碼。這里準備了4個內存數組,分別用于存放SPI1/SPI2的收發數據。

在定時器的觸發下,Master SPI1逐字的向Slave SPI2發送“Hello! I AM STM32!”,Slave SPI2也逐字的向Master回應“HI,MASTER,ME TOO!”,這樣循環操作。下面兩幅截圖是本示例中使用到的用戶代碼,是基于STM32Cube固件庫而編寫的。應該說簡單明了,無須過多解釋。

5、結果驗證。

下面的截圖是兩個不同時刻SPI通信時的信號波形圖。其中,紫色的是時鐘信號,綠色、黃色是數據信號。兩個數據信號間的時間間隔由定時器的更新周期決定。

下面的截圖是在調試狀態下的通過觀察窗口得到的SPI1/SPI2分別從對方收到的數據,即SPI2收到的數據是“HELLO,I AM STM32!”,SPI1收到的數據則是“HI,MASTER,ME TOO!”

整體上講,上述應用的實現不難,可能稍微有點綜合性。

要實現上述應用,首先要求我們對DMA傳輸的原理有清晰的了解,觸發事件,傳輸源、傳輸目標幾個概念及關系要弄清楚。

另外,即使我們基于STM32固件庫開發,不一定能找到完整的現存例程,我們可能需要基于現有驅動代碼自行組織用戶程序。

還有,在上面示例代碼中,我沒有開啟DMA的中斷事件,我們在具體應用中可以根據情況來決定是否啟用DMA中斷,比方開啟傳輸完成中斷等。

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

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

    關注

    2309

    文章

    11162

    瀏覽量

    373432
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1885

    瀏覽量

    101230
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    LM555QML定時器:功能特性、應用及設計要點

    了解一下它。 文件下載: lm555qml.pdf 一、LM555QML簡介 LM555QML是一款可直接替代SE555/NE555的定時器,能實現從微秒到數小時的定時,支持單穩態和無穩態兩種工作模式,并且占空比可調。它額外提供了觸發
    的頭像 發表于 02-10 15:40 ?139次閱讀

    深入解析 LM555 定時器:特性、應用與設計要點

    ,成為電子設計中的經典選。本文將深入剖析 LM555 定時器的特性、應用場景以及設計過程中的注意事項,希望能為工程師們提供有價值的參考。 文件下載: lm555.pdf 二、LM555 定時器的特性 2.1 兼容性強 LM55
    的頭像 發表于 02-10 15:35 ?207次閱讀

    LM555-MIL定時器:高精度定時與振蕩的理想

    LM555-MIL定時器:高精度定時與振蕩的理想選 在電子設計領域,定時器和振蕩是極為關鍵的元件,它們廣泛應用于各種需要精確時間控制的場
    的頭像 發表于 02-09 10:55 ?343次閱讀

    CW32定時器及其中斷介紹

    載計數并由一個可編程預分頻驅動。BTIM 支持定時器模式、計數模式、觸發啟動模式和門控模式 4 種工作模式,支持溢出事件
    發表于 01-14 06:42

    LAT1173高精度定時器的同步功能應用筆記

    STM32G474 所含的高精度定時器(HRTIMER)其實包含了多個定時器,多個定時器之間可以單獨工作,也可以進行同步,且高精度定時器還能
    發表于 01-11 17:32 ?0次下載

    LMH0026:SD SDI重定時器的卓越

    LMH0026:SD SDI重定時器的卓越選 在數字視頻信號處理設備的設計中,選擇一款合適的重定時器至關重要。今天,我們就來深入探討德州儀器(TI)的LMH0026 SD SDI重定時器
    的頭像 發表于 12-27 10:45 ?691次閱讀

    CW32L083的基本定時器

    CW32L083 內部集成 3 個基本定時器 (BTIM),每個 BTIM 完全獨立且功能完全相同,各包含一個 16bit 自動重裝 載計數并由一個可編程預分頻驅動。BTIM 支持定時器
    發表于 12-15 06:23

    CW32定時器及中斷介紹

    載計數并由一個可編程預分頻驅動。BTIM 支持定時器模式、計數模式、觸發啟動模式和門控模式 4 種工作模式,支持溢出事件
    發表于 12-01 07:08

    PWM、定時器、SysTick 區別及應用場景

    在單片機和嵌入式開發中,經常會遇到PWM(脈寬調制)、定時器、SysTick(系統滴答定時器)這幾個詞。很多初學者容易把它們混為一談,以為都是“定時相關的東西”。其實,它們在本質和應用上有明顯差別
    的頭像 發表于 11-17 10:53 ?516次閱讀
    PWM、<b class='flag-5'>定時器</b>、SysTick 區別及應用場景

    SysTick系統滴答定時器簡介

    SysTick—系統定時器是屬于CM33內核中的一個外設,內嵌在NVIC中。系統定時器是一個24bit的向下遞減的計數,計數每計數一次的時間為 1/SYSCLK,一般我們設置系統時
    的頭像 發表于 09-23 09:50 ?1625次閱讀
    SysTick系統滴答<b class='flag-5'>定時器</b>簡介

    定時器同步并行模式

    AT32F4xx定時器同步并行模式 支持型號: AT32F 系列 主要使用外設: TIMER 獲取示例 1 快速使用方法 1.1 硬件資源 AT-START-F403A V1.0 實驗
    發表于 09-22 09:56

    STM32入門篇通用定時器徹底研究

    新手教程,含11個例程,全面剖析TIMER STM32定時器功能很強大,學習起來也很費勁兒,本人在這卡了5天才算看明白。寫下下面的文字送給后來者,希望能帶給你點啟發。在此聲明,本人也是剛入門
    發表于 08-01 16:51

    MCU定時器/計數

    RISC-V核低功耗MCU通過靈活的定時器架構、低功耗模式適配及硬件級中斷優化,在工業控制、智能家居等場景中實現高精度計時與能耗控制的協同設計,滿足復雜任務調度與實時響應的雙重需求?。 一、?硬件
    的頭像 發表于 04-27 13:54 ?776次閱讀

    STM32定時器基本原理及常見問題培訓資料

    STM32 定時器基本原理及常見問題培訓資料v3.10 時基單元、捕捉比較功能、主從觸發與級聯、案例分享 培訓內容:
    發表于 04-08 16:26

    使用stm32f405做6步pwm輸出時,定時器配置由強制輸出轉為pwm,com觸發后會有延遲生效的現象,怎么解決?

    我在使用stm32f405做6步pwm輸出時發現,定時器的配置由pwm改為強制輸出后會在com觸發時立即生效,但是定時器配置由強制輸出轉為pwm,com
    發表于 03-13 07:24