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 =