【电机控制器】PY32MD310K18U7TR——ADC、UART
【电机控制器】PY32MD310K18U7TR——ADC、UART
文章目录
- @[TOC](文章目录)
- 前言
- 一、接线
- 二、芯片手册
- 三、代码
- 四、实验
- 四、参考资料
- 总结
文章目录
- @[TOC](文章目录)
- 前言
- 一、接线
- 二、芯片手册
- 三、代码
- 四、实验
- 四、参考资料
- 总结
前言
使用工具:
1.仿真器:STLINK
2.串口工具:USB-TTL
3.上位机串口调试助手
提示:以下是本篇文章正文内容,下面案例可供参考
一、接线
VCC——3.3
GND——GND
SWDIO——SWDIO
SWCLK——SWCLK
二、芯片手册
三、代码
int main(void)
{/* Reset of all peripherals, Initializes the Systick */HAL_Init(); /* Initialize LED */BSP_LED_Init(LED_GREEN);/* Initialize UART */DEBUG_USART_Config(); /* Initialize ADC */APP_AdcConfig(); while (1){HAL_Delay(500); /* Start ADC and enable ADC interrupts */if (HAL_ADC_Start_IT(&AdcHandle) != HAL_OK) {APP_ErrorHandler();}}
}
static void APP_AdcConfig(void)
{__HAL_RCC_ADC_FORCE_RESET();__HAL_RCC_ADC_RELEASE_RESET(); /* Reset ADC */__HAL_RCC_ADC_CLK_ENABLE(); /* Enable ADC clock */AdcHandle.Instance = ADC1;/* ADC calibration */if (HAL_ADCEx_Calibration_Start(&AdcHandle) != HAL_OK) {APP_ErrorHandler();}AdcHandle.Instance = ADC1; /* ADC1 */AdcHandle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; /* Set ADC clock */AdcHandle.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit resolution for converted data */AdcHandle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right-alignment for converted data */AdcHandle.Init.ScanConvMode = ADC_SCAN_DIRECTION_FORWARD; /* Scan sequence direction: forward */AdcHandle.Init.EOCSelection = ADC_EOC_SEQ_CONV; /* Conversion completion flag */AdcHandle.Init.LowPowerAutoWait = ENABLE; /* Enable wait for conversion mode */AdcHandle.Init.ContinuousConvMode = DISABLE; /* Single conversion mode */AdcHandle.Init.DiscontinuousConvMode = DISABLE; /* Disable discontinuous mode */AdcHandle.Init.ExternalTrigConv = ADC_SOFTWARE_START; /* Software triggering */AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* No external trigger edge */AdcHandle.Init.DMAContinuousRequests = ENABLE; /* DMA continuous mode selection */AdcHandle.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* When an overload occurs, overwrite the previous value */AdcHandle.Init.SamplingTimeCommon = ADC_SAMPLETIME_239CYCLES_5; /* Channel sampling time is 239.5 ADC clock cycles *//* ADC initialization */if (HAL_ADC_Init(&AdcHandle) != HAL_OK) {APP_ErrorHandler();}sConfig.Rank = ADC_RANK_CHANNEL_NUMBER; /* Set the rank for the ADC channel order */sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; /* ADC channel selection *//* Configure ADC channels */if (HAL_ADC_ConfigChannel(&AdcHandle, &sConfig) != HAL_OK) {APP_ErrorHandler();}
}
四、实验
四、参考资料
PY32MD310K18U7TR
总结
本文仅仅简单介绍了【电机控制器】PY32MD310K18U7TR——ADC、UART,评论区欢迎讨论。