ADC采样串口显示采样结果(STM32F103RCT6)

本文重点叙述如何使用单片机STM32F103RCT6的ADC外设进行电压采样并通过串口显示。

一、硬件连接

STM32F103RCT6共有三个ADC,本例中使用ADC1(对应数据手册中的ADC123)的通道1进行采样。ADC1的通道1对应的引脚为PA1。

注意:使用ADC采样时,必须要给ADC提供参考电压(即VREF),并且采样电压不可超过3.3V,如果待采样值超过3.3V或者过小,则需要是使用运放将其缩小或放大,为保证ADC被充分利用,待采样的最大值应接近3.3V,使得采样结果更为准确。

二、程序代码(HAL库)

“adc.h”文件

#ifndef __ADC_H
#define __ADC_H

#include "./SYSTEM/sys/sys.h"

void adc_init(void);            /* ADC初始化 */
u16 get_adc_result(u32 ch);     /* 获得通道值 */
u16 get_adc_result_average(u32 ch, u8 times);   /* 取平均值 */

#endif

“adc.c”文件

#include "adc.h"
#include "./SYSTEM/delay/delay.h"

ADC_HandleTypeDef        ADC1_Handler;

/******************************* ADC初始化 ***********************************/

void adc_init()
{
    RCC_PeriphCLKInitTypeDef    ADC_CLKInit;    /* 外设时钟初始化结构体 */
    
    ADC_CLKInit.PeriphClockSelection = RCC_PERIPHCLK_ADC;   /* 选择ADC时钟 */
    ADC_CLKInit.AdcClockSelection = RCC_ADCPCLK2_DIV6;      /

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值