当前位置: 首页 > news >正文

免费空间领取网站郑州建设厅网站

免费空间领取网站,郑州建设厅网站,黄页网品种大全2021,各学院二级网站建设通报目录 DMA介绍 STM32F1 DMA框图 DMA处理过程 DMA通道 DMA优先级 DMA相关寄存器介绍 F1 DMA通道x配置寄存器(DMA_CCRx) DMA中断状态寄存器(DMA_ISR) DMA中断标志清除寄存器(DMA_IFCR) DMA通道x传输…

目录

DMA介绍

STM32F1 DMA框图

DMA处理过程

DMA通道

DMA优先级

DMA相关寄存器介绍 F1

DMA通道x配置寄存器(DMA_CCRx)

DMA中断状态寄存器(DMA_ISR)

DMA中断标志清除寄存器(DMA_IFCR)

DMA通道x传输数量寄存器(DMA_CNDTR)

DMA通道x外设地址寄存器(DMA_CPARx)

DMA通道x存储器地址寄存器(DMA_CMARx) 

 DMA相关HAL库驱动介绍

以DMA方式传输串口数据配置步骤

DMA介绍

DMA,全称Direct Memory Access,即直接存储器访问。

DMA传输 将数据从一个地址空间复制到另一个地址空间。    (数据搬运工)

DMA传输无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAMIO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高

作用:为CPU减负

传输方向:内存--->外设、外设--->内存、内存--->内存

STM32F1 DMA框图

①,DMA请求:

DMA传输数据,先向DMA控制器发送请求

②,DMA通道  :

不同外设向DMA的不同通道发送请求

DMA17个通道,DMA25个通道

DMA优先级:

多个DMA通道同时发来请求时,就有先后响应处理的顺序问题,这个由仲裁器管理

(优先级管理也分软件阶段和硬件阶段)

注意:DMA2仅存在大容量产品和互联型产品

DMA处理过程

DMA通道

DMA1

         每个通道用来管理来自于一个或多个外设对存储器访问的请求。且都有一个仲裁器,用于处理DMA请求间的优先级。

DMA优先级

仲裁器管理DMA通道请求分为两个阶段:软件阶段(1)、硬件阶段(2)

第一阶段(软件阶段):每个通道的优先级可在DMA_CCRx寄存器中设置,有四个等级:最高优先级。

第二阶段(硬件阶段):如果两个请求有相同软件优先级,较低编号的通道比较高编号的通道有较高的优先级

(大容量芯片中,DMA1控制器拥有高于DMA2控制器的优先级)

注意:多个请求通过逻辑或输入到DMA控制器,只能有一个请求有效。

DMA相关寄存器介绍 F1

DMA通道x配置寄存器(DMA_CCRx

 主要设置:

是否为存储器到存储器模式:MEM2MEM

数据传输方向:DIR

通道优先级:PL[1:0]

循环模式:CIRC

外设/存储器增量模式:PINC/MINC

外设/存储器数据宽度:PSIZE[1:0]/MSZE[1:0]

使能中断:TEIE传输错误中断、HTIE半传输中断、TCIE传输完成中断

开启通道:EN

DMA中断状态寄存器(DMA_ISR

注意:当设置了允许中断时,将会产生中断

DMA中断标志清除寄存器(DMA_IFCR

DMA通道x传输数量寄存器(DMA_CNDTR

 最大数据传输数目:65535

        非循环模式下传输结束后,要开始新的DMA传输,需要在关闭DMA通道情况下,在该寄存器中重新写入传输数目。

DMA通道x外设地址寄存器(DMA_CPARx

DMA通道x存储器地址寄存器(DMA_CMARx 

 DMA相关HAL库驱动介绍

DMA外设相关结构体:DMA_HandleTypeDef DMA_InitTypeDef

DMA方式传输串口数据配置步骤

(USART1_TX   DMA1_CH4)

1、使能DMA时钟                

__HAL_RCC_DMA1_CLK_ENABLE

2、初始化DMA

HAL_DMA_Init函数初始化DMA相关参数

__HAL_LINKDMA函数连接DMA和外设

3、使能串口的DMA发送,启动传输

HAL_UART_Transmit_DMA

查询DMA传输状态

__HAL_DMA_GET_FLAG 查询通道传输状态

__HAL_DMA_GET_COUNTER 获取当前传输剩余数据量

DMA中断使用

HAL_NVIC_EnableIRQ

HAL_NVIC_SetPriority

编写中断服务函数 xxx_IRQHandler

在使用DMA来搬运数据到串口UART中,需要注意的事项

将 DMA 与 USART1 连接:

__HAL_LINKDMA(&g_uart1_handle, hdmatx, g_dma_handle);

__HAL_LINKDMA 宏用于将 DMA 句柄 (g_dma_handle) 与 USART1 的发送 DMA (hdmatx) 进行关联。这确保了 DMA 在发送数据时能够正确地与 UART1 进行交互。

启动 UART 的 DMA 传输:

HAL_UART_Transmit_DMA(&g_uart1_handle, g_sendbuf, SEND_BUF_SIZE);

使用 HAL_UART_Transmit_DMA 启动 UART 数据的 DMA 传输,其中 g_sendbuf 是待发送的数据缓冲区,SEND_BUF_SIZE 是数据的大小。

等待 DMA 传输完成:

while (1)
{if ( __HAL_DMA_GET_FLAG(&g_dma_handle, DMA_FLAG_TC4))   /* 等待 DMA1_Channel4 传输完成 */{__HAL_DMA_CLEAR_FLAG(&g_dma_handle, DMA_FLAG_TC4);HAL_UART_DMAStop(&g_uart1_handle);  /* 传输完成以后关闭串口DMA */break;}
  • 使用 __HAL_DMA_GET_FLAG 检查 DMA 是否完成传输,如果完成,则通过 __HAL_DMA_CLEAR_FLAG 清除 DMA 传输完成标志。
  • 然后调用 HAL_UART_DMAStop 停止 DMA 传输。
http://www.yayakq.cn/news/481630/

相关文章:

  • 超链接 网站广州网站开发广州亦客网络
  • 椒江做国际网站的公司wordpress静态化插件下载
  • 网站建设维护 知乎自己的店铺如何弄小程序
  • 抚顺您做煮火锅网站天眼查询个人怎么查
  • 个人+网站可以做导航吗dw做网站地图
  • 做网站计划百度站长网站规则改版
  • 公司网站哪里好高端网站建设 磐石网络专注
  • 房产网查询wordpress评论优化插件
  • 佛山公司做网站惠东县住房和城乡规划建设局网站
  • 免费秒玩小游戏桔子seo查询
  • 好看手机网站推荐seo如何优化
  • 家装设计效果图网站合肥网站建设模板系统
  • 五河网站建设哪家好旧域名找新域名的方法
  • 盗网站asp源码广州怎么建设一个网站
  • 百度网站描述班级网站建设策划书
  • 服务器如何搭建php网站网站托管公司
  • 网站域名查询网址建设银行个人客户
  • 客户管理系统网站黑河网站建设
  • 网站建设公司为什么没有官网电商免费网站入口
  • 网站备案资料青海省住房和城乡建设厅门户网站
  • 湖南网站建设推荐改号宝网站搭建
  • 淘宝客导购网站源码工程与建设
  • 无锡哪里有做网站的长春门户网站建设
  • 昆山做网站优化Wordpress请求接口数据
  • 做网站做本地服务器中职网站建设与维护考试题
  • 建站之星模板下载网站黑龙江建设集团网站
  • title (网站开发)吉林长春建设工程信息网站
  • 沈阳建设银行网站首页免费网站安全软件
  • 哪里有网站制作济宁创新网络运营有限公司
  • 厦门建设网站的HTML模板怎么导入WordPress