62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
|
#include "HD_ADC.h"
|
||
|
|
||
|
#define ADC_SAMPLETIME ADC_SAMPLETIME_2CYCLES_5 //采样时间
|
||
|
|
||
|
|
||
|
void HD_adc_Init(void)
|
||
|
{
|
||
|
MX_DMA_Init();
|
||
|
MX_TIM6_Init();
|
||
|
MX_ADC1_Init();
|
||
|
MX_ADC2_Init();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief 获取adc1中某通道的值
|
||
|
* @param Channel 通道
|
||
|
*/
|
||
|
int16_t get_adc1Value(uint32_t Channel)
|
||
|
{
|
||
|
ADC_ChannelConfTypeDef sConfig;
|
||
|
|
||
|
/* 更改读取的adc的通道 */
|
||
|
sConfig.Channel = Channel;
|
||
|
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||
|
sConfig.SamplingTime = ADC_SAMPLETIME;
|
||
|
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||
|
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||
|
sConfig.Offset = 0;
|
||
|
HAL_ADC_ConfigChannel(&hadc1, &sConfig);
|
||
|
|
||
|
/* 启动转换 */
|
||
|
HAL_ADC_Start(&hadc1);
|
||
|
/* 等待转化结束 */
|
||
|
HAL_ADC_PollForConversion(&hadc1, 30);
|
||
|
u_int16_t adcValue = HAL_ADC_GetValue(&hadc1);
|
||
|
|
||
|
return adcValue;
|
||
|
}
|
||
|
|
||
|
int16_t get_adc2Value(uint32_t Channel)
|
||
|
{
|
||
|
ADC_ChannelConfTypeDef sConfig;
|
||
|
|
||
|
/* 更改读取的adc的通道 */
|
||
|
sConfig.Channel = Channel;
|
||
|
sConfig.Rank = ADC_REGULAR_RANK_1;
|
||
|
sConfig.SamplingTime = ADC_SAMPLETIME;
|
||
|
sConfig.SingleDiff = ADC_SINGLE_ENDED;
|
||
|
sConfig.OffsetNumber = ADC_OFFSET_NONE;
|
||
|
sConfig.Offset = 0;
|
||
|
HAL_ADC_ConfigChannel(&hadc2, &sConfig);
|
||
|
|
||
|
/* 启动转换 */
|
||
|
HAL_ADC_Start(&hadc2);
|
||
|
/* 等待转化结束 */
|
||
|
HAL_ADC_PollForConversion(&hadc2, 30);
|
||
|
u_int16_t adcValue = HAL_ADC_GetValue(&hadc2);
|
||
|
|
||
|
return adcValue;
|
||
|
}
|
||
|
|