adc的问题待补充

int main(void)
{

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
MX_ADC1_Init();
MX_ADC2_Init();
/* USER CODE BEGIN 2 */
/*执行ADC自动自校准校准前提:ADC必须被禁用(在执行HAL_ADC_Start()之前或者在HAL_ADC_Stop()之后执行此函数)。*/

HAL_ADCEx_Calibration_Start(&hadc1,ADC_SINGLE_ENDED);
HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);
HAL_UART_Receive_IT(&huart1, (uint8_t*)&RxData, 1);

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */
HAL_ADC_Start(&hadc1);//启用 ADC,开始常规组的转换。
//dcbusval[0]=HAL_ADC_GetValue(&hadc1);//*0.015430500427*10;
dcbusval[0]=HAL_ADC_GetValue(&hadc1)*0.015430500427;
memcpy(vofaData,(uint8_t *)&dcbusval,sizeof(dcbusval));

HAL_UART_Transmit_DMA(&huart1,vofaData,12);//将vofaData通过串口1以DMA方式传输,不以串口传输
HAL_Delay(1);
}
/* USER CODE END 3 */
}

调试的时候发现不是自己想要的,最大的可能是ADC1通道2/8,两个影响的,只看2通道是没有问题的

posted @ 2024-10-30 20:03  Zer0ne1  阅读(6)  评论(0编辑  收藏  举报