stm32上升沿采样_定时器捕获外部上升沿信号,DMA读取GPIO口数据的问题

本文介绍了在STM32中使用Tim2的CH3捕获功能配合DMA读取GPIO口数据的问题。作者设置了DMA配置,用于在外部触发信号上升沿时读取8位并行数据。主要疑问在于:1) DMA是否在每个触发信号后传输一个数据,还是连续传输2500个数据;2) 定时器捕获一个还是多个触发信号后,DMA才传输一个数据。寻求社区专家解答。
摘要由CSDN通过智能技术生成

小弟新手,最近在做STM32采集片外AD信号的程序

现在用了Tim2的ch3捕获功能监控外部触发采样的信号,片外AD输出8位并行数据接GPIO口,当外部采样信号到来时,DMA读取GPIO口数据并保存到内存中

我模仿网上例程an2548,在开发板程序基础上修改了寄存器版(因为时间紧固件库不会用,怕出错)。

void MYDMA_Config(DMA_Channel_TypeDef*DMA_CHx,u32 cpar,u32 cmar,u16 cndtr)

{

RCC->AHBENR|=1<<0;        //开启DMA1时钟

delay_ms(1);            //等待DMA时钟稳定

DMA_CHx->CPAR=cpar;      //DMA1 外设地址

DMA_CHx->CMAR=(u32)cmar;//DMA1,存储器地址

DMA1_MEM_LEN=cndtr;     //保存DMA传输数据量

DMA_CHx->CNDTR=cndtr;   //DMA1,传输数据量

DMA_CHx->CCR=0X00000000;//复位

DMA_CHx->CCR|=0<<4;      //从外设读

DMA_CHx->CCR|=0<<5;      //不执行循环操作

DMA_CHx->CCR|=0<<6;      //外设地址非增量模式

DMA_CHx->CCR|=1<<7;      //存储器增量模式

DMA_CHx->CCR|=1<<8;      //外设数据宽度为16位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值