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

建立网站的几个步骤福建省武夷山市城乡建设网站

建立网站的几个步骤,福建省武夷山市城乡建设网站,建设导航网站费用吗,安阳+网站建设这里本来是要讲输入捕获的知识点的,但是由于学校校赛时间比较紧,校赛没考到输入捕获,所以先写ADC模拟电压测量的知识点。这里将的是单通道阻塞式采样。 Cubemx配置 点开cubemx。 1.将PB15配置为ADC2-IN15。 2.在Analog中点击ADC2&#xff…

这里本来是要讲输入捕获的知识点的,但是由于学校校赛时间比较紧,校赛没考到输入捕获,所以先写ADC模拟电压测量的知识点。这里将的是单通道阻塞式采样。

Cubemx配置

点开cubemx。

1.将PB15配置为ADC2-IN15。

2.在Analog中点击ADC2,勾选IN15 Single-ended。

3.配置Paramater Settings中的参数。

Mode(模式):Independent mode

Clock Prescaler(分频):Synchronus clock mode divided by 2(2倍频)

Resolution(分辨率):ADC 12-bit resolution

Data Alignment(数据对齐):Right alignment(右对齐)

Scan Conversion Mode(扫描):Disable

Continuous Conversion Mode(连续模式):Disable

4.配置ADC_Regular_ConversionMode

Enable Regular Conversion(规则转换通道):Enable

Number Of Conversion(转换通道数量):1

External Trigger Conversion Sourse(触发源选择):Regular Conversion launched by software(软件触发)

Sampling Time(采样时间):2.5Cycles。

点击GENERATE CODE.  

代码编写

补充知识


HAL_ADC_GetValue(hadc);
功能:当 ADC 完成一次模拟信号到数字信号的转换后,转换得到的数字值就会被存储在相应的寄存器中。而 HAL_ADC_GetValue(hadc) 函数所做的就是从这个与 ADC 对应的寄存器(具体是数据寄存器)里读出刚刚转换好的数字值,方便后续在程序中对这个代表模拟量大小的数字值进行进一步处理。

HAL_ADC_Start(hadc)
功能:主要用于启动模数转换器(ADC)的转换工作。

HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED)
功能:启动模数转换器(ADC)校准过程的作用。


my_main.c

#include "my_main.h"
#include "stm32g4xx_hal_adc.h"
#include "adc.h"
uint8_t led_sta=0x10;
char text[30];
extern struct Bkeys bkey[];void LED_Disp(uint8_t dsLED)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);//所有LED熄灭(l小写)HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);//左移8位:控制C8-15引脚,值为1的点亮HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//开锁存器HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//关锁存器
}
float adc_read(ADC_HandleTypeDef *hadc)
{uint16_t adc_val;float adc_f;HAL_ADC_Start(hadc);adc_val=HAL_ADC_GetValue(hadc);adc_f=adc_val*3.3f/4096.0f;return adc_f;
}
void setup()
{HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);LED_Disp(0x00);//关掉所有LED	LCD_Init();//LCD初始化LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);
}void loop()
{static uint16_t temp=0;float frq1=0;float duty1=0;float adc_data_PB15;frq1=1000000.0f/(HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_1)+1);duty1=((HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_2)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_1)+1));sprintf(text,"    FRQ=%.2fHz    ",frq1);LCD_DisplayStringLine(Line8,(uint8_t *)text);//局部刷新	sprintf(text,"    DUTY=%.2fHz    ",duty1);LCD_DisplayStringLine(Line9,(uint8_t *)text);//局部刷新	adc_data_PB15=adc_read(&hadc2);sprintf(text,"    PB15=%.4fV    ",adc_data_PB15);LCD_DisplayStringLine(Line5,(uint8_t *)text);//局部刷新	}

拓展:过采样读取ADC

由于蓝桥杯比赛会对精度进行要求,所以我们也就引入了过采样读取ADC。

首先打开前面改过的cubemx,将Paramater Settings中的Enable Regular Oversampling 设置为Enable。然后将Oversampling Right Shift设置为3 bit shift for oversampling,最后将Oversampling Ratio设置为Oversampling Ratio 128x,点击GENERATE CODE.  

my_main.c

#include "my_main.h"
#include "stm32g4xx_hal_adc.h"
#include "adc.h"
uint8_t led_sta=0x10;
char text[30];
extern struct Bkeys bkey[];void LED_Disp(uint8_t dsLED)
{HAL_GPIO_WritePin(GPIOC,GPIO_PIN_All,GPIO_PIN_SET);//所有LED熄灭(l小写)HAL_GPIO_WritePin(GPIOC,dsLED<<8,GPIO_PIN_RESET);//左移8位:控制C8-15引脚,值为1的点亮HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);//开锁存器HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);//关锁存器
}
float adc_read_os(ADC_HandleTypeDef *hadc)//带 过采样
{uint16_t adc_val;float adc_f;HAL_ADC_Start(hadc);adc_val=HAL_ADC_GetValue(hadc);adc_f=adc_val*3.3f/65536.0f;return adc_f;
}
void setup()
{HAL_ADCEx_Calibration_Start(&hadc2,ADC_SINGLE_ENDED);LED_Disp(0x00);//关掉所有LED	LCD_Init();//LCD初始化LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);
}void loop()
{static uint16_t temp=0;float frq1=0;float duty1=0;float adc_data_PB15;frq1=1000000.0f/(HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_1)+1);duty1=((HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_2)+1)*100.0f/(HAL_TIM_ReadCapturedValue(&htim15,TIM_CHANNEL_1)+1));sprintf(text,"    FRQ=%.2fHz    ",frq1);LCD_DisplayStringLine(Line8,(uint8_t *)text);//局部刷新	sprintf(text,"    DUTY=%.2fHz    ",duty1);LCD_DisplayStringLine(Line5,(uint8_t *)text);//局部刷新	adc_data_PB15=adc_read_os(&hadc2);sprintf(text,"    PB15=%.4fV    ",adc_data_PB15);LCD_DisplayStringLine(Line5,(uint8_t *)text);//局部刷新	
}

 

http://www.yayakq.cn/news/779510/

相关文章:

  • 湖南网站排名免费网站知乎
  • 响应式培训网站模板dw个人网站设计模板免费
  • 做商演任务的网站网站建设方案书封面
  • 丽水做网站企业登建设厅锁子的是哪个网站
  • 西丽网站建设鹏鹞网站页面代码
  • 深圳网站建设公司的英文名是中信建设有限责任公司国内区事业部
  • 制作网页一般需要兼容哪些网站网站开发用户登录前 登录后
  • 苏州网站建设设计制作公司怎么样seo网站关键词优化排名
  • 代理公司注册长春网站优化哪家好
  • 个人建什么样的网站好做网站难度
  • 手机网站flash2345网址导航网址
  • wordpress搭建下载站昆明百度搜索排名优化
  • 婚恋网站建设成本网站空间免
  • 成都网站建设空间番禺网站建设方案
  • 国家优质校建设网站建网站哪家好案例
  • 深圳网站设计公司费用多少从化区城郊街道网站麻二村生态建设
  • 网站开发可以用哪些语言成都哪里好玩儿的地方推荐
  • 专业网页制作与网站设计怎么查找网站的根目录
  • vue做的网站多么手机移动端网站是什么
  • 安做省民改厅网站fusion做电影网站卡死
  • 网站制作流程详解(学做网站第一步)做网站项目后台的
  • 游戏网站建设方案深圳网站设计x程序
  • 海南茶叶网站建设精品资料网文件下载
  • 凡科网多页网站怎样做镇江网站设计哪家好
  • 购物网站 服务器 带宽 多大公司网站建设申请报告
  • 中小企业网站的建设实践报告网站技术维护费
  • 现在做一个网站多少钱凡科做网站技巧
  • 南京网站建设小程序开发 雷仁网络浏览器怎么取消2345网址导航
  • wordpress可以企业网站编程线上课程哪个机构好一些
  • 做个外贸网站响应式布局怎么实现