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

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

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

3天內不再提示

基于STM32L476芯片來做個演示

茶話MCU ? 來源:ST MCU 信息交流 ? 2019-11-20 14:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們在做SPI應用時,有時希望通過定時器定時地觸發SPI的收發,并利用DMA完成數據的傳輸。這里,我基于STM32L476芯片來做個演示,以供參考【為什么選用32L476,其實沒啥特別原因,只是順手找了塊Nucleo板】。

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

片內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的收發數據。

在定時器的觸發下,主SPI1逐字的向從SPI2發送“Hello! I AM STM32!”,從SPI2也逐字的向主SPI1回應“HI,MASTER,ME TOO!”,就這樣循環操作。

下面兩幅圖是本示例中使用到的用戶代碼截圖,是基于STM32Cube固件庫而編寫的。應該說簡單明了,無須多做解釋。

5、結果驗證。

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

下面的截圖是在調試狀態下的通過觀察窗口得到的SPI1/SPI2分別從對方收到的內容。

最后小結下。整體上講上述應用的實現不難,稍微有點綜合性。

要實現上述應用,首先要求我們對DMA傳輸的原理有清晰的了解,觸發事件,傳輸源、傳輸目標幾個概念及關系要弄清楚。另外,即使我們基于STM32固件庫開發,不一定能找到完完整整的現存代碼,我們可能需要基于現有驅動代碼自行組織用戶程序。還有,在上面示例代碼中,我沒有開啟DMA的中斷事件,我們在具體應用中可以根據情況來決定是否啟用DMA中斷,比方開啟傳輸完成中斷等。順便提醒下,這里我們基于定時器事件自行指定DMA的源端和目的端,?一定要保證是該觸發事件所請求的DMA可以到達的地方,編程設計前最好查看下相關芯片數據手冊里的芯片模塊及總線框架圖。

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

    關注

    463

    文章

    54010

    瀏覽量

    466139
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373471
  • 定時器
    +關注

    關注

    23

    文章

    3368

    瀏覽量

    123644

原文標題:STM32定時器觸發SPI逐字收發之應用示例

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM32L072xx:超低功耗32位MCU的設計指南與應用潛力

    STM32L072xx:超低功耗32位MCU的設計指南與應用潛力 在當今電子設備追求低功耗、高性能的時代,STM32L072xx系列微控制器憑借其卓越的特性脫穎而出,成為眾多應用領域的理想選擇。本文
    的頭像 發表于 03-02 17:15 ?587次閱讀

    STM32L062x8:超低功耗32位MCU的卓越之選

    STM32L062x8:超低功耗32位MCU的卓越之選 在當今的電子設計領域,低功耗、高性能的微控制器(MCU)是眾多應用的核心需求。STMicroelectronics推出的STM32L
    的頭像 發表于 03-02 15:20 ?114次閱讀

    STM32L072xx系列微控制器:低功耗設計的優選之選

    STM32L072xx系列微控制器:低功耗設計的優選之選 在當今的電子設備設計中,低功耗、高性能的微控制器是眾多工程師追求的目標。STMicroelectronics推出的STM32L072xx系列
    的頭像 發表于 02-28 11:35 ?265次閱讀

    探索SCANSTA476:低功耗模擬電壓監測器的卓越之選

    探索SCANSTA476:低功耗模擬電壓監測器的卓越之選 在電子設計領域,精準的電壓監測至關重要,它是保障電子設備穩定運行的關鍵因素之一。德州儀器(TI)的SCANSTA476作為一款低功耗的模擬
    的頭像 發表于 12-29 17:40 ?594次閱讀

    STM32L476低功耗怎么做啊

    STM32L476低功耗怎么做啊
    發表于 11-11 16:48

    PM組件低功耗定時器動態補償后,進入stop2無法喚醒怎么處理?

    版本5.1.0,采用STM32L476結合pm組件做低功耗管理,開啟了低功耗定時器動態補償時鐘,但是發現發現一旦開啟低功耗定時器補償時鐘,進入休眠后mcu就無法在被喚醒,嘗試在io外部中斷請求中
    發表于 09-10 07:24

    昂科燒錄器支持ST意法半導體的超低功耗微控制器STM32L476RCT

    昂科技術作為芯片燒錄領域的領導者,在其新版燒錄軟件發布之際,宣布擴展了兼容芯片型號列表。新增型號包含了意法半導體的超低功耗微控制器STM32L476RCT。目前,該芯片已獲得昂科通用燒
    的頭像 發表于 07-21 11:38 ?830次閱讀
    昂科燒錄器支持ST意法半導體的超低功耗微控制器<b class='flag-5'>STM32L476</b>RCT

    STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊

    電子發燒友網站提供《STM32F3系列、STM32F4系列、STM32L4系列和STM32L4+系列Cortex-M4編程手冊.pdf》資料免費下載
    發表于 06-06 17:06 ?17次下載

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示),有需要的同學推薦下載!
    發表于 05-28 21:34

    基于stm32 nucleo_L476的智能燈(操作說明+源碼)

    基于stm32 nucleo_L476的智能燈(操作說明+源碼)推薦下載!
    發表于 05-28 21:29

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示

    基于STM32 人群定位、調速智能風扇設計(程序、設計報告、視頻演示)項目下載! 純分享帖,需要者可點擊附件免費獲取完整資料~~~【免責聲明】本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內容!
    發表于 05-23 20:35

    STM32L476 Flash擦除失敗的原因?

    開發板MCU型號:STM32L476RG 同樣的固件在開發板中flash讀寫擦除操作都沒問題,但在產品中擦除函數返回成功,但flash中的數據其實并沒有擦除。 這兩款MCU在Flash的操作上是否有什么不同?
    發表于 04-23 08:26

    配置STM32H7S3L8芯片時出現沒有下載芯片包的報錯,怎么解決?

    我在配置STM32H7S3L8芯片時出現報錯,大致意思是講我沒有下載芯片包,但是實際我已經下載,我在公司使用了電腦卻沒有這個問題,我的筆記本出現了這個報錯,我將附上筆記本配置圖片以及IDE的問題圖片,重點我已經重裝
    發表于 03-13 08:02

    STM32L476VGT6是否可以通過FMC直接驅動340X240的彩屏?

    STM32L476VGT6是否可以通過FMC直接驅動340X240的彩屏
    發表于 03-11 08:02

    使用STM32L476RCT6 HAL_FLASHEx_Erase()函數,擦除失敗的原因?

    MCU型號: STM32L476RCT6 大家有用過 HAL_FLASHEx_Erase() 這個函數嗎? 我根據官方例程寫的代碼,讀寫都能成功,但是擦除失敗。調用擦除函數
    發表于 03-10 06:14