?一、前期准备
1、硬件:
- STM32C8T6最小系统板
- USB-TTL串口模块
- ST-Link下载器
2、软件:
?二、cubeMX配置
1、配置RCC——选着外部时钟源
2、配置SYS——?Serial Wire模式?
?
?3、时钟树拉满72M
?4、配置串口1? ??
?5、配置DMA
- 这里只有最后第 6 步需要修改,需要修改为循环模式,如下图
?6、配置ADC
- 开启扫描、连续模式
- number of converson?开了几个通道就选几
- Rank列表下是采样顺序,顺序基于已开启的通道可以自己设定
?
?7、生成工程
?
三、keil5代码
1、串口配置
??②usart.c添加如下代码
#include "stdio.h"
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit (&huart1 ,(uint8_t *)&ch,1,HAL_MAX_DELAY );
return ch;
}
2、main函数
①添加头文件
#include "stdio.h"
②while(1)前添加
uint16_t ADC_Value[3];
HAL_ADCEx_Calibration_Start(&hadc1); //AD校准
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC_Value,6);
③while(1)中添加
char str[64] ;
sprintf(str,"PA0电压:%.2fV PA1电压:%.2fV PA2电压:%.2fV",(ADC_Value[0]*3.3)/4095,(ADC_Value[1]*3.3)/4095,(ADC_Value[2]*3.3)/4095);
printf("%s\r\n",str) ;
HAL_Delay(1000) ;
四、效果
?
|