STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式

STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式

  • 一、软件准备
  • 二、硬件准备
  • 三、CubeMX配置
  • 四、Keil
    • main.c文件
  • 五、实验效果

一、软件准备

软件准备

二、硬件准备

STM32F407霸天虎
DAP高速下载器
USB转串口线

知识小卡片
DMA拥有多种工作模式,具体如下图:
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第1张图片
本次实验用到的是存储器到存储器的传输模式

三、CubeMX配置

STM32F407霸天虎用的是STM32F407ZGT6
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第2张图片
选择外部高速时钟
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第3张图片
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第4张图片
因为霸道开发板上的LED是默认低电平点亮的,所以这里我们GPIO选择默认输出高电平
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第5张图片
USART1选择异步通信,其他配置默认。
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第6张图片
配置好DMA选项:添加RX,TX,优先级设置为高。
因为DMA的传输模式设置为存储器到存储器,所以RX与TX在此模式下只能选择普通发生模式而不能选择循环发送模式
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第7张图片
接下来到DMA传输模式选项配置

知识小卡片
DMA有两个控制器,如图所示
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第8张图片
DMA 控制器实现双 AHB 主接口,更好利用总线矩阵和并行传输。DMA 控制器通过存储器端口和外设端口与存储器和外设进行数据传输,见上图。DMA 控制器的功能是快速转移内存数据,需要一个连接至源数据地址的端口和一个连接至目标地址的端口。
DMA2(DMA 控制器 2) 的存储器端口和外设端口都是连接到 AHB 总线矩阵,可以使用 AHB 总线矩阵功能。DMA2 存储器和外设端口可以访问相关的内存地址,包括有内部 Flash、内部 SRAM、AHB1 外设、AHB2 外设、APB2 外设和外部存储器空间。
DMA1 的存储区端口相比 DMA2 的要减少 AHB2 外设的访问权,同时 DMA1 外设端口是没有连接至总线矩阵的,只有连接到 APB1 外设,即 DMA1 不能实现存储器到存储器传输。
> 所以,DMA1只支持两种模式:存储器到外设,外设到存储器
DMA2支持三种模式:存储器到存储器,存储器到外设,外设到存储器

添加一种传输模式,选择MEMTOMEM(即为存储器到存储器),优先级为高
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第9张图片

时钟树选择168MHz,具体配置方法见上篇的时钟树配置
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第10张图片
而后根据自己的喜好编辑工程的名称,存放位置,IDE选择ARM-MDKV5
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第11张图片

四、Keil

由于我们的Debug用的是DAP,如图下选择Debug和下载配置
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第12张图片

main.c文件

在代码中添加自定义字符串

/* USER CODE BEGIN PV */
uint8_t str1[] = {"Hello Jayce!\r\n"};
/* USER CODE END PV */

在main函数中添加DMA传输指令

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_UART_Transmit_DMA(&huart1,str1,sizeof(str1));
		HAL_GPIO_TogglePin(LED_R_GPIO_Port,LED_R_Pin);
  }
  /* USER CODE END 3 */

五、实验效果

选择好端口号,波特率等,打开串口后复位单片机,可以看到str1被打印出来了,DMA存储器到存储器实验完成!
STM32F407霸天虎HAL库学习笔记——DMA的存储器到存储器传输模式_第13张图片

你可能感兴趣的:(STM32,HAL库,STM32F407,stm32,单片机,学习)