前言
练习记录:R37继电器模拟测量电压,以及pwm输出。
提示:以下是本篇文章正文内容,下面案例可供参考
一、模拟测量电压
使用蓝桥杯的开发版R37模拟测量电压,使用ADC单通道模拟。
1.cubemx的配置
我们使用ADC2(还可以使用ADC1,PB12),它是接在PB15引脚的
配置完成然后开始代码部分:
这句必须在ADC开始或结束后使用
HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);//校准acd,第一步需要校准adc
ADC读取,此时返回的就是ADC的电压
float adc_read(ADC_HandleTypeDef *hadc)
{
uint16_t adc_val;//12位只能用16位接受
float adc_f;
HAL_ADC_Start(hadc);
adc_val=HAL_ADC_GetValue(hadc);
adc_f=adc_val*3.3f/4096.0f;
return adc_f;
}
二、PWM波的产生和测量
1.配置TIM
代码部分:
//打开定时器17通道1的PWM输出功能
HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);
void _pwmWorkByFre(unsigned int compareDate)//设置占空比函数,如何计算不在赘述
{
__HAL_TIM_SetCompare(&htim17,TIM_CHANNEL_1,compareDate);//设置pause的值
}