1、准备开发板
这里我选用了一块网红开发板:”小熊派“,这款板子的人气比较高,还是全国大学生物联网设计竞赛(华为杯)的华为竞赛开发板,我个人也比较喜欢用这款板子,这款板子在放在纸箱吃灰半年之后,被我重新拿了起来,并想借此写博客的机会,整理一下自己的代码。
开发板功能区分布图
开发板俯视图
2、STM32CubeMX生成代码
搜索并选择芯片型号
配置系统时钟
配置时钟树
STM32L4的最高主频可达到80M,最后使HCLK = 80Mhz
即可:
配置串口
配置ADC
生成工程设置
代码生成配置
生成代码
生成成功
3、在MDK中编写代码
在adc.h中的用户代码区编写以下代码
/* USER CODE BEGIN Prototypes */
uint32_t ADC_GetValue(void);
/* USER CODE END Prototypes */
在adc.c中的用户代码区编写以下代码
uint32_t ADC_GetValue(void)
{
uint32_t adc_value;
HAL_ADC_Start(&hadc1); //启动ADC单次转换
HAL_ADC_PollForConversion(&hadc1, 50); //等待ADC转换完成
adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据
return adc_value;
}
在main.c中的main函数的用户代码区编写以下代码
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
float smoke_value = (float)ADC_GetValue()/4096*3.3;
printf("smoke_value:%f\r\n",smoke_value);
HAL_Delay(1000);
}
/* USER CODE END 3 */
4、配置烧录器