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

进阶——第十六届蓝桥杯嵌入式熟练度练习(开发板输出占空比和频率)

定义变量

uint16_t PA6_frq,PA7_frq;
uint16_t PA6_duty=10,PA7_duty=20;

开启定时器PWM 

 HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
 HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);

给变量赋值

  PA6_frq=80000000/8000/TIM16->ARR+1;
  PA7_frq=80000000/4000/TIM17->ARR+1;
  TIM16->CCR1=PA6_duty;
  TIM17->CCR1=PA7_duty;

按键改变变量

uint8_t key_scan(void)
{
uint8_t key_val=0;
	if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)
	{
	key_val=1;
	}
    if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET)
	{
	key_val=2;
	}
	if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET)
	{
	key_val=3;
	}
    if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET)
	{
	key_val=4;
	}
return key_val;
}
void key_proc(void)
{   key_val=key_scan();
    key_down=key_val&(key_val^key_old);
	key_up=~key_val&(key_val^key_old);
	key_old=key_val;
   if(key_down==1)
   {
	  PA6_duty+=10;
	  if(PA6_duty==100) PA6_duty=10;
	   TIM16->CCR1=PA6_duty;
   }
   if(key_down==2)
   {
	   PA7_duty+=20;
	   if(PA7_duty==100) PA7_duty=20;
	   TIM17->CCR1=PA7_duty;
   }
   if(key_down==3)
   {
   }
   if(key_down==4)
   {
   }
}

LCD显示

void lcd_proc(void)
{
	sprintf(buf,"   PA6_frq:%dHZ    ",PA6_frq);
	LCD_DisplayStringLine(Line5,(uint8_t*)buf);
    sprintf(buf,"   PA7_frq:%dHZ    ",PA7_frq);
	LCD_DisplayStringLine(Line6,(uint8_t*)buf);
    sprintf(buf,"   PA6_duty:%d%%    ",PA6_duty);
	LCD_DisplayStringLine(Line7,(uint8_t*)buf);
    sprintf(buf,"   PA7_duty:%d%%   ",PA7_duty);
	LCD_DisplayStringLine(Line8,(uint8_t*)buf);

}

http://www.dtcms.com/a/15457.html

相关文章:

  • Visual Studio 2022在配置远程调试服务器时无法连接到OpenEuler24.03
  • 修改OnlyOffice编辑器默认字体
  • 二、OpenSM排障----实战生产
  • 深入解析哈希表:原理、实现与应用
  • 基于vue3实现的课堂点名程序
  • 通俗易懂唠唠SOME/IP——SOME/IP错误处理
  • 机器学习核心算法解析
  • 【Qt】:概述(下载安装、认识 QT Creator)
  • 软件检测CNAS认可程序文件之检测环境管理程序分享
  • 二叉树详解:Java实现与应用
  • Matlab 机器人 雅可比矩阵
  • shell脚本的一些学习笔记----(三)流程控制
  • llama.cpp部署 DeepSeek-R1 模型
  • 滚珠花键润滑脂的作用!
  • 为AI聊天工具添加一个知识系统 之102 详细设计之43 自性三藏 之3 祖传代码
  • 机器学习:多项式回归
  • Linux之【网络I/O】前世今生(二)
  • Spring生态体系深度解析:现代Java开发的核心架构
  • IoTDB 导入数据时提示内存不足如何处理
  • 【深度强化学习】策略梯度算法:REINFORCE
  • 【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第二十节】
  • Deepseek与GPT都还是人机环境系统智能的初级产品
  • 3D可视化定制:开启个性化消费新时代
  • npm包管理工具
  • Linux中退出vi编辑器的命令
  • 全面理解-c++11中的智能指针
  • C语言初阶牛客网刷题——JZ65 不用加减乘除做加法】【难度:简单】
  • SAIL-RK3576单板运行7b的deepseek对话模型
  • uvm错误记录4
  • wps接入DeepSeek教程