比较器+定时器捕获+DMA

这篇博客详细介绍了如何在STM32微控制器上配置比较器、定时器2的通道0输入捕获以及使用DMA进行频率测量的方法。通过配置GPIO、初始化比较器和定时器,结合DMA进行数据传输,实现对输入信号频率的精确计算。
摘要由CSDN通过智能技术生成

static void frequency_gpio_config(void)
{
rcu_periph_clock_enable(F_Int_RCC);
gpio_mode_set(F_Int_PORT, GPIO_MODE_ANALOG, GPIO_PUPD_PULLUP, F_Int_PIN);
//–

// rcu_periph_clock_enable(F_Int_RCC);
// gpio_mode_set(F_Int_PORT, GPIO_MODE_ANALOG, GPIO_PUPD_PULLUP, CMP_Int_PIN);
//–比较器IO输出测试
rcu_periph_clock_enable(F_Out_RCC);
gpio_output_options_set(F_Out_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_MAX,F_Out_PIN);
gpio_mode_set(F_Out_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, F_Out_PIN);
gpio_af_set(F_Out_PORT, GPIO_AF_7, F_Out_PIN);
}

static void CMP0_config(void) //–比较器0配置
{
rcu_periph_clock_enable(RCU_CFGCMP);
//–比较器的时钟与 PCLK 同步,它与 SYSCFG 分享共同的复位和时钟使能位.

//VREFINT 是 1.2V  CMP_1_4VREFINT=VREFINT *1/4 input=0.3V    
//用于控制迟滞水平  CMP_HYSTERESIS_NO 0:无迟滞

cmp_mode_init(CMP0, CMP_HIGHSPEED, CMP_1_4VREFINT, CMP_HYSTERESIS_NO);

//CMP_OUTPUT_TIMER0IC0 :定时器 0 通道 0 输入捕获
//CMP_OUTPUT_TIMER1IC3 :定时器 1 通道 3 输入捕获
//CMP_OUTPUT_TIMER2IC0 :定时器 2 通道 0 输入捕获

cmp_output_init(CMP0, CMP_OUTPUT_NONE, CMP_OUTPUT_POLARITY_INVERTED);//–比较器IO输出测试
//cmp_output_init(CMP0, CMP_OUTPUT_TIMER2IC0, CMP_OUTPUT_POLARITY_INVERTED);

/* enable comparator channel0 */
cmp_disable(CMP0);
}

//定时器 2 通道 0 输入捕获
//计算频率
static void timer2_config(void)
{
timer_ic_parameter_struct timer_ic_parameter;

// timer_oc_parameter_struct timer_ocintpara;
timer_parameter_struct timer_initpara;
rcu_periph_clock_enable(RCU_TIMER1);

//--定时器初始化
timer_deinit(TIMER1);
timer_initpara.prescaler         = 0; //++计数器时钟预分频值,计数器时钟=SystemCoreClock/(0+1)=SystemCoreClock
timer_initpara.alignedmode       = TIMER_COUNTER_EDGE;//++00:无中央对齐模式(边沿对齐模式)。
timer_initpara.counterdirection  = TIMER_COUNTER_UP;//++计数方向,向上计数
timer_initpara.period            = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值