这部分内容有了一个新的了解也就是我们不需要启用输入捕获的中断即可实现 首先是cubemx的配置内容 代码部分十分的简单 分别测量两个通道的频率和占空比
fre1=1000000.0f/(HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1)+1);
duty1=(HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_2)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim2,TIM_CHANNEL_1)+1);
fre2=1000000.0f/(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1)+1);
duty2=(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_2)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_1)+1);
HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
HAL_ADC_Start_DMA(&hadc1,(u32 *)adc_Buf,2);//adc采样dma模式
float adc_read(ADC_HandleTypeDef *hadc)
{
u16 adc_value;
HAL_ADC_Start(hadc);
adc_value=HAL_ADC_GetValue(hadc);
return adc_value*3.3/65536;
}
存储浮点型数据 因为EEPROM中只能存储u8类型的整型数据,所以我们可以将浮点型数据放大100倍再将其存入EEPROM当中,就可以解决了,然后读取可以读取,然后将其缩小后拿出。
RTC_TimeTypeDef time;
RTC_DateTypeDef date;
HAL_RTC_GetTime(&hrtc,&time,RTC_FORMAT_BIN);
HAL_RTC_GetDate(&hrtc,&date,RTC_FORMAT_BIN);
sprintf(text,"time:%d:%d;%d",time.Hours,time.Minutes,time.Seconds);
本文章使用limfx的vscode插件快速发布