在cubemx 中配置好时钟和ADC采样通道为内部温度传感器。
生成IAR代码,下面是代码;实际adc_v 的值,断点查看为670~680。
/* USER CODE BEGIN 0 */
unsigned int adc_v;
double adcx;
double temp;
/* USER CODE END 0 */
int main(void)
{
HAL_Init();
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_ADC_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_ADC_Start(&hadc);
adc_v = HAL_ADC_GetValue(&hadc);
cubemx配置AD为内部温度传感器通道。 以下为程序:定义温度值变量adc_v;采用HAL库的HAL_ADC_Start(&hadc);和 HAL_ADC_GetValue(&hadc);两个语句。后面有断点执行截图。
/* USER CODE BEGIN 0 */
unsigned int adc_v;
double adcx;
double temp;
/* USER CODE END 0 */
int main(void)
{
HAL_Init();
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_ADC_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_ADC_Start(&hadc);
adc_v = HAL_ADC_GetValue(&hadc);
生成IAR代码,下面是代码;实际adc_v 的值,断点查看为670~680。
/* USER CODE BEGIN 0 */
unsigned int adc_v;
double adcx;
double temp;
/* USER CODE END 0 */
int main(void)
{
HAL_Init();
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_ADC_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_ADC_Start(&hadc);
adc_v = HAL_ADC_GetValue(&hadc);
}
补充AD断点采样截图
/* USER CODE BEGIN 0 */
unsigned int adc_v;
double adcx;
double temp;
/* USER CODE END 0 */
int main(void)
{
HAL_Init();
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_ADC_Init();
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_ADC_Start(&hadc);
adc_v = HAL_ADC_GetValue(&hadc);
}
/* USER CODE END 3 */
}
注:同样的程序,将ADC采样通道配置为通道IN0,外部输入较高电压时 可以得到4096这个数字量。
评分
查看全部评分