/** Common config */ hadc1.Instance = ADC1; hadc1.Init.ConversionType = ADC_CONVERSION_WITH_DS; hadc1.Init.SequenceLength = 1; hadc1.Init.SamplingMode = ADC_SAMPLING_AT_START; hadc1.Init.SampleRate = ADC_SAMPLE_RATE_16; hadc1.Init.InvertOutputMode = ADC_DATA_INVERT_NONE; hadc1.Init.Overrun = ADC_NEW_DATA_IS_LOST; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.DownSamplerConfig.DataWidth = ADC_DS_DATA_WIDTH_12_BIT; hadc1.Init.DownSamplerConfig.DataRatio = ADC_DS_RATIO_1; if (HAL_ADC_Init(&hadc1) != HAL_OK) { Error_Handler(); } /** Configure Regular Channel */ ConfigChannel.Channel = ADC_CHANNEL_VINP3; ConfigChannel.Rank = ADC_RANK_1; ConfigChannel.VoltRange = ADC_VIN_RANGE_1V2; ConfigChannel.CalibrationPoint.Number = ADC_CALIB_NONE; ConfigChannel.CalibrationPoint.Gain = 0x00; ConfigChannel.CalibrationPoint.Offset = 0x00; if (HAL_ADC_ConfigChannel(&hadc1, &ConfigChannel) != HAL_OK) { Error_Handler(); }
if (HAL_ADC_PollForConversion(&hadc1, 10) != HAL_OK) { Error_Handler(); } uiADCVALUE = HAL_ADC_GetValue(&hadc1); uiADCVOLTAGE = __HAL_ADC_CALC_DIFF_DATA_TO_VOLTAGE(3300, uiADCVALUE, ADC_RESOLUTION_12B); // HAL_UART_Transmit(&huart2, (uint8_t *)&uhADCxConvertedData, 1, 0xFFFF); printf("\r\nADC CH1 uiADCVALUE: = %4d \t\r\n", uiADCVALUE); printf("\r\nADC CH1 uiADCVOLTAGE: = %4d \t\r\n", uiADCVOLTAGE); HAL_Delay(500) ;
收藏0 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
111
321
1
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号