我的相关问题就是这样的:

MSP_INIT:

if(htim_base->Instance==TIM1)
{
/* USER CODE BEGIN TIM1_MspInit 0 */

/* USER CODE END TIM1_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM1_CLK_ENABLE();

/* TIM1 DMA Init */
/* TIM1_UP Init */
hdma_tim1_up.Instance = DMA2_Stream5;
hdma_tim1_up.Init.Channel = DMA_CHANNEL_6;
hdma_tim1_up.Init.Direction = DMA_PERIPH_TO_MEMORY;
hdma_tim1_up.Init.PeriphInc = DMA_PINC_DISABLE;
hdma_tim1_up.Init.MemInc = DMA_MINC_ENABLE;
hdma_tim1_up.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
hdma_tim1_up.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
hdma_tim1_up.Init.Mode = DMA_CIRCULAR;
hdma_tim1_up.Init.Priority = DMA_PRIORITY_MEDIUM;
hdma_tim1_up.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
if (HAL_DMA_Init(&hdma_tim1_up) != HAL_OK)
{
Error_Handler();
}

__HAL_LINKDMA(htim_base,hdma[TIM_DMA_ID_UPDATE],hdma_tim1_up);

/* USER CODE BEGIN TIM1_MspInit 1 */

/* USER CODE END TIM1_MspInit 1 */
}

主程序中调用,

HAL_DMA_Start(&hdma_tim1_up, (GPIOA_BASE + 0x10), (uint32_t)GPIO_IN_DMA, sizeof(GPIO_IN_DMA));
__HAL_TIM_ENABLE_DMA(&htim1, TIM_DMA_UPDATE);
HAL_TIM_Base_Start(&htim1);

中断程序 :

void DMA2_Stream5_IRQHandler(void)
{

HAL_DMA_IRQHandler(&hdma_tim1_up);

}

最重要的事情是 STM32F4的2个DMA,只有DMA2才可以在源和目的之间访问所有的外设和内存

转载于:https://www.cnblogs.com/kingtiger88/p/11072953.html

stm32f的定时器 GPIO DMA的相关事情相关推荐

  1. STM32定时器触发DMA循环完成数据搬运

    通过TIM8的事件触发DMA,从内存中的地址搬运数据到外设的寄存器,例子中的中断部分可以关闭,与功能无关,仅为测试时观察方便. 定时器每产生一次事件(本文以UPDATE为例,CC等其他事件也可实现), ...

  2. DMA PL330相关总结

    目录 一.DMA的介绍 二.PL330简述 三.工作原理 3.1 工作过程 3.2 传送的方式 四.PL330指令集 4.1 DMAMOV 4.2 DMALD 4.3 DMAST 4.4 DMARMB ...

  3. STC89c52定时器的使用以及相关案例

    定时器 使用 STC89c52 来示例 简介 C51中的定时器和计数器是同一个硬件电路支持的,通过寄存器配置不同,就可以将他当做定时器或者计数器使用. 确切的说,定时器和计数器区别是致使他们背后的计数 ...

  4. gpio控制和相关操作

    一.gpio基础信息 现在总结下GPIO口的八种工作状态,其中四种输入状态,四种输出状态 参考:GPIO口的八种工作状态_沙漠那点绿的博客-CSDN博客_gpio三种状态 输入: 1 上拉输入:默认情 ...

  5. 【方法】STM32F103C8单片机通过定时器DMA测量脉冲宽度,无需CPU干预(以DHT11传感器为例)

    STM32F1系列的定时器中有DMA Burst Feature,配合参考手册上所讲的PWM输入模式,可以全自动地测量一组脉冲的宽度,期间CPU可做其他的事情. DHT11传感器是单总线器件,主机端发 ...

  6. dma和通道的区别_STM32 定时器触发 ADC 多通道采集,DMA搬运至内存

    引言 ADC 的功能是将模拟信号采样得到数字信号,而有些时候,我们需要使用到定时采样,比如在计算一个采集的波形的频率的时候,我们需要精确的知道采样频率,也就是 1 s 内采集的点数,这个时候,就需要使 ...

  7. STM32F407 ADC+DMA+定时器 定时采样模拟量

    STM32F407 ADC+DMA+定时器 定时采样模拟量 文章目录 STM32F407 ADC+DMA+定时器 定时采样模拟量 前言 一.硬件原理 1.1 ADC 1.2 定时器 3. DMA 二. ...

  8. STM32学习1之ADC+DMA(使用定时器触发)

    笔者之前用STM32的ADC外设通过DMA通道来传输数据,通常有两种方法,一个是直接通过DMA通道传输数据,二是通过定时器触发.相较而言,后者在实际中比较常使用,因为ADC读取传感器数据需要一段时间, ...

  9. Linux内核深入理解定时器和时间管理(7):相关的系统调用

    Linux内核深入理解定时器和时间管理 相关的系统调用 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 ---------------------------- ...

最新文章

  1. 基于jQuery 2.0的源代码分析
  2. Android技能树 — 树基础知识小结(一)
  3. 深入理解计算机系统 第三章笔记,《深入理解计算机系统》笔记.PDF
  4. cxGrid功能_用于备查【转】
  5. codeforces1208 F. Bits And Pieces(SOS DP)
  6. configurationproperties_【Springboot】注解@ConfigurationProperties让配置整齐而简单
  7. 在存储过程中编写正确的事务处理代码
  8. .NET、ASP.NET控件及源码大汇总 最新最全哦
  9. 博客V7之后,喜庆排名进入2000之内
  10. 回归分析beta值的标准_标准回归系数引用
  11. 一款完整开源的物联网基础平台
  12. [黑群晖经典教程] 一步一步建立自己的黑群晖
  13. 记录用matlab APP中matlab coder的简单步骤
  14. PyQt5_Demo5
  15. Windows的NSIS ERROR
  16. 不良贷款催收之技巧和策略
  17. 计算机中文输入法教案,输入汉字的学习
  18. [矩阵论] Unit 3. 矩阵的分解 - 知识点整理
  19. BERT 的 PyTorch 实现(超详细)
  20. scp 命令详解 ------ 远程复制

热门文章

  1. [USACO4.4]追查坏牛奶Pollutant Control
  2. SUN JAVA认证介绍
  3. 2018-06-06-markdown-推荐markdown编辑器
  4. 【云星数据---mesos实战系列002】:mesos全分布式部署实战009--修改marathon的默认端口
  5. 《惢客创业日记》2021.08.12-17(周四)惢客与互联网巨头的区别
  6. 飞腾CPU体系结构(五)
  7. EXCEL的IF+MID函数结合找出班级信息
  8. 会声会影 Corel VideoStudio Ultimate 2023 v26.0.0.136 旗舰版百度网盘免费下载
  9. 全网最详细中英文ChatGPT-API文档(一)开始使用ChatGPT——导言
  10. linux跟踪内存检测原理,wooyun/Linux下基于内存分析的Rootkit检测方法.html at master · exitmsconfig/wooyun · GitHub...