创建工程
具体见之前的工程,仍然使用默认配置
CubeMx新手按键点灯
由于要用到串口和adc通道,因此要进行配置
ADC 选择单通道 中断使能
串口还是用上一篇串口打印
不同的是 这里也要开中断
最后设置中断优先级,注意优先级先后
代码
添加头文件
// An highlighted block
#include <stdio.h>
在主函数前面添加这两个函数
int fputc(int c, FILE *stream) //重写fputc函数
{
/*
huart1是工具生成代码定义的UART1结构体,
如果以后要使用其他串口打印,只需要把这个结构体改成其他UART结构体。
*/
HAL_UART_Transmit(&hlpuart1, (unsigned char *)&c, 1, 1000);
return 1;
}
int get_adc_value() //获取adc1数值
{
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,10);
int adc_value=HAL_ADC_GetValue(&hadc1);
return adc_value;
}
主函数循环里写
while (1)
{
/* USER CODE END WHILE */
int adc_value=get_adc_value();
float voltage=adc_value*3.3/4032;
printf("value:%i voltage:%.2f v \r\n",adc_value,voltage);
HAL_Delay(500);
/* USER CODE BEGIN 3 */
}
电路连接
从板子的简介 开发板简介里看到ADC通道ADC1/1对应丝印A1处,与cubeMx里面的配置是对应的。