长沙企业网站建设较好的公司电商网站开发

news/2025/9/24 1:35:35/文章来源:
长沙企业网站建设较好的公司,电商网站开发,微信电脑网站是什么原因,重庆seo教程博客原标题#xff1a;STM32之ADC步骤小技巧#xff08;英文#xff09; 看到标题#xff0c;别吓到哈、并不是要用英文写、至于原因是什么、请往下看#xff1a; 言归正传#xff1a;STM32的ADC模块的特色 1、1MHz转换速率、12位转换结果#xff08;12位、记住这个12位哈、…原标题STM32之ADC步骤小技巧英文   看到标题别吓到哈、并不是要用英文写、至于原因是什么、请往下看        言归正传STM32的ADC模块的特色       1、1MHz转换速率、12位转换结果12位、记住这个12位哈、因为2^124096 也请记住4096哈            STM32F103系列在56MHz时转换时间为1μs                                     在72MHz时转换时间为1.17μs       2、转换范围03.6V  3.6v----当你需要将采集的数据用电压来显示的话设你采集的数据为x[0~4095],此时的计算公式就为(x / 4096) * 3.6       3、ADC供电要求2.4V3.6 V可千万别接到 5V 的石榴裙子底下呀       4、ADC输入范围VREF-≤ VIN ≤VREF (VREF和VREF-只有LQFP100封装才有)       5、双重模式(带2个ADC的设备): 8种转换模式       6、最多有18个通道16个外部通道                                  2个内部通道连接到温度传感器和内部参考电压(VREFINT 1.2V)    ......       12、DMA功能(仅ADC1有)       本博客里由于篇幅、所以就以独立模式下的单次转换为例哈、打开参考手册可以看到这段话        单次转换模式下ADC只执行一次转换。        该模式既可通过设置ADC_CR2寄存器的ADON位(只适用于规则通道)启动也可通过外部触发启动(适用于规则通道或注入通道)这时CONT位为0。        一旦选择通道的转换完成        ● 如果一个规则通道被转换 ─ 转换数据被储存在16位ADC_DR寄存器中 ─ EOC(转换结束)标志被设置 ─ 如果设置了EOCIE则产生中断。        ● 如果一个注入通道被转换 ─ 转换数据被储存在16位的ADC_DRJ1寄存器中 ─ JEOC(注入转换结束)标志被设置 ─ 如果设置了JEOCIE位则产生中断。        然后ADC停止。               对于以上的寄存器      1、ADC状态寄存器(ADC_SR)              2、ADC控制寄存器1(ADC_CR1)       3、ADC控制寄存器2(ADC_CR2)        EXTSEL[2:0]选择启动规则通道组转换的外部事件 (External event select for regular group)        ALIGN数据对齐 (Data alignment)        RSTCAL复位校准 (Reset calibration)        CALA/D校准 (A/D Calibration)        CONT连续转换 (Continuous conversion)        ADON开/关A/D转换器 (A/D converter ON / OFF)     4、ADC采样时间寄存器1(ADC_SMPR1)        SMPx[2:0]选择通道x的采样时间 (Channel x Sample time selection)     5、ADC规则序列寄存器1(ADC_SQR1)        L[3:0]规则通道序列长度 (Regular channel sequence length)        SQ1[4:0]规则序列中的第1个转换 (1st conversion in regular sequence)ADC规则序列寄存器3(ADC_SQR3)     6、ADC规则数据寄存器(ADC_DR)         DATA[15:0]规则转换的数据 (Regular data)   由于寄存器过于多我们就不在这一一列举了哈、、因为我主要是用库所以寄存器相关的位都不具体介绍了哈、请大家参照中文手册    在这里向大家介绍下数据对齐                                               ALIGN位用于设置对齐方式右或左                                               对于注入通道转换结果是减去偏移量的值可以为一个负数在右对齐时扩展位为符号位。       那我们现在要怎么来实现呢这个问题、相信大家在看了那么多的寄存器之后急迫想要知道的吧、、前面的只是个热身、、接下来步骤如下     1、开启ADC1的时钟由于ADC1是在PA1上所以同时也要打开PA的时钟并进行相关的配置、对于这个配置要把PA1设置成模拟输入为什么呢大家打开中文参考手册可以看到     啊哈、、这下子清楚了吧、    2、复位ADC1设置ADC1的分频因子记住这里的ADC的时钟不能超过14MHZ而且其采样周期长点会好点         ADCCLK---最快可达14MHz, 时钟来自经过分频器的PCLK2(2、4、6、8分频)         整个转换时间 采样时间 12.5个周期固定时间        在14MHz和采样时间位1.5周期时  转换时间1μs (14个周期 cycles)        当ADCCLK14MHz和1.5周期的采样时间         TCONV 1.5 12.5 14周期 14×(1 / (14 × 1000000)) 1μs        其采样周期一览表       涉及到采样周期、这里来看看转换序列     最多达16个转换通道且可以采样不同的顺序排列不同的采样时间和过采样的可能性。 例如- 转换通道1、2、8、4、7、3、11                            - 不同的采样时间                            - Oversampling of channel 7。   3、初始化ADC1的参数、设置ADC1的工作模式和规则序列的相关信息        大家通过打开stm32f10.adc.h可以看到   1 typedef struct 2 { 3 uint32_t ADC_Mode; //设置ADC模式--独立模式 4 FunctionalState ADC_ScanConvMode; //设置是否开启扫描模式 ---否 5 FunctionalState ADC_ContinuousConvMode; //设置是否开启连续转换模式 ----否 6 uint32_t ADC_ExternalTrigConv; //设置启动规则转换组转换模式----软件触发 7 uint32_t ADC_DataAlign; //设置数据对齐方式-----右对齐 8 uint8_t ADC_NbrOfChannel; //设置规则序列的长度----顺序进行规则转换的ADC通道数目1 9 }ADC_InitTypeDef;  4、使能ADC并校准 注在设置完了以上信息后使能AD转换器执行复位校准和AD校准这两步校准一定要否则数据将不准 还有记住每次进行校准之后都要等待校准结束但是通过什么方式知道校准结束呢 这里是通过获取校准状态来判断是否校准结束相关的库函数请看代码       分别的库函数请看待会的代码。请用比较老外的方式去看也就是用英语啦为什么呢请看下文  5、读取AD的值     当然这里说读取AD值并不是那么的简单以上我们只是准备好了AD还没有设置相关的规则序列通道采样顺序以及采样周期设置完之后启动AD转换就行了、然后才直接读取哈、、       相关的库函数请看代码 1 void Adc_Init(void)2 {3 4 ADC_InitTypeDef ADC_InitStructure;5 GPIO_InitTypeDef GPIO_InitStructure;6 7 /* Enable ADC1 and GPIOA clock */8 RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);9 10 RCC_ADCCLKConfig(RCC_PCLK2_Div6);//12MHZ 11 12 /* Configure PA.1 (ADC Channel) as analog input -------------------------*/ 13 GPIO_InitStructure.GPIO_Pin GPIO_Pin_1; 14 GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN; 15 GPIO_Init(GPIOA, GPIO_InitStructure); 16 17 //ADC_DeInit(ADC1);//在这里复位被我注释掉了、至于为什么我待会会说 18 19 /* ADC1 configuration ------------------------------------------------------*/ 20 ADC_InitStructure.ADC_Mode ADC_Mode_Independent;//这里对应上面所讲的配置在这里就不给出注释了 21 ADC_InitStructure.ADC_ScanConvMode DISABLE; 22 ADC_InitStructure.ADC_ContinuousConvMode DISABLE; 23 ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None; 24 ADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right; 25 ADC_InitStructure.ADC_NbrOfChannel 1; 26 ADC_Init(ADC1, ADC_InitStructure); 27 28 /* Enable ADC1 *///知道我为啥要在上面提醒大家要用老外的方式来看了吧、因为这里的注释都是用英文的 29 //请不要以为我装逼我这样做是有原因的、、原因我待会会说、你也会明白我最初的标题为何那样写 30 31 ADC_Cmd(ADC1, ENABLE); 32 33 /* Enable ADC1 reset calibration register */ 34 ADC_ResetCalibration(ADC1); 35 /* Check the end of ADC1 reset calibration register */ 36 while(ADC_GetResetCalibrationStatus(ADC1)); 37 38 /* Start ADC1 calibration */ 39 ADC_StartCalibration(ADC1); 40 /* Check the end of ADC1 calibration */ 41 while(ADC_GetCalibrationStatus(ADC1)); 42 }   1 u16 Get_val(u8 ch)2 {3 u16 DataValue; //又是英文注释、、啊哈 4 /* ADC1 regular channel14 configuration */ 5 ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5);6 7 /* Start ADC1 Software Conversion */ 8 ADC_SoftwareStartConvCmd(ADC1, ENABLE);9 10 /* Test if the ADC1 EOC flag is set or not */ 11 12 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); 13 //FlagStatus Status; 14 //Status ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC); 15 //while(!Status);----这样做实现不了、请注意 16 /*Returns the ADC1 Master data value of the last converted channel*/ 17 DataValue ADC_GetConversionValue(ADC1); 18 return DataValue; 19 } 20 21 u16 ADC_Get_aveg(u8 ch,u8 n) 22 { 23 u32 ad_sum 0; 24 u8 i; 25 for(i0;in;i) 26 { 27 ad_sum Get_val(ch); 28 delay_ms(5); 29 } 30 return (ad_sum / n); 31 } 32 33 adcxADC_Get_aveg(ADC_Channel_1,10);//获取AD数值0~4095 34 35 temp(float)adcx*(3.3/4096);//获取相应的电压值          到了这一步我们已经完成了AD采集数据的任务、接下来有人可能有时候会觉得很纳闷为什么有些人知道要完成特定的功能它的步骤是怎么样的、为什么我就不知道这个问题嘛、、接下来我讲的希望能稍微帮你也希望你能好好的借鉴、      步骤小技巧其实也没啥的、大家知道下载库的文件的时候里面都有包含每个模块的例子和一个模版、拿ADC这个模块来举例    点击main.c可以看到神奇的一幕    大家仔细看看可以发现在官方给的历程中的步骤里并没有复位ADC的函数个人觉得所以没有必要去复位当然复位也不是什么坏事哈、看你个人、、看到这、应该明白了我前面的说法了吧、还有、大家应该也注意到了、都是英文的注释、、所以看到这大家也清楚了前面不是我装逼、、所以呢、其实英语对于我们来说还是很重要的、、那有人问时钟的分频因子呢怎么没有设置不急哈、、请看 对于分频因子的设置也在这个函数里而这个RCC_Configuration在最开始已经使用 了、、   所以大家要好好利用官方给的历程。  转载于:https://www.cnblogs.com/zwdly/p/8193044.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高校文明建设网站ip 查询地址

TridentTopology创建过程详解 从用户层面来看TridentTopology,有两个重要的概念一是Stream,另一个是作用于Stream上的各种Operation。在实现层面来看,无论是stream,还是后续的operation都会转变成为各个Node,这些Node之间的关系通…

自己如何做家政网站wordpress百度不收录

腾讯云轻量应用服务器和云服务器哪个好?云服务器CVM更好,但是轻量应用服务器性价比更高,轻量应用服务器CPU内存公网带宽配置更高,价格更优惠。腾讯云服务器网txyfwq.com轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&…

专业开发网站多少钱网站开发服务转包合同

大模型论文阅读:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING 论文链接:https://arxiv.org/pdf/2303.10512v1.pdf 当存在大量下游任务时,微调所有预训练模型的参数变得不可行。因此,为了以参数高效的方式学习预训练权重的增量更新,提出了许多微调方法,…

建设银行东航龙卡登录东航网站采购管理软件免费版

第17章《干系人管理》(第一部分) 1 章节内容2 管理基础3 管理过程3.1 管理的过程★★★ (22上44)3.2 管理ITTO汇总★★★ 1 章节内容 【本章分值预测】大部分内容不变,细节有一些变化,预计选择题考2分&…

网站做su什么意思乐清网站艰涩

随着AIGC的爆火,图片生成技术得到飞速发展,当前AI生成的图片已达到真假难辨的高保真度。例如stable diffusion与midjourney为代表的文生图大模型。不过,当合成图片中出现文字内容时,现存的AI技术依然无法驾驭文字内容。因此,modescope提出了一种新型的文字生成方法,此方法…

做网站口碑比较好的大公司城市建设模拟游戏登陆网站

松任谷由实是谁?日本人引以为傲的queen of pops?没错,但她,却不仅只是这样。她是日本音乐界的女王,日本流行音乐界始祖级别的人物,日本新音乐活着的精神象征,日本流行界天花板级别的歌手。她和其…

网站vps无法登陆东莞市手机网站建设平台

本文介绍自己建立一个redis-cluster集群的实践,三主三从,使用docker搭建。 其实搭建很简单,就是建立6个容器,每个容器配置不同的端口号,其他的都是一样的。 假设建立6个端口号分别为 5555到5560。 配置文件 port 5…

如何查询网站开发商公益网站建设

oracle 11g 数据库cmd修改用户名密码及创建用户1. 数据库oracle 11g cmd命令修改用户名和密码1.1. 前言1.2. cmd窗口登录oracle1.3. 更改system用户的密码1.4. 测试修改成果2. 创建新用户并赋予权限2.1. cmd窗口登录oracle2.2.创建用户2.3.分配权限2.4.oracle用户权限等级1. 数…

中山市建设工程 交易中心网站深圳论坛网站设计哪家公司好

1.spring boot 读取application.properties 该文件是iso8859编码 如果是直接写中文 读取时会乱码 显示成?? 必须得转ascii码才能正常显示 其他方法测试也不行 Value("${apig.order.tiaokong.qianzi}") private String apigOrderTiaokongQianzi;

免费网站建站凡科建站工程建设云小程序

你好 具有新JMetro样式的另一个版本(深色和浅色版本): 分割菜单按钮 分割窗格 药丸按钮/分段按钮 调整现有样式和错误修复。 继续阅读以获取详细信息。 分割菜单按钮 以下是一个动画,显示了新的“拆分菜单按钮” JMetro浅色…

有哪些熟悉的网站是jsp做的咨询公司企业文化

5月5日至9日是武汉市中考网上报名填报志愿的日子,填报志愿之前应提前了解本区的一批次、二批次和三批次学校的名单,了解其历年录取分数线,并选中最合适最理想的一所学校进行填写,下面我们来看详细名单。武汉各区一、二、三批次高中…

网站定制兴田德润实力强百度小程序怎么打开

前言友情提示:建议阅读本文之前先了解下.Net Core配置体系相关,也可以参考本人之前的文章《.Net Core Configuration源码探究 [1]》然后对.Net Core的Configuration体系有一定的了解,使得理解起来更清晰。在.Net6中关于配置相关多出一个关于配置相关的类…

山西专业制作网站免费软件站

1 引言 在Anaconda中如果没有指定路径,虚拟环境会默认安装在anaconda所安装的目录下,但如果默认环境的磁盘空间不足,无法满足大量安装虚拟环境的需求,此时我们需要更改虚拟环境的安装路径,有以下两种方案: 方案1: 每次…

系统集成销售和网站建设销售重庆住房和城乡建设厅官方网站

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…

wordpress全站美化流水线 东莞网站建设

WhisperFusion 基于 WhisperLive 和 WhisperSpeech 的功能而构建,在实时语音到文本管道之上集成了大型语言模型 Mistral (LLM)。 LLM 和 Whisper 都经过优化,可作为 TensorRT 引擎高效运行,从而最大限度地提高性能和实时处理能力。WhiperSpe…

seo长尾关键词搜外seo

目录 一、3407. 子字符串匹配模式二、3408. 设计任务管理器三、3409. 最长相邻绝对差递减子序列四、3410. 删除所有值为某个元素后的最大子数组和 一、3407. 子字符串匹配模式 题目链接 字符串匹配问题,把字符串 p 分成两段 、,i 是 ’ * ’ 的下标&am…

字符串哈希模板

bool isprime(int n) {if (n <= 1) {return false;}for (int i = 2; i * i <= n; i++) {if (n % i == 0) {return false;}}return true; } int findPrime(int n) {while (!isprime(n)) {n++;}return n; }void sl…

微企点做的网站百度搜得到吗竞价如何屏蔽恶意点击

目录 冒泡排序算法:) 选择排序算法:) 插入排序算法:) 冒泡排序算法:) 思想&#xff1a;依次比较相邻两个元素&#xff0c;重复的进行直到没有相邻元素需要交换&#xff0c;排序完成。 #!/bin/bash arr(12 324 543 213 65 64 1 3 45) #定义一个数组 n${#arr[*]} #获取数组…

朋友圈网站文章怎么做的wordpress分类目录seo

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式是什么&#xff1f; Redis 的发布订阅模式允许多个客户端订阅一个频道&#xff0c;当消息被发布到该频道时&#xff0c;所有订阅该频道的客户端都会收到该消息。Redis 的发布订阅模式分为两个角色&#xff1a;发布者和订阅…

闲鱼怎么做钓鱼网站怎么推广自己的店铺

Go并发&#xff1a;Goroutine 1.并发基础概念&#xff1a;进程、线程、协程 (1) 进程 可以比作食材加工的一系列动作 进程就是程序在操作系统中的一次执行过程&#xff0c;是由系统进行资源分配和调度的基本单位&#xff0c;进程是一个动态概念&#xff0c;是程序在执行过程…