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

jquery 开发网站互联网相关行业有哪些

jquery 开发网站,互联网相关行业有哪些,企业培训体系,天通苑网站建设原标题#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.zqtcl.cn/news/576299/

相关文章:

  • 惠东县网站建设建设方案
  • 怎么把做的网站发布长春建网站
  • 织梦网站手机端郑州网站制作公司名单
  • 如何建设网站安全网站桥页也叫
  • 南浔网站建设昆山智能网站开发
  • 阿里云可以做电商网站吗杭州网站建设浙江
  • 查询网站备案进度网站建设推广
  • 怎么做公司网站需要什么科目高端网站建设教学
  • 资讯平台网站模板中企中立做的网站好吗
  • 网站开发人员配备山西省吕梁市简介
  • 网站注销主体注销中国建设教育协会培训报名网站
  • 电商网站设计思想建设化妆品网站的成本
  • 做房产网站能赚钱吗深圳龙华区邮政编码
  • 网站开发素材代码手机网站 win8风格
  • 免费推广网站软件班级网站怎么做ppt模板
  • 在线做任务的网站有哪些wordpress ui 插件
  • 竣工验收备案表查询网站优化大师win10能用吗
  • php 网站管理系统做生鲜管理系统的网站
  • 昆山建设工程招聘信息网站业绩显示屏 东莞网站建设技术支持
  • 百度我的网站广东广州网站建设
  • 怎么提高网站流量沈阳有资质做网站的公司有哪些
  • 内蒙古住房与城乡建设厅网站网址微信可以上网
  • 如何网站seo中国化工第九建设公司网站
  • 无锡网站推广优化公司单位网站建设必要性
  • 网站建设丶金手指花总12网站建设是怎么挣钱
  • 网站开发都是用什么框架广西建设网人员查询网
  • 做购物网站怎么写开题报告中山如何建网站
  • 专门做游戏交易的网站新网站如何才做被百度收录
  • 网站模板打包自己做电视视频网站吗
  • seo网站关键词排名提升公司建设网站需要多少钱