STM32入门学习之ADC(STM32F030F4P6基于CooCox IDE)
来源:互联网 发布:windows 10 mobile安卓 编辑:程序博客网 时间:2024/05/29 14:31
#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;//单次ADCADC_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){}}
1 0
- STM32入门学习之ADC(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之USART(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之DMA(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(一)
- STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(二)
- STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(三)
- STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(寄存器操作版)
- STM32入门学习之USART中断(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之SysTick系统定时器(STM32F030F4P6基于CooCox IDE)
- STM32入门学习之EXTI外部中断(STM32F030F4P6基于CooCox IDE)
- STM32入门之ADC学习总结
- STM32之ADC学习
- STM32之ADC学习
- STM32学习笔记之ADC
- STM32学习笔记之ADC
- STM32之ADC实例(基于DMA方式)
- STM32学习笔记之ADC--DMA方式
- STM32单片机之ADC学习总结
- c++中utf-8转gb2312
- 多级文件系统
- 在cocos2d-x中动态绘制二维码
- 12、UI_01Android中ListView切换批量模式动画效果
- Android动态改变应用程序语言
- STM32入门学习之ADC(STM32F030F4P6基于CooCox IDE)
- NFA/DFA算法
- 数据库字符串连接
- Jmeter(二)-使用代理录制脚本
- c语言中的运算优先级
- Oracle小心得+前言
- 《算法竞赛入门经典2ndEdition 》习题3-11 换低挡装置(Kickdown, Uva1588)
- Android Studio遇到Error:Failed to find: com.android.support:appcompat-v7:21.+
- 转:PC上 python 通过串口和 arduino 读写交互成功,哈哈,真好玩