赞
踩
时钟配置HSI主频配置64M
勾选打开8个通道的ADC
使能连续转换模式
配置好串口,选择异步模式配置好需要的开发环境并获取代码
修改main.c
串口重定向
- #include "stdio.h"
- int fputc(int ch, FILE *f)
- {
- HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
- return ch;
- }
串口重定向一定要勾选Use Micro LIB
获取ADC通道值
- uint32_t ADC_Get_Average(uint8_t ch)
- {
- ADC_ChannelConfTypeDef sConfig;
- uint32_t value_sum=0;
- switch(ch)
- {
- case 0:sConfig.Channel = ADC_CHANNEL_0;break;
- case 1:sConfig.Channel = ADC_CHANNEL_1;break;
- case 2:sConfig.Channel = ADC_CHANNEL_2;break;
- case 3:sConfig.Channel = ADC_CHANNEL_3;break;
- case 4:sConfig.Channel = ADC_CHANNEL_4;break;
- case 5:sConfig.Channel = ADC_CHANNEL_5;break;
- case 6:sConfig.Channel = ADC_CHANNEL_6;break;
- case 7:sConfig.Channel = ADC_CHANNEL_7;break;
- }
-
- sConfig.SamplingTime = ADC_SAMPLINGTIME_COMMON_1;
- sConfig.Rank = ADC_REGULAR_RANK_1;
- HAL_ADC_ConfigChannel(&hadc1,&sConfig);
-
- HAL_ADC_Start(&hadc1);
- HAL_ADC_PollForConversion(&hadc1,30);
- value_sum = HAL_ADC_GetValue(&hadc1);
- HAL_ADC_Stop(&hadc1);
-
- return value_sum;
- }
主函数
- int main(void)
- {
- HAL_Init();
- SystemClock_Config();
- MX_GPIO_Init();
- MX_ADC1_Init();
- MX_USART1_UART_Init();
-
-
- uint16_t i = 0;
- uint16_t Adc_Val = 0;
- static uint16_t count = 0;
-
- while (1)
- {
- count++;
- if(count % 100000 == 0)
- {
- for(i = 0; i < 8; i++)
- {
- Adc_Val = ADC_Get_Average(i);
- printf("CHANNEL%d = %04d, %f V\r\n", i, Adc_Val, (double)Adc_Val / 4095 * 3.3);
- }
- printf("\r\n\r\n\r\n\r\n\r\n");
- }
- }
- }
串口输出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。