当前位置: 首页 > news >正文

宁波网站建设详细方案模板wordpress首页太慢

宁波网站建设详细方案模板,wordpress首页太慢,博兴做网站,专业网站建设定制公司哪家好文章目录 ADC简介逐次逼近型ADCADC框图转换模式数据对齐转换时间校准ADC基本结构ADC单通道工程代码#xff1a; ADC简介 STM32的ADC#xff08;Analog-Digital Converter#xff09;模拟-数字转换器#xff0c;是一种逐次逼近型模拟数字转换器#xff0c;可以将引脚上连续… 文章目录 ADC简介逐次逼近型ADCADC框图转换模式数据对齐转换时间校准ADC基本结构ADC单通道工程代码 ADC简介 STM32的ADCAnalog-Digital Converter模拟-数字转换器是一种逐次逼近型模拟数字转换器可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量建立模拟电路到数字电路的桥梁。拥有18个输入通道可测量16个外部通道和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 输入电压范围0-3.3V转换结果范围0~4095 在STM32F103C8T6 ADC资源ADC1、ADC210个外部输入通道 逐次逼近型ADC 这个一个经典的逐次逼近型ADC有8个输入通道会在通道选择开关进行选择通过地址锁存和译码进行锁定要输出的信号。利用ADDAADDBADDC进行锁存ALE进行译码。 接着到比较器它将输入信号与DAC数值模拟转换器的输出进行比较在开始转换之前DAC会输出一个初始值然后与输入信号进行比较比较结果会被送到一个控制逻辑电路上控制逻辑电路根据比较结果调整ADC的输出值这个过程会重复进行直到ADC的输出与输入信号精度足够接近。每次调整DAC的输出都使其更加接近于输入信号的值。当DAC的输出与输入信号的差异在可接受范围内时转换结束。 逐次逼近型寄存器就是将调整DAC输出的值通过二分查找的方法找到接近输入信号的值。 最后将最终值放入三态锁存寄存器就可以进行输出了。 上面的CLOCK是ADC的时钟通过它可以控制ADC的运行速度和转换精度。由于转换需要一定时间可通过它控制转换速度。还可以实现与外部时钟同步。 START是运行控制位EOC是转换结束标志位。 ADC框图 我们先从输入口看大体上与传统的逐次逼近型ADC无差异这里有16个外部通道和两个内部资源通道。接着会通过数据选择器可以到注入通道或者规则通道。 注入通道最多可以有4个输入通道涌入而规则通道可以有16个输入通道涌入。 这里的模拟数字转换器原理就是逐次逼近型ADC的原理。 对于规则通道寄存器只能存储一个结果所以如果有多个通道进行转换的话那么先存储的结果会被后来的结果覆盖过去这有可能造成结果丢失这里的DMA请求就会解决这种后果通过对寄存器地址的移动让数据存储在不同的地址这样就不会数据丢失具体下一章讲解。 那注入通道就是一次可以存储4个结果注入通道还有一些具体的内容这里不展开叙述。 ADCCLK就是时钟可控制采样时间和转换时间 最后汇集到地址数据总线上进行输出。 左下角是触发转换的部分对应逐次逼近型的START信号对于STM32有两种触发方式一种是软件触发通过在程序中进行编写代码进行启动另一种是硬件触发就是图中的触发源有定时器各个通道和定时器主模式的输出还有外部中断引脚触发转换。 模拟看门狗会根据比较的结果在一定范围内进行判断一旦超出所在范围那么将会产生看门狗事件 转换结束后规则通道的信号和注入通道的信号都会产生标志位标志位可以触发中断使能使其中断 转换模式 在ADC中有两种转换模式可以搭配扫描模式一同使用 单次转换模式下 ADC只执行一次转换。连续转换模式中当前面ADC转换一结束马上就启动另一次转换。扫描模式用来扫描一组模拟通道。 单转换非扫描模式 每一次转换都需要进行一次触发转换结束后会置出一个结束标志位当进行下一次转换时又需要进行重新触发和置出结束标志位。 连续转换非扫描模式 连续转换只需要在一开始进行转换触发那么接下来的每一次转换都不需要进行转换触发 且转换一次后会迅速进入下一次转换每一次EOC会被标志这里可以理解为转换完成后EOC自动标志了。 单次转换扫描模式 扫描模式会对所选通道都进行扫描由于是单次转换后来的通道内容会将前面的通道内容进行覆盖所以如图中所示到最后只有通道6的内容进行输出 连续转换扫描模式 同样的道理到最后只有通道6的内容会进行输出 所以扫描模式都会与DMA进行搭配让数据不产生丢失的情况 数据对齐 对于规则通道来说输出结果只有12位有效而数据存储器有16位所以这里就会产生两种方式进行存储 右对齐数据高位补0这是我们常用的方式 左对齐数据低位补0这样操作会使数据扩大16倍 转换时间 AD转换的步骤采样保持量化编码 STM32 ADC的总转换时间为 TCONV 采样时间 12.5个ADC周期 例如当ADCCLK14MHz采样时间为1.5个ADC周期 TCONV 1.5 12.5 14个ADC周期 1μs 校准 ADC有一个内置自校准模式。校准可大幅减小因内部电容器组的变化而造成的准精度误差。在 校准期间在每个电容器上都会计算出一个误差修正码(数字值)这个码用于消除在随后的转换 中每个电容器上产生的误差。 建议在每次上电后执行一次校准 启动校准前 ADC必须处于关电状态超过至少两个ADC时钟周期。 ADC基本结构 通过输入端口到AD转换器AD转换器需要触发控制和时钟进行初始化。转换结束后会产生标志位接着将数据结果储存到AD数据寄存器中。该结构需要开关进行控制启动。 ADC单通道工程 接线方式 通过对电位器的旋转在OLED显示屏上显示数字转换后的结果。 代码 OLED代码所取处 AD.h #ifndef __AD_H__ #define __AD_H__void AD_Init(); uint16_t AD_GetValue();#endif AD.c #include stm32f10x.h // Device headervoid AD_Init() {//开启外设时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//配置ADC时钟RCC_ADCCLKConfig(RCC_PCLK2_Div6); // 72M/612MHz//引脚初始化GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_ModeGPIO_Mode_AIN; //模拟输入GPIO_InitStructure.GPIO_PinGPIO_Pin_0;GPIO_InitStructure.GPIO_SpeedGPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);//为所选ADC规则通道配置其序列器对应等级和采样时间ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);//ADC结构体成员ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_ContinuousConvModeDISABLE; //指定通道模式为连续转换或者单转换ADC_InitStructure.ADC_DataAlignADC_DataAlign_Right; //数据对齐方式ADC_InitStructure.ADC_ExternalTrigConvADC_ExternalTrigConv_None; //启动规则通道模拟电压到数字转换的外部触发器ADC_InitStructure.ADC_ModeADC_Mode_Independent; //配置ADC为独立模式或者双模式ADC_InitStructure.ADC_NbrOfChannel1;ADC_InitStructure.ADC_ScanConvModeDISABLE; //选择是否为扫描模式ADC_Init(ADC1,ADC_InitStructure);//ADC运行控制ADC_Cmd(ADC1,ENABLE);//重置所选ADC校准寄存器ADC_ResetCalibration(ADC1);//获取ADC复位状态复位后为0while(ADC_GetResetCalibrationStatus(ADC1));//开始校准ADC_StartCalibration(ADC1);//获取ADC所选标准位状态校准需要时间校准好后置0while(ADC_GetCalibrationStatus(ADC1)); }uint16_t AD_GetValue() {//启动ADC软件转换触发方式ADC_SoftwareStartConvCmd(ADC1,ENABLE);//检查ADC是否已有标志位还没有就为SET有为RESETEOC)while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC)RESET);//返回一个转换结果return ADC_GetConversionValue(ADC1); } main.c #include stm32f10x.h // Device header #include OLED.h #include AD.hfloat V; int main() {OLED_Init();AD_Init();OLED_ShowString(1,1,Value:);//显示电压OLED_ShowString(2,1,Volatge:0.00);while(1){V(float)(AD_GetValue()/4095*3.3);OLED_ShowNum(1,7,AD_GetValue(),4);OLED_ShowNum(2,9,V,1);OLED_ShowNum(2,11,(uint16_t)(V*100)%100,2);} } 数字范围0-4095 电压范围0-3.3V 对于显示屏上的波动效果是正常效果。由于转换总时间在1/12*55.512.55.6微妙 转换速度是非常快的而我们又在一个循环中不断显示结果每次输出结果是由逐次逼近型ADC进行比较输出的所以不可能每次比较值都非常精准多多少少会有些误差的波动。
http://www.dnsts.com.cn/news/46700.html

相关文章:

  • 简单的英文网站模板推广软文范文
  • 北京哪家做网站和网络推广好的湖北正规网站建设质量保障
  • 精选聊城做网站的公司苏州品牌网站制作公司
  • 做视频的网站那几个盈利了色彩 导航网站
  • 金融审核网站制作广告策划方案怎么做
  • 邹城网站建设多少钱网址怎么申请
  • 网站在哪里建立肇庆市有那家做网站的
  • 如何建设自己的企业网站秦淮网站建设
  • 忽悠别人做商城网站自己做的网站如何发布
  • 上海化工网站建设选择网站模板注意事项
  • 网站开发语言 .net免费seo网站诊断
  • 宝安建设投资集团网站个人网页设计师
  • 做炭化料的网站常州金坛建设局网站
  • 做基金哪个网站好企业网站服务器多少钱
  • 做网站怎么套模板素材网站有哪些
  • 成都规划网站中国世界排名前300的大学
  • 网站开发技术职责广告联盟上怎么做网站
  • 设计网站都有什么作用是什么原因河源市做网站
  • 西安工程建设信息网站购物网站优化方案
  • 适合服务行业做推广的网站广告艺术设计学什么
  • 做网站哪家服务器好wordpress禁止查看源代码
  • 石家庄做网站公司哪家好工程项目管理软件系统
  • 新乡网站建设哪家公司好wordpress怎么编辑网站
  • 网站上做旅游卖家要学什么怎么做网站的图片
  • 那个网站做玉石最专业如何建设学校的微网站首页
  • 榆林网站建设熊掌号淘宝网页设计尺寸
  • 天鸿建设集团有限公司 网站广告案例的网站
  • 网站建设如何找客户制作关于灯的网站
  • 合肥家居网站建设怎么样网站采集怎么做
  • 推销网站打电话沟通做网站