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

做网站自动赚钱吗公司的网站建设计入什么科目

做网站自动赚钱吗,公司的网站建设计入什么科目,专业做网站的企业,正规的佛山网站建设1. 前言 最近在准备16届的蓝桥杯嵌入式赛道的国赛,打算出一个系列的博客,记录STM32G431RBT6这块比赛用板上所有模块可能涉及到的所有考点,如果有错误或者遗漏欢迎各位大佬斧正。 本系列博客会分为以下两大类: 1.1. 单独模块的讲…

 1. 前言

最近在准备16届的蓝桥杯嵌入式赛道的国赛,打算出一个系列的博客,记录STM32G431RBT6这块比赛用板上所有模块可能涉及到的所有考点,如果有错误或者遗漏欢迎各位大佬斧正。

本系列博客会分为以下两大类:

1.1. 单独模块的讲解

在这部分,我会分享自己总结的各个模块的相关配置、代码书写模板,涉及到的大致框架如下:

这个框架后续可能会不断更新,欢迎各位给出建议。

这一大类相关的文章链接如下(持续补充中):

【蓝桥杯嵌入式】【模块】一、系统初始化-CSDN博客

【蓝桥杯嵌入式】【模块】二、LED相关配置及代码模板-CSDN博客

【蓝桥杯嵌入式】【模块】三、LCD相关配置及代码模板-CSDN博客

【蓝桥杯嵌入式】【模块】四、按键相关配置及代码模板-CSDN博客

【蓝桥杯嵌入式】【模块】五、ADC相关配置及代码模板-CSDN博客

【蓝桥杯嵌入式】【模块】六、PWM相关配置及代码模板-CSDN博客

1.2. 蓝桥杯各届的真题、模拟题复盘及个人答案

在这一部分,我会分享个人练过的所有题的复盘思路及代码,每篇文章结构如下:

这一大类相关的文章链接如下(持续补充中):

【蓝桥杯嵌入式】【复盘】第13届国赛真题_蓝桥杯嵌入式13届国赛题-CSDN博客


以下是本篇博客正文内容:

2. 在cubemx中配置adc

在这里先展示单通道采集adc的配置方法。

根据开发板手册:


可知,开发板上的两个adc接口分别是PB15,PB12,所以,在cubemx中配置时,将这两个io口配置成adc模式就行:

只需要做两个事,一是将两个io口分别配置为adc模式(ADC1_IN11,ADC2_IN15),二是在adc配置页使能两个通道的single-ended模式,表示单端输入(以GND为电压基准)。 


3. 单通道采集adc

我的模板代码如下:

void adc_init(void)
{HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
}double r37_val = 0.0, r38_val = 0.0;
void adc_task(void)
{HAL_ADC_Start(&hadc2);r37_val = HAL_ADC_GetValue(&hadc2) * 3.3 / 4095.0;HAL_ADC_Start(&hadc1);r38_val = HAL_ADC_GetValue(&hadc1) * 3.3 / 4095.0;
}

adc的单通道采集非常简单,将adc采集到的值映射成电压值就行,有以下几个注意点:

1. 在每次采集之前,都需要HAL_ADC_Start一下,后面才能采集到值。

2. 将采集值转化为电压值时,除以4095,是因为adc的分辨率在配置时选择的是12位分辨率,值餐范围从0-4095。 

3. 在初始化中使用HAL_ADCEx_Calibration_Start,可以开启校准,让adc测得的转换值可以达到3.3。


4. 多通道采集adc

在上面的单通道采集中,我们发现虽然采集了两个adc,但是这两个adc是分属于不同adc(adc1,adc2)的不同通道。而多通道采集的含义是,如果要采集一个adc的不同通道,应该怎么做呢?例如,第13届国赛的要求:

在cubemx中我们可以发现,PA4和PA5用的都是同一个adc:

下面,便会给出多通道采集adc的方法:

4.1. 在cubemx中配置多通道采集adc

在cubemx中做如下配置:

有以下几个重要步骤:

1. 首先,对adc的两个通道(IN13,IN17)开启单边模式。

2. 将adc模式配置为扫描模式,不连续转换 。

3. Number Of Conversion配置为2,表示多通道轮询采样,即adc会依次采集IN13和IN17的值。

4. Number Of Discontinuous Conversions配置为1,表示一次adc采集只采集一个通道的值。

5. rank1和rank2中是两个通道,将其sampling time设到最大,这样会让测得值更精准。

4.2. 多通道采集adc的模板代码

我的模板代码如下:

void adc_task(void)
{HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);for(uint8_t i = 0;i < 2;i++){HAL_ADC_Start(&hadc2);tmp_data[i] = (double)HAL_ADC_GetValue(&hadc2) * 3.3 / 4095.0;HAL_Delay(1);}pa4 = tmp_data[1];pa5 = tmp_data[0];}

使用一个数组加for循环来存储两次采集到的值就行,采集之后可以稍微加一点延时。

需要注意的是,在之前的cubemx配置中,我们配置的rank是:

 

可以发现,rank1是IN17,对应PA4;rank2是IN13,对应PA5。

但是在代码中,数组第一个存储的是PA5的值,即先采集的rank2对应的通道的值。

这个有点不符合常理,也不清楚是不是我配置的问题,问了别人也说得是adc多通道先采集的是rank更大的通道。 


5. 基于dma实现adc采集

 参考:蓝桥杯嵌入式ADC+DMA数据采样_蓝桥杯嵌入式adc与dma-CSDN博客

dma采集adc依旧分为在cubemx中进行配置以及代码书写。

5.1. 在cubemx中配置基于dma采集adc

主要分为以下几个步骤:

1. 将io口配置为adc单边采集:

2. 每个通道各自开启连续采集模式:

 3. 每个通道各自新增dma请求:

 

4. 每个通道各自开启dma持续请求:

 5. 在nvic中失能dma相关的中断:

5.2. dma采集adc的模板代码 

我的模板代码如下: 

uint16_t adc1, adc2;
void adc_init(void)
{HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);HAL_ADC_Start_DMA(&hadc1, (uint32_t *)&adc1, 1);HAL_ADC_Start_DMA(&hadc2, (uint32_t *)&adc2, 1);
}

只需要在初始化中开启校准和dma采集就行,将数值存到全局变量里,以后就不用管了,直接拿来用就行。

总结

本文主要介绍了adc相关操作的模板代码,主要是adc的cubemx配置、单通道采集、多通道采集、dma采集。

http://www.dtcms.com/wzjs/797396.html

相关文章:

  • 汕头seo建站陕西 餐饮 网站建设
  • 四川建设招投标网站2023年10月爆发新冠
  • 长沙门户网站建设wordpress忘记后台账号
  • 自己做的网站怎么发布广州制作app
  • 跨境电商平台shopee长沙网站seo按天计费
  • 泰安网站建设优化案例报告邢台集团网站建设费用
  • 全新网站开发网站解析是做a记录吗
  • 网站地图添加青羊区网站设计
  • 一个公司做100个网站网站开发了下载文件需要
  • 网站专题策划方案书网站设计页面如何做居中
  • 沈阳市城乡建设部官方网站企业网站管理系统(多语言)
  • 永康新站优化网页设计工资多少钱
  • 做网站视频上传到哪儿湛江企业网站建设公司
  • 建个公司网站需要多少钱长子营网站建设
  • 揭西网站建设软件工程管理系统
  • 网站开发项目的需求分析商城网站标题
  • 网站做直播番禺学校网站建设建议
  • seo优化网站多少钱南沙网站建设价格
  • 网站改版301深圳市住房和建设局电话
  • 滁州建设网站公司网站模板带有sql后台下载
  • 合肥 网站建设seo 优化
  • 食品网站建设风格防静电产品东莞网站建设技术支持
  • 做推广网站多少钱全网营销推广 好做吗
  • 网站优化排名软件推广品牌设计书籍
  • 深圳常平网站建设制作公司网站空间买卖
  • 只想怎样建设自己的销售网站商洛市城乡建设局网站
  • 如何网站切换房屋模拟装修软件
  • 哪个网站推广做的好保险网站推荐
  • 网站建设实施步骤深圳网站的优化公司哪家好
  • 做数模必逛的网站校园网门户网站建设