stm32 TIM3触发ADC

本文介绍了STM32F103初学者如何使用TIM3定时器触发单通道ADC进行1500Hz信号转换。程序设计中,每0.2ms触发一次ADC采样,并通过DMA将数据传输至死循环,利用USART不断发送到个人计算机。主要涉及ADC、TIM及DMA的初始化配置。
摘要由CSDN通过智能技术生成

stm32 TIM3触发单通道ADC

作为初学者,刚接触stm32ADC,为了满足1500Hz信号的ADC转换,我最终决定采用stm32f103,f1的adc精度较高。结合网上许多发表有关定时器触发ADC模块的程序,我自己也尝试写了一个TIM3触发adc的程序。希望对大家有用,亲测有效。
思路如下:
TIM3触发ADC的采样,每隔0.2ms触发一次。
通过DMA传输,放到死循环,用USART不断的传给PC。

void time_Init(void)
{
 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; 
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
 
 TIM_TimeBaseInitStructure.TIM_Period = 199;//设置0.2ms采样一次
 TIM_TimeBaseInitStructure.TIM_Prescaler = 71;
 TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; //时钟分频,TIM3是通用定时器,基本定时器不用设置
 TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上扫描
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);
 TIM_SelectOutputTrigger(TIM3, TIM_TRGOSource_Update);//选择TRGO作为触发源为定时器更新时间
 TIM_Cmd(TIM3,ENABLE);//使能定时中断
}
__IO uint16_t ADCvalue;
void ad
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值