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

做网站的公司北京有哪些系统优化有什么用

做网站的公司北京有哪些,系统优化有什么用,公司长沙建站,o基础学建网站目录 一、ADC简介 二、逐次逼近型ADC内部结构 三、STM32内部ADC转换结构 四、ADC基本结构 五、输入通道 六、转换模式 6.1单次转换#xff0c;非扫描模式 6.2连续转换#xff0c;非扫描模式 6.3单次转换#xff0c;扫描模式 6.4连续转换#xff0c;扫描模式 七、…目录 一、ADC简介 二、逐次逼近型ADC内部结构 三、STM32内部ADC转换结构 四、ADC基本结构 五、输入通道 六、转换模式 6.1单次转换非扫描模式 6.2连续转换非扫描模式 6.3单次转换扫描模式 6.4连续转换扫描模式 七、触发控制 ​编辑 八、数据对齐 九、转换时间 十、硬件电路 十一、开发步骤 十二、ADC库函数 十三、实验 13.1 AD单通道 13.2 AD多通道 一、ADC简介 ADCAnalog-Digital Converter模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC(表示范围0-2^12-1(4095))1us转换时间(频率1MHz)       输入电压范围0~3.3V转换结果范围0~4095 18个输入通道可测量16个外部和2个内部信号源 规则组和注入组两个转换单元 模拟看门狗自动监测输入电压范围 STM32F103C8T6 ADC资源ADC1、ADC210个外部输入通道 二、逐次逼近型ADC内部结构 三、STM32内部ADC转换结构 ADCCLK来源于APB2 四、ADC基本结构 五、输入通道 六、转换模式 6.1单次转换非扫描模式 6.2连续转换非扫描模式 6.3单次转换扫描模式 6.4连续转换扫描模式 七、触发控制 八、数据对齐 一般采用右对齐读出来的数据直接就是结果 九、转换时间 ①AD转换的步骤采样保持量化编码 ②STM32 ADC的总转换时间为     TCONV 采样时间 12.5个ADC周期12位 例如当ADCCLK14MHz采样时间为1.5个ADC周期     TCONV 1.5 12.5 14个ADC周期 1μs 十、硬件电路 十一、开发步骤 ①开启RCC时钟包括ADC和GPIOADCCLK的分频器也要配置 ②配置GPIO模拟输入模式 ③配置多路开关将通道接入规则组列表中 ④结构体配置ADC转换器单次/多次、扫描/非扫描、通道数、触发源、数据对齐方式 可选⑤模拟看门狗配置阈值和监测通道开启中断ITConfigNVIC ⑤开关控制调用ADC_Cmd函数开启ADC校准 十二、ADC库函数 /*rcc.h*/ void RCC_ADCCLKConfig(uint32_t RCC_PCLK2); 作用配置ADCCLK分频器 /*adc.h*/ void ADC_DeInit(ADC_TypeDef* ADCx);//恢复缺省配置 void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);//Init初始化 void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);//StructInit结构体初始化 void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);//使能ADC void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);//开启DMA输出信号 void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);//中断输出控制 控制校准的函数 void ADC_ResetCalibration(ADC_TypeDef* ADCx);//复位校准 FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);//获取复位校准状态 void ADC_StartCalibration(ADC_TypeDef* ADCx);//开始校准 FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);//获取开始校准状态 void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); //ADC_软件开始转换控制用于软件触发的函数重要 FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx); //ADC获取软件开始转换状态一般不用 间断模式 void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number); //每隔几个通道间断一次 void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState); //是不是启用间断模式 void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime); //ADC规则组通道配置 参数 ①ADCx ②ADC_Channel通道 ③Rank序列几的位置 ④ADC_SampleTime指定通道的采样时间 void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState); //ADC_外部触发转换控制是否允许外部触发转换 uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx); //ADC获取转换值重要 uint32_t ADC_GetDualModeConversionValue(void); //ADC_获取双模式转换值 模拟看门狗 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog); //是否启动模拟看门狗 void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold); //配置高低阈值 void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel); //配置看门的通道 内部两通道 void ADC_TempSensorVrefintCmd(FunctionalState NewState); //ADC_温度传感器、内部参考电压控制 标志位 FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); //获取标志位状态 void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG); //清除标志位 ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT); //获取中断状态 void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT); //清除中断挂起位状态 十三、实验 13.1 AD单通道 实验现象用电位器产生一个0~3.3V连续变化的模拟电压信号接到PA0ADC读取数据显示到屏幕上 参考代码 AD.c #include stm32f10x.h // Device header//*本例程使用连续非扫描模式软件触发一次即可*// void AD_Init(void) {/*一、开启RCC时钟ADC,GPIO*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ADCCLK分频RCC_ADCCLKConfig(RCC_PCLK2_Div6);//72MHz/612MHz/*二、配置GPIO,模拟输入*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin GPIO_Pin_0;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);/*三、配置多路开关左边通道接入右边规则组列表(选择规则组的注入通道)*/ADC_RegularChannelConfig(ADC1,ADC_Channel_0,1,ADC_SampleTime_55Cycles5);/*四、配置ADC转换器*/ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode ADC_Mode_Independent;//工作模式独立/双ADCADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right;//数据对齐左/右ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None;//触发源此处使用软件触发ADC_InitStructure.ADC_ContinuousConvMode ENABLE;//连续转换/单次转换ADC_InitStructure.ADC_ScanConvMode DISABLE;//扫描/非扫描ADC_InitStructure.ADC_NbrOfChannel 1;ADC_Init(ADC1,ADC_InitStructure);//扫描模式下用到几个通道/*五、开关控制开启ADC*/ADC_Cmd(ADC1,ENABLE); //校准ADC_ResetCalibration(ADC1);//复位校准while(ADC_GetResetCalibrationStatus(ADC1) SET);//等待复位校准完成ADC_StartCalibration(ADC1);//启动校准while(ADC_GetCalibrationStatus(ADC1) SET);//等待校准是否完成ADC_SoftwareStartConvCmd(ADC1,ENABLE); }uint16_t AD_GetValue(void) {return ADC_GetConversionValue(ADC1); }AD.h #ifndef __AD_H #define __AD_Hvoid AD_Init(void); uint16_t AD_GetValue(void);#endifmain.c #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include AD.huint16_t ADValue;//AD值 float Voltage;//电压值int main(void) {OLED_Init();AD_Init();OLED_ShowString(1,1,ADValue:);OLED_ShowString(2,1,Voltage:0.00V);while (1){ADValue AD_GetValue();Voltage (float)ADValue/4095*3.3;OLED_ShowNum(1,9,ADValue,4);OLED_ShowNum(2,9,Voltage,1);//整数OLED_ShowNum(2,11,(uint16_t)(Voltage*100)%100,2);//小数部分Delay_ms(100);} }*OLED代码参考本专栏文章STM32-OLED 13.2 AD多通道 实验设置将电位器、光敏电阻、热敏电阻、反射红外模块的AO模拟电压输出端分别接到PA0/PA1/PA2/PA3 参考代码 AD.c #include stm32f10x.h // Device header//*本例程使用单次非扫描模式*// void AD_Init(void) {/*一、开启RCC时钟ADC,GPIO*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ADCCLK分频RCC_ADCCLKConfig(RCC_PCLK2_Div6);//72MHz/612MHz/*二、配置GPIO,模拟输入*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AIN;GPIO_InitStructure.GPIO_Pin GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA,GPIO_InitStructure);/*四、配置ADC转换器*/ADC_InitTypeDef ADC_InitStructure;ADC_InitStructure.ADC_Mode ADC_Mode_Independent;ADC_InitStructure.ADC_DataAlign ADC_DataAlign_Right;ADC_InitStructure.ADC_ExternalTrigConv ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_ContinuousConvMode DISABLE;ADC_InitStructure.ADC_ScanConvMode DISABLE;ADC_InitStructure.ADC_NbrOfChannel 1;ADC_Init(ADC1,ADC_InitStructure);/*五、开关控制开启ADC*/ADC_Cmd(ADC1,ENABLE); //校准ADC_ResetCalibration(ADC1);//复位校准while(ADC_GetResetCalibrationStatus(ADC1) SET);//等待复位校准完成ADC_StartCalibration(ADC1);//启动校准while(ADC_GetCalibrationStatus(ADC1) SET);}uint16_t AD_GetValue(uint8_t ADC_Channel) {/*三、配置多路开关左边通道接入右边规则组列表(选择规则组的注入通道)*/ADC_RegularChannelConfig(ADC1,ADC_Channel,1,ADC_SampleTime_55Cycles5);ADC_SoftwareStartConvCmd(ADC1,ENABLE);while(ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC) RESET);//通过标志位来查看是否转换完成return ADC_GetConversionValue(ADC1); }AD.h #ifndef __AD_H #define __AD_Hvoid AD_Init(void); uint16_t AD_GetValue(uint8_t ADC_Channel);#endifmain.c #include stm32f10x.h // Device header #include Delay.h #include OLED.h #include AD.huint16_t AD0,AD1,AD2,AD3;int main(void) {OLED_Init();AD_Init();OLED_ShowString(1,1,AD0:);OLED_ShowString(2,1,AD1:);OLED_ShowString(3,1,AD2:);OLED_ShowString(4,1,AD3:);while (1){AD0 AD_GetValue(ADC_Channel_0);AD1 AD_GetValue(ADC_Channel_1);AD2 AD_GetValue(ADC_Channel_2);AD3 AD_GetValue(ADC_Channel_3);OLED_ShowNum(1,5,AD0,5);OLED_ShowNum(2,5,AD1,5);OLED_ShowNum(3,5,AD2,5);OLED_ShowNum(4,5,AD3 ,5);Delay_ms(100);} }
http://www.hkea.cn/news/14349891/

相关文章:

  • 集团网站群建设方案大连手机网站设计
  • 四川省住房和城乡建设网站无锡网站推广电话
  • 嘉兴本地推广网站有哪些上海天华建筑设计有限公司代表作
  • 深圳福田建设局网站首页英语网站案例
  • 公司制作网站怎么做如何建自己的个人网站
  • 营销型网站的优势哪一个网站是专门做兼职的
  • 网站建设邀标书晋城网站建设电话
  • 外贸网站建设推广费用拐个娇妻做晚餐在哪个网站连载呢
  • 重庆专业网站推广时间wordpress链接样式表
  • 网站 关键字 标签圣沃工程建设工程公司网站
  • 企业网站策划案seo分析工具
  • 肃宁网站建设价格我的家乡网页设计模板
  • 如何进行网站设计规划做网站的流程分析-图灵吧
  • 沈阳网站制作服务大型公司网络搭建实例
  • flash企业网站网站 建设需
  • 网站的彩色标签怎么做的开发网站那个好
  • 德保县建设局的网站东鹏拼奖网站怎么做
  • 杭州北京网站建设在网上怎么注册公司
  • 个人展示网站电子商务网站建设 iis
  • html网站开发案例建e网室内设计网 模型
  • 网站规划的缩略图wordpress火车头
  • 免费信息网站排名wordpress 萝莉
  • 律师行业网站建设网站建设怎样把网页连接起来
  • discuz 旅游网站模版化妆品网站模版免费下载
  • 洛阳青峰网络公司做网站苏州seo关键词优化方法
  • 视频优化网站怎么做业务推广公司
  • 网站开发工具和平台策划书格式模板范文
  • 什么颜色做网站好看wordpress破解主题分享下载
  • 天津网站制作哪个好网站的需求分析都有哪些内容
  • 如何快速搭建网站wordpress 任务插件