蓝桥杯adc改进

pwm波频率和占空比测量

这部分内容有了一个新的了解也就是我们不需要启用输入捕获的中断即可实现 首先是cubemx的配置内容 alt text 代码部分十分的简单 分别测量两个通道的频率和占空比

	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);

adc保留四位

alt text

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存储浮点型

存储浮点型数据 因为EEPROM中只能存储u8类型的整型数据,所以我们可以将浮点型数据放大100倍再将其存入EEPROM当中,就可以解决了,然后读取可以读取,然后将其缩小后拿出。

RTC时钟

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插件快速发布