#STM32F103 DMA方式GPIO输出
使用TIM4 定时器 UP 触发DMA1 通道7,DMA读取内存数据输出到GPIOC。TIM_TimeBaseStructure.TIM_Period = 72; 可以改变输出速度。

/* Private functions ---------------------------------------------------------*/
//通用定时器4初始化
void TIM4_Int_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

/* TIMx clock enable */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);

TIM_TimeBaseStructure.TIM_Period = 72;
TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x00;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);

TIM_DMACmd(TIM4, TIM_DMA_Update, ENABLE);
TIM_SelectOutputTrigger(TIM4,TIM_TRGOSource_Update);
// TIM_SelectCCDMA(TIM4,ENABLE);
TIM_Cmd(TIM4, ENABLE);

}
//***************************************************
void DMA_INI(void)
{
DMA_InitTypeDef DMA_InitStructure;
/* Enable DMA clock */
RCC_AHBPeriphClockCmd( RCC_AHBPeriph_DMA1, ENABLE );

DMA_DeInit(DMA1_Channel7);
DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&(GPIOC->ODR));
DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)DisBuf;
DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
DMA_InitStructure.DMA_BufferSize = 512;
DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;  //非内存到内存,否则会不受TIM4 UP 触发
DMA_Init(DMA1_Channel7, &DMA_InitStructure);
DMA1_Channel7->CCR |= DMA_CCR7_EN;

}

STM32F103 DMA方式GPIO输出相关推荐

  1. (计算机组成原理)第七章输入和输出系统-第四节3:I/O方式之DMA方式

    文章目录 一:什么是DMA方式 二:DMA控制器组成 三:DMA传送过程 (1)预处理 (2)数据传送 (3)后处理 四:DMA方式的特点 五:DMA传送方式 (1)停止CPU访问主存 (2)DMA和 ...

  2. 基于uFUN开发板的心率计(一)DMA方式获取传感器数据

    前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...

  3. python控制gpio产生固定数量的脉冲_STM32L151用dma控制GPIO口发出指定的脉冲个数的疑惑!...

    本帖最后由 mon51 于 2015-3-6 16:41 编辑 用DMA控制GPIO的一个IO脚,输出指定脉冲的个数项目,由于要低功耗!MCU主频不能高.采用的定时器联机,还是达不到输出150KHZ的 ...

  4. gazebo 直接获取传感器数据_基于uFUN开发板的心率计(一)DMA方式获取传感器数据...

    前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...

  5. angularjs 获取复选框的值_基于uFUN开发板的心率计(一)DMA方式获取传感器数据

    前言 从3月8号收到板子,到今天算起来,uFUN到手也有两周的时间了,最近利用下班后的时间,做了个心率计,从单片机程序到上位机开发,到现在为止完成的差不多了,实现很简单,uFUN开发板外加一个Puls ...

  6. STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式)

    STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式) 前言 串口空闲中断介绍 清中断方法 串口中断处理函数 串口中断用到的全局变量定义 串口初始化(使能接收中 ...

  7. STM32F1与STM32CubeIDE快速入门-ADC通过DMA方式与PWM实现调光器

    DMA 方法是以非常高的速率转换多个 ADC 通道的最有效方法,并且仍然将结果传输到内存而无需 CPU 干预,这是一种非常酷且省时的技术. 本次实例将实现ADC以DMA方式采样,并转换成PWM输出,从 ...

  8. STM32F103C8T6制作舵机测试仪详细图文教程 | 定时器触发ADC | DMA传输 | PWM输出 | RTC实时时钟 | USART串口输出 | OLED IIC显示

    自主学习STM32已有一周,先实现一个小demo,算是给自己一个动力叭,有目标的学习收获会更多.虽然本科也修了嵌入式课程,但那种走马观花式的学习,最后真正得到的知识实在寥寥无几.个人理解,学习STM3 ...

  9. 计算机组成原理DMA方式原理,计算机组成原理4(程序查询方式、程序中断方式、DMA方式及其I/O接口电路)...

    一.程序查询方式 1.程序查询方式的接口电路 2.符号说明 &与非门 B工作触发器 D完成触发器 3.程序查询工作过程(输入) (1)当CPU通过I/O指令启动输入设备时,该指令的设备码将通过 ...

  10. STM32之ADC实例(基于DMA方式)

    出处:https://blog.csdn.net/zouleideboke/article/details/75112224?locationNum=9&fps=1 ADC简介: ADC(An ...

最新文章

  1. java jolt调用tuxedo_Jolt调用Tuxedo服务,该怎么处理
  2. DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略
  3. boost::units模块实现使用自动前缀的简要示例
  4. Spring5各模块之间的依赖关系
  5. 【php7扩展开发六】zval的操作
  6. 理解group by
  7. 初试Octave软件
  8. SQL Server:查找周开始和结束日期时间
  9. perl--CGI编程之Apache服务器安装配置
  10. ElasticSearch全文搜索引擎之核心概念和IK分词器篇
  11. Android 自定义CheckBoxPreference的CheckBox复选框
  12. uniapp 安卓快捷方式插件(桌面长按app图标) Ba-Shortcut
  13. 规模化敏捷转型中,哪些问题会被经常问到?
  14. android 微信 去广告插件,Xposed去除微信朋友圈广告
  15. 读书:每天做一个情绪稳定的成年人!
  16. 什么事css+hack,css hack的理解
  17. Grating Period and Grating Constant(光栅周期与光栅常数)
  18. jquery常用代码--(一)
  19. Eclipse IDE 使用技巧和Android App 开发环境搭建和配置
  20. c语言中英文翻译 毕业设计,c语言中英文翻译资料 毕业设计论文.doc

热门文章

  1. 电脑文件删除不掉什么原因?程序显示被占用清理不掉如何操作?
  2. 配置switchOmegaProxy插件
  3. 重要极限二:x趋近于无穷大,(1+1/x)^x的极限
  4. 贴片铝电容识别及型号_如何识别各种材质贴片电容
  5. 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
  6. matlab波形叠加,matlab程序两列波相向传播叠加波形图和动画.doc
  7. 红茶的功效与作用,喝红茶的好处和坏处,红茶的种类有哪些
  8. SQLSERVER月份简写转数字
  9. unity WWW读取StreamingAssets文件
  10. 土地日度交易数据2000-2022