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

电商创客网站建设方案现在哪些行业需要建设网站

电商创客网站建设方案,现在哪些行业需要建设网站,百度电商推广,wordpress配置环境目录 题目要求(真题): cubeMX配置: 小试牛刀: Keil代码: 效果演示: 题目要求(真题): 使用第十一届第二场真题,练习ADC波部分的代码 cubeMX配…

目录

题目要求(真题):

cubeMX配置:

小试牛刀:

 Keil代码:

效果演示:


题目要求(真题):

使用第十一届第二场真题,练习ADC波部分的代码

cubeMX配置:

配置PB12,PB15为ADC输入通道

PB12对应R38,配置为ADC1的通道11

PB15对应R37,配置为ADC2的通道15

 最好将采样时间拉到最高,防止出错。

小试牛刀:

 Keil代码:

user.c

#include "user.h" // 包含用户自定义头文件 user.hu32 adc_tick=0; // 定义 ADC 计时变量 adc_tick
u32 r37_value=0; // 定义变量存储 ADC1 读取的数值 r37_value
u32 r38_value=0; // 定义变量存储 ADC2 读取的数值 r38_value
float r37_volt=0; // 定义变量存储 ADC1 转换后的电压值 r37_volt
float r38_volt=0; // 定义变量存储 ADC2 转换后的电压值 r38_voltvoid ADC_proc() // 定义 ADC 处理函数 ADC_proc
{if(uwTick-adc_tick<100) // 如果当前时间与上次 ADC 触发的时间间隔小于100msreturn; // 直接返回,不进行 ADC 采样adc_tick = uwTick; // 更新 ADC 触发时间为当前时间HAL_ADC_Start(&hadc1); // 启动 ADC1 转换r38_value = HAL_ADC_GetValue(&hadc1); // 获取 ADC1 转换后的数值r38_volt = r38_value*3.3/4096; // 计算 ADC1 转换后的电压值HAL_ADC_Start(&hadc2); // 启动 ADC2 转换r37_value = HAL_ADC_GetValue(&hadc2); // 获取 ADC2 转换后的数值r37_volt = r37_value*3.3/4096; // 计算 ADC2 转换后的电压值
}u8 ui=1; // 定义变量存储用户界面状态 ui
u8 pa6_duty=10; // 定义变量存储 PA6 的占空比 pa6_duty
u8 pa7_duty=10; // 定义变量存储 PA7 的占空比 pa7_dutyvoid KEY_proc() // 定义按键处理函数 KEY_proc
{// 对四个按键进行单击、长按、双击的处理if(single_key_flag[0]==1) // 如果按键1单次按下{ui+=1; // 切换 LCD 显示模式if(ui>=3) ui=1; // 如果超过最大模式数,回到第一个模式single_key_flag[0]=0; // 清除按键标志}if(single_key_flag[1]==1) // 如果按键2单次按下{pa6_duty+=10; // 增加 PA6 的占空比if(pa6_duty>=100) pa6_duty=10; // 如果占空比超过100%,重置为10%__HAL_TIM_SetCompare(&htim16, TIM_CHANNEL_1, pa6_duty); // 设置 PWM 输出的占空比single_key_flag[1]=0; // 清除按键标志}if(single_key_flag[2]==1) // 如果按键3单次按下{pa7_duty+=10; // 增加 PA7 的占空比if(pa7_duty>=100) pa7_duty=10; // 如果占空比超过100%,重置为10%__HAL_TIM_SetCompare(&htim17, TIM_CHANNEL_1, pa7_duty); // 设置 PWM 输出的占空比single_key_flag[2]=0; // 清除按键标志}
}u32 lcd_tick=0; // 定义 LCD 刷新计时变量 lcd_tickvoid Disp_proc () // 定义显示处理函数 Disp_proc
{if(uwTick-lcd_tick<100) // 如果当前时间与上次 LCD 刷新的时间间隔小于100msreturn; // 直接返回,不进行 LCD 刷新lcd_tick=uwTick; // 更新 LCD 刷新时间为当前时间if(ui==1) // 如果当前界面为模式1{u8 text[50]; // 定义字符数组用于存储显示的文本信息sprintf(text, "      DATE        "); // 格式化字符串,显示日期LCD_DisplayStringLine(Line1, (unsigned char *)text); // 在第1行显示文本信息sprintf(text, "    V:%.2f V      ", r37_volt); // 格式化字符串,显示 ADC1 电压值LCD_DisplayStringLine(Line3, (unsigned char *)text); // 在第3行显示文本信息sprintf(text, "    Mode:         "); // 格式化字符串,显示模式LCD_DisplayStringLine(Line5, (unsigned char *)text); // 在第5行显示文本信息sprintf(text, "    V:%.2f V      ", r38_volt); // 格式化字符串,显示 ADC2 电压值LCD_DisplayStringLine(Line4, (unsigned char *)text); // 在第4行显示文本信息}if(ui==2) // 如果当前界面为模式2{u8 text[50]; // 定义字符数组用于存储显示的文本信息sprintf(text, "      Para        "); // 格式化字符串,显示参数LCD_DisplayStringLine(Line1, (unsigned char *)text); // 在第1行显示文本信息sprintf(text, "    PA6:%d        ", pa6_duty); // 格式化字符串,显示 PA6 占空比LCD_DisplayStringLine(Line3, (unsigned char *)text); // 在第3行显示文本信息sprintf(text, "    PA7:%d        ", pa7_duty); // 格式化字符串,显示 PA7 占空比LCD_DisplayStringLine(Line5, (unsigned char *)text); // 在第5行显示文本信息}
}

ADC_proc 函数用于采样两个模拟输入通道的电压值并计算,KEY_proc 函数处理按键操作并控制相关功能,Disp_proc 函数根据当前界面状态和采样到的数据更新 LCD 显示。

user.h

#ifndef __USER_H // 如果未定义过 __USER_H 宏
#define __USER_H // 定义 __USER_H 宏,防止头文件重复包含#include "main.h" // 包含主头文件 main.h
#include "lcd.h" // 包含 LCD 相关头文件 lcd.h
#include "key.h" // 包含按键相关头文件 key.h
#include "led.h" // 包含 LED 相关头文件 led.h
#include "tim.h" // 包含定时器相关头文件 tim.hvoid ADC_proc(void); // 声明按键处理函数 ADC_proc
void KEY_proc(void); // 声明按键处理函数 KEY_proc
void Disp_proc(void); // 声明显示处理函数 Disp_proc#endif // 结束条件编译指令

main.c

int main(void)
{/* USER CODE BEGIN 1 */ // 在这里插入用户自定义的代码段1/* USER CODE END 1 */ // 用户自定义的代码段1结束/* MCU Configuration--------------------------------------------------------*/ // MCU 配置/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ // 复位所有外设,初始化 Flash 接口和 SysTick 定时器HAL_Init(); // HAL 库初始化/* USER CODE BEGIN Init */ // 用户自定义的代码段2开始/* USER CODE END Init */ // 用户自定义的代码段2结束/* Configure the system clock */ // 配置系统时钟SystemClock_Config(); // 调用系统时钟配置函数/* USER CODE BEGIN SysInit */ // 用户自定义的代码段3开始/* USER CODE END SysInit */ // 用户自定义的代码段3结束/* Initialize all configured peripherals */ // 初始化所有配置的外设MX_GPIO_Init(); // 初始化 GPIO 外设MX_TIM3_Init(); // 初始化定时器 TIM3MX_TIM16_Init(); // 初始化定时器 TIM16MX_TIM17_Init(); // 初始化定时器 TIM17/* USER CODE BEGIN 2 */ // 用户自定义的代码段4开始LED_disp (0); // 调用 LED 显示函数,将 LED 初始状态设置为关闭HAL_TIM_Base_Start_IT(&htim3); // 启动 TIM3 定时器的基本定时器模式并启用定时器中断LCD_Init(); // LCD 初始化HAL_TIM_PWM_Start(&htim16, TIM_CHANNEL_1); // 启动 TIM16 定时器的 PWM 模式,并启用通道1HAL_TIM_PWM_Start(&htim17, TIM_CHANNEL_1); // 启动 TIM17 定时器的 PWM 模式,并启用通道1/* USER CODE END 2 */ // 用户自定义的代码段4结束/* Infinite loop */ // 无限循环/* USER CODE BEGIN WHILE */ // 用户自定义的代码段5开始LCD_Clear(Black); // 清屏,将背景色设置为黑色LCD_SetBackColor(Black); // 设置背景色为黑色LCD_SetTextColor(White); // 设置文本颜色为白色while (1) // 进入无限循环{/* USER CODE END WHILE */ // 用户自定义的代码段5结束/* USER CODE BEGIN 3 */ // 用户自定义的代码段6开始ADC_proc(); // ADC处理函数KEY_proc(); // 处理按键事件Disp_proc (); // 控制 LCD 显示内容}/* USER CODE END 3 */ // 用户自定义的代码段6结束
}

关键函数:

HAL_ADC_Start(&hadc2);  //开启ADC

HAL_ADC_GetValue(&hadc2); //获取ADC的值

效果演示:

蓝桥杯嵌入式ADC效果演示

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

相关文章:

  • 西安烽盈网站建设网站留言自动短信提醒
  • 请问下网站开发怎么弄澄海建设局网站上不了
  • 石家庄站规模河北商城网站建设价格低
  • 网站建设与维护期中试卷中学网站asp模板
  • 搭建网站合同学校网站的平台用途及建设规划
  • 深圳傻瓜式网站建设公司好吗广告设计公司如何找业务
  • 网站推广公司 优帮云看手机的网站
  • 长春有微信网站一起整的吗京东代运营
  • 无锡工厂网站建设湖北企业年报网上申报入口
  • 大庆市网站建设公司佛山网站建设专家评价
  • 桂林市自来水公司网站360搜索指数
  • 建个普通网站多少钱网站没有备案可以做seo优化吗
  • 成都建设网站首页网站空间 购买
  • 陕西网站建设优化建站网络营销和推广做什么
  • 京东网站建设框架图如何删除hao123主页
  • 环境网站模板百度h5游戏中心
  • 上海大学生兼职做网站做物流网站找哪家好
  • 长春做网站公司哪家好科技型中小企业查询平台
  • 织梦做商城类网站好做吗北京房价
  • 做设计在哪个网站找图片一张图看懂企业所得税
  • 如何做网站不被查网页设计的岗位叫什么
  • 福州专业网站建设公司自己网站做搜索引擎优化
  • 为什么不用wordpress寿光网站优化
  • 服务态度 专业的网站建设云南网站制作怎么计费
  • 网站建设规范布局有几部分深圳哪个公司做网站好
  • 电子商务网站规划与建设毕业设计做网站有哪些需求
  • 石家庄网站建设 河北供求网售后软件网站开发
  • 中山骏域网站建设本地广东中山网站建设
  • 宁波网站建设招商加盟秦皇岛建设局
  • 网站根目录权限互联科技行业网站