技术标签: ADC STM32 AD采样 AD转换 F0xx
STM32F0xx的AD转换程序。
该例程使用的是PB01引脚,AD功能为ADC_IN9,查数据手册,如下图所示。
首先初始化引脚:
void adc_init( void )
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_ADC1, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init( GPIOB, &GPIO_InitStructure );
ADC_Configuration();
}
然后,初始化ADC的功能:
void ADC_Configuration( void )
{
ADC_InitTypeDef ADC_InitStructure;
ADC_DeInit( ADC1 );
ADC_StructInit( &ADC_InitStructure );
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;
ADC_Init( ADC1, &ADC_InitStructure );
ADC_ChannelConfig( ADC1, ADC_Channel_9, ADC_SampleTime_239_5Cycles );
ADC_GetCalibrationFactor( ADC1 );
ADC_Cmd( ADC1, ENABLE );
while ( !ADC_GetFlagStatus( ADC1, ADC_FLAG_ADRDY ) );
ADC_StartOfConversion( ADC1 );
}
ADC_ChannelConfig( ADC1, ADC_Channel_9, ADC_SampleTime_239_5Cycles );
其中ADC的通道配置函数,配置为ADC1,通道9,采样周期为ADC_SampleTime_239_5Cycles。
接下来直接使用获取AD值的函数,ADC_GetConversionValue( ADC1 ); 该函数位于#include "stm32f0xx_adc.h"的文件中。
下述函数为获取8次ADC的值,求和后求平均,然后转换为电压值(单位:V)avg*3300/4096 。
uint32_t ADC_Check( void )
{
uint32_t ResultVolt = 0;
uint8_t i;
for ( i = 0; i < 8; i++ )
{
while ( ADC_GetFlagStatus( ADC1, ADC_FLAG_EOC ) == RESET );
ResultVolt += (uint32_t)ADC_GetConversionValue( ADC1 );
}
// 求平均
ResultVolt = ResultVolt >> 3;
// 求得1000倍电压值
//ResultVolt = (ResultVolt*3300) >> 12;
return ResultVolt;
}
文章浏览阅读5.3k次。登陆时候可能需要向后台传输一个唯一标识符具体实现思路如下:1、引入js2、写入3-最终打印出来结果,发送给后台_vue获取设备唯一标识
文章浏览阅读2.6k次,点赞3次,收藏10次。arm gcc工具链下载简介_arm gcc 下载
文章浏览阅读3.6k次,点赞6次,收藏42次。HTML指的是超文本语言,它是用来描述网页的的一种语言。HTML不是编程语言,而是一种标记语言。标记语言是一套标记标签。_html的
文章浏览阅读1.8k次。需求:在做树形可视化图形时,需要相应的json文件为树形结构。本例为将所有IP进行一个统计,合并同类项,之后根据IP的四个字段分为四层。第一层为第一个字段,第二层为第二个字段,以此类推,总共四层。数据格式类似下图:image.png实现思路:1.将IP统计后的结果以dataframe的数据结构存储;2.定义两种节点:非叶子节点:node={"name":"","children":[]}叶子节点:..._树图展开json文件 python
文章浏览阅读210次。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> heap; //新建一个哈希表,把每一个数值映射为他的下标 for(int i=0;i<nums.size();i++){ //遍历每个数 int r = t._力扣主函数
文章浏览阅读438次。CRNN 英文识别 代码运行测试环境搭建运行过程如下所测试代码https://github.com/meijieru/crnn.pytorch环境搭建参照: requirements.txt 文件lmdb==0.97numpy==1.17.2Pillow==6.1.0six==1.12.0torch==1.2.0torchvision==0.4.0一个普通的 pytorch1.2 环境搭建操作,实测 安装 torch1.4 一样可以运行:conda create_crnn在线测试
文章浏览阅读4.9k次。《中国古代文学三》作业第一章 元曲的形成和兴盛一、填空题:1、我国的戏剧,其起源、形成,经历了漫长的时期。从先秦( )、汉魏( )、隋唐( )发展到宋代院本,表演要素日臻完善。2、元代创作的剧本,数量颇多。据统计,现存剧本名目,杂剧有( )多种,南戏有( )种。3、元代戏曲包含( )和( )两种主要形式。4、元代可分为南北两大戏剧圈,前期北方的活动中心在(_登金陵雨花台望大江艺术特色
文章浏览阅读786次。青春是热血、朝气、尴尬等等名词的汇聚,对于90后来说非主流、大头贴等一堆不堪回首的记忆充满了我们的记忆。往往这些记忆都保存在了放着DJ等非主流音乐的空间中,永远封锁只对自己开放。随着QQ也开通了账号注销功能,保存在QQ空间的数据也不是永远存在了。虽然这是一段我们不堪回首的青春记忆,虽然现在最年轻的00后都已经19岁了,青春的世界不再属于90后了。但是回忆还是要存储下来的,可是值得90后回忆的不仅..._群晖可以备份qq聊天记录吗
文章浏览阅读2.7k次。一、结构体/类的定义和实现分离,代码可读性更强(非必须)//xxx.h头文件struct Test{ int x; int y; int z; void Init(int x,int y,int z); void Function1(); void Function2(); void Function3();}//xxx.cpp#include<stdio.h>#include"structure.h"void Test::Init(int x, int y, _class public和private
文章浏览阅读70次。/*** 上传图片*/class imgUpload{static protected $a;protected $formName; //表单名称protected $directory; //文件上传至目录protected $maxSize; //最大文件上传大小protected $canUpload; //是否可以上..._php上传图片 缩略图
文章浏览阅读737次。入门案例class QuotesSpider(scrapy.Spider): name = 'quotes' start_urls = [ 'http://quotes.toscrape.com/tag/humor/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'aut_3.6.1 scrapy 的版本
文章浏览阅读625次,点赞10次,收藏10次。这边是用户购买vip的一个支付代码,使用统一下单,主要是jsapi支付。_小程序统一下单接口