#include "stm32_lib/inc/stm32f0xx_rcc.h"
#include "stm32_lib/inc/stm32f0xx_adc.h"
#include "stm32_lib/inc/stm32f0xx_gpio.h"
int main(void)
{
//时钟配置
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);
//ADC IO配置,此处定义PA0口为ADC端口
GPIO_InitTypeDef PORT_ADC;
PORT_ADC.GPIO_Pin=GPIO_Pin_0;
PORT_ADC.GPIO_Mode=GPIO_Mode_AN;
PORT_ADC.GPIO_PuPd=GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA,&PORT_ADC);
//ADC 参数配置
ADC_InitTypeDef ADC_InitStuctrue;
ADC_InitStuctrue.ADC_Resolution=ADC_Resolution_12b;//12位精度
ADC_InitStuctrue.ADC_ContinuousConvMode=DISABLE;//单次ADC
ADC_InitStuctrue.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;
ADC_InitStuctrue.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐
ADC_InitStuctrue.ADC_ScanDirection=ADC_ScanDirection_Backward;//数据覆盖
ADC_Init(ADC1,&ADC_InitStuctrue);
//配置ADC采样的通道和采样周期
//PA0对应ADC通道0
//注意,采集的数据是否准确与采样时间有关系
ADC_ChannelConfig(ADC1,ADC_Channel_0,ADC_SampleTime_239_5Cycles);
//如果采集系统内部温度,则通道为16,同时要使能温度传感器
//ADC_ChannelConfig(ADC1,ADC_Channel_16,ADC_SampleTime_239_5Cycles);
//ADC_TempSensorCmd(ENABLE);
//校准
ADC_GetCalibrationFactor(ADC1);
//使能
ADC_Cmd(ADC1,ENABLE);
//等待ADC准备
while(ADC_GetFlagStatus(ADC1,ADC_FLAG_ADEN)==RESET);
//软件启动ADC转换
ADC_StartOfConversion(ADC1);
//等待ADC完成
while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)==RESET);
//所得数据即为ADC数据
unsigned short adc_data=ADC_GetConversionValue(ADC1);
/*
//如果采集的是16通道,即芯片温度,则温度的值如下
//下面这段代价,参考STM32F030数据手册(寄存器版)A.7.16
//出厂校准数据所存储的地址,30°C和110°C的ADC值
#define TEMP110_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7C2))
#define TEMP30_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7B8))
#define VDD_CALIB ((uint16_t) (330))
#define VDD_APPLI ((uint16_t) (300))
int32_t temperature;
temperature = (((int32_t) ADC1->DR * VDD_APPLI / VDD_CALIB)- (int32_t) *TEMP30_CAL_ADDR );
temperature = temperature * (int32_t)(110 - 30);
temperature = temperature / (int32_t)(*TEMP110_CAL_ADDR- *TEMP30_CAL_ADDR);
temperature = temperature + 30;
*/
while(1)
{
}
}
上一篇:[CortexM0--stm32f0308]关于GPIO
下一篇:STM32F030系列实现仿位带操作
推荐阅读最新更新时间:2024-03-16 16:08
设计资源 培训 开发板 精华推荐
- 推荐有礼,分享有你!DSP学习季开学了,推荐你最喜欢的TI DSP资料!
- Silicon Labs BG22-EK4108A 开发套件 用科技连接未来 申请进行时!
- 阅读并了解是德科技汽车电子、物联网(IOT) 精彩专题,答题赢好礼!
- 您的电路保护有足够的空间吗?Littelfuse的881系列保险丝迎接这一挑战
- 【有奖下载】英飞凌《时尚小家电功率器选型指南》,详解兼具强大功能与潮流款式的小家电设计!
- ADI 全新技术资料集锦
- 是德科技有奖问答活动之四,使用实时示波器进行串扰分析,答题闯关赢好礼!
- 免费试用Atmel MCU开发板,抢“鲜”体验优越性能,更有大奖等你拿!
- 你是课代表——TI培训最受欢迎课程由你做主 发帖荐课即可参与幸运抽奖!