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

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

3天內不再提示

STM32F1 _DMA_USART

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-08 10:23 ? 次閱讀

前言

今天總結“STM32F103DMA_USART”,DMA學習過計算機人都明白它是什么意思,就是直接存儲器存取(Direct Memory Access),很多人都知道它的意思,但基本上不知道的怎么用,或者不知道它的用途。其實DMA在計算機里面是非常重要的,它可以減少CPU的資源。大家都用U盤拷貝過數據,這就是很常見的DMA應用。假如不適用DMA傳輸數據,我們拷貝大文件的時候,我們的電腦操作其他應用程序的時候估計會把電腦卡死。

今天就總結一下DMA常用于串口通信的例子,實例源代碼請自行下載。由于時間有限,只講解了DMA發(fā)送及中斷,接收這一塊還沒有來得及整理,后期我將以實例講解,請持續(xù)關注。

下載

提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。

今天的軟件工程下載地址(360云盤):

https://yunpan.cn/cSdzWimMT8v7S訪問密碼 4a02

STM32F10x的資料可以在我360云盤下載:

https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90

內容講解

工程概要說明: 今天使用DMA1通道4(這里是重點,下面講解)傳輸串口發(fā)送的數據。工程配置串口使能DMA傳輸,DMA按要求發(fā)送完成會響應DMA中斷,這時在中斷里變化一次LED,以提示的作用。關于串口使用DMA接收的原理類似,后期我會舉例講解。

提供的工程以簡單為原則,詳細中文注釋,方便自己方便大家。

關于“STM32F103 DMA_USART”我把重要的幾點在下面分別講述:

一、RCC時鐘

該函數位于bsp.c文件下面;

注意:

這里是使用RCC_AHBPeriphClockCmd,我開始調試的時候,使用RCC_APB1PeriphClockCmd,怎么都不行,結果我才發(fā)現時鐘錯了。

二、DMA的NVIC配置

該函數位于bsp.c文件下面;

由于使用DMA中斷,這里必須配置才能響應中斷。

三、DMA輸出配置

該函數位于main.c文件下面;

主要就是我框出來的兩點比較重要,串口發(fā)送數據寄存器地址,中斷需要配置。

這里我封裝成一個發(fā)送函數接口,所以下面是直接調用這個函數。

四、DMA中斷

該函數位于stm32f10x_it.c文件下面;

提出來說,有兩點:1、函數必須有。2、需要清除標志位。

五、今天的重點

為什么是“DMA1_Channel4”,開始學習的人很納悶,其實這里是規(guī)定的(定的要求,見手冊)。

說明

今天提供的軟件工程基于STM32F103大容量芯片,其實只要適當修改工程的部分配置,STM32F1的芯片都適用。

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

    關注

    3

    文章

    552

    瀏覽量

    99925
  • USART
    +關注

    關注

    1

    文章

    195

    瀏覽量

    30680
  • STM32F10
    +關注

    關注

    0

    文章

    45

    瀏覽量

    15583
收藏 人收藏

    評論

    相關推薦

    如何使用STM32F1控制ESP8266?

    如何使用STM32F1控制ESP8266?
    發(fā)表于 07-09 06:21

    自制一款兼容STM32F1/F4芯片的飛控板

    自己制作的一款兼容STM32F1/F4芯片的飛控板。
    發(fā)表于 07-04 14:07 ?0次下載

    STM32F1內部ADC的DUAL MODE的使用問題求解

    我想利用STM32F1內部的ADC采集四路電壓值,因為要求同時采集,所以我使用了ADC的DUAL MODE,可是由于始終未能讀明白芯片手冊!ADC的設置與DMA的設置基本上參考STM32F1提供
    發(fā)表于 05-09 06:51

    STM32F1的LL庫,RTC怎么不能設置日期?

    STM32F1的LL庫,RTC 怎么不能設置日期,只能設置時間。
    發(fā)表于 03-29 07:02

    stm32f1如何將外部中斷關掉hal庫

    STM32F1系列微控制器是STMicroelectronics制造的32位ARM Cortex-M3內核的嵌入式微控制器系列。該系列采用了HAL庫(Hardware Abstraction
    的頭像 發(fā)表于 12-22 13:52 ?2557次閱讀

    STM32F1系列單脈沖模式下最小脈寬為多少?

    在微控制器領域,STM32F1系列是一款非常流行的產品,廣泛應用于各種嵌入式系統(tǒng)設計。
    的頭像 發(fā)表于 12-13 09:58 ?682次閱讀

    STM32F1系列MCU硬件電路最小系統(tǒng)設計

    STM32F1系列的MCU電源軌比較簡單,從規(guī)格書P44的Table 10可以看到,共有VDD、VDDA、和VBAT三組電源軌。
    的頭像 發(fā)表于 09-27 14:55 ?1296次閱讀
    <b class='flag-5'>STM32F1</b>系列MCU硬件電路最小系統(tǒng)設計

    STM32F1系列MCU硬件電路FSMC接口設計

    FSMC是STM32F1提供的一個靜態(tài)存儲控制器,是MCU用來擴展存儲器,可用來驅動SRAM、Nor Flash、NAND Flash。這里先簡單講解下這三種存儲器的應用場合。
    發(fā)表于 09-27 14:33 ?2355次閱讀
    <b class='flag-5'>STM32F1</b>系列MCU硬件電路FSMC接口設計

    請問stm32f1系列自帶dfu嗎?

    請問stm32f1系列自帶dfu嗎,我知道f4是自帶的
    發(fā)表于 09-25 07:09

    使用USART實現STM32F40x/STM32F41x的IAP

    電子發(fā)燒友網站提供《使用USART實現STM32F40x/STM32F41x的IAP.pdf》資料免費下載
    發(fā)表于 09-21 14:54 ?0次下載
    使用<b class='flag-5'>USART</b>實現<b class='flag-5'>STM32F</b>40x/<b class='flag-5'>STM32F</b>41x的IAP

    STM32F0xx的DMA控制器的使用

    電子發(fā)燒友網站提供《STM32F0xx的DMA控制器的使用.pdf》資料免費下載
    發(fā)表于 09-21 14:49 ?0次下載
    <b class='flag-5'>STM32F</b>0xx的<b class='flag-5'>DMA</b>控制器的使用

    STM32F1移植到STM32F0

    電子發(fā)燒友網站提供《從STM32F1移植到STM32F0.pdf》資料免費下載
    發(fā)表于 09-21 14:45 ?1次下載
    從<b class='flag-5'>STM32F1</b>移植到<b class='flag-5'>STM32F</b>0

    使用USART實現STM32F0xx應用編程

    電子發(fā)燒友網站提供《使用USART實現STM32F0xx應用編程 .pdf》資料免費下載
    發(fā)表于 09-21 14:43 ?0次下載
    使用<b class='flag-5'>USART</b>實現<b class='flag-5'>STM32F</b>0xx應用編程

    使用STM32F2和STM32F4 DMA控制器

    電子發(fā)燒友網站提供《使用STM32F2和STM32F4 DMA控制器.pdf》資料免費下載
    發(fā)表于 09-21 11:44 ?1次下載
    使用<b class='flag-5'>STM32F</b>2和<b class='flag-5'>STM32F</b>4 <b class='flag-5'>DMA</b>控制器

    使用STM32F10xxx的USART實現在應用中編程

    電子發(fā)燒友網站提供《使用STM32F10xxx的USART實現在應用中編程.pdf》資料免費下載
    發(fā)表于 09-21 10:00 ?2次下載
    使用<b class='flag-5'>STM32F</b>10xxx的<b class='flag-5'>USART</b>實現在應用中編程