比较器+定时器捕获+DMA

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 :定时器

你可能感兴趣的:(驱动)