一、前期准备
1、硬件:
- STM32C8T6最小系统板
- USB-TTL串口模块
- ST-Link下载器
2、软件:
- keil5-IDE
- cubeMX
二、cubeMX配置
1、配置RCC——选着外部时钟源
2、配置SYS—— Serial Wire模式
3、时钟树拉满72M
- ADC时钟不能超过14M
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) ;