HALPWM配置占空比频率2按键控制思路


title: HALPWM配置占空比频率
tags:

  • STM32
  • Clion
  • Hal

控制pwm开关

//启动定时器
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);//关闭定时器
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);//启动指定通道PWM
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);//停止指定通道PWM
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);//设置指定通道占空比
void __HAL_TIM_SetCompare(TIM_HandleTypeDef *htim, uint32_t Channel,uint16_t Value);//设置定时器计数器值
coid __HAL_TIM_SetCompare(TIM_HandleTypeDef *htim, uint16_t Value)
 if (sta==0){HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);} else if(sta==1){// D=5%HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);D=5;  HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);} else if (sta==2){// 10%≤D≤85%HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);D=50; HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);} else if (sta==3){// 85%<D≤90%HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);D=88;HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2); /// 这里的Start 已经不起作用了}
** HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2); 相当于把这个中断使能关闭了需要到外部开启 **
/ 按键中断
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{if(GPIO_Pin==SW1_Pin){HAL_GPIO_WritePin(GPIOB, LED_G_Pin|LED_B_Pin|LED_R_Pin, GPIO_PIN_SET);HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);HAL_UART_Transmit(&huart1,"G", sizeof("G")-1, 100);sta--;if(sta==4){HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);}} else if (GPIO_Pin==SW3_Pin){HAL_GPIO_WritePin(GPIOB, LED_G_Pin|LED_B_Pin|LED_R_Pin, GPIO_PIN_SET);HAL_GPIO_TogglePin(LED_R_GPIO_Port,LED_R_Pin);HAL_UART_Transmit(&huart1,"R", sizeof("R")-1, 100);sta++;if(sta==4){HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);}}
}
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if(sta==1){set_pwm_param(htim2, TIM_CHANNEL_2, 1000, 50);}else if(sta==2){set_pwm_param(htim2, TIM_CHANNEL_2, 1000, 20);}else if(sta==3){//HAL_TIM_PWM_Stop(&htim2, TIM_CHANNEL_2);HAL_UART_Transmit(&huart1,"3", sizeof("3")-1, 100);}else if(sta==4){//set_pwm_param(htim2, TIM_CHANNEL_2, 1000, 40);}}

大概就是这么个意思也没仔细看HAL开发的文档 就虾摸我豆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/7592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【负载均衡式在线OJ项目day1】项目结构

一.功能 查看题目列表&#xff0c;在线编程&#xff0c;判题功能&#xff0c;即leetcode的部分功能 二.宏观结构 整个项目是BS模式&#xff0c;客户端是浏览器&#xff0c;和用户交互并向服务器发起请求。 服务端从功能上来说分为两个模块&#xff0c;第一个是OJServer&…

小红书餐饮推广怎么合作?纯干货

小红书作为国内领先的生活方式分享平台&#xff0c;其用户群体主要集中在一二线城市&#xff0c;年龄分布在18-35岁之间&#xff0c;其中女性用户占比高达80%。这部分用户具有较高的消费能力、审美追求和品质生活需求&#xff0c;对美食有着极高的兴趣和消费意愿&#xff0c;为…

Mysql 行格式 innodb_default_row_format 可以配置那些值, 有什么区别

在MySQL中&#xff0c;innodb_default_row_format选项指定了InnoDB表创建时的默认行格式。这个设置对于新创建的表非常重要&#xff0c;因为它影响了数据的存储方式、空间利用率和性能。innodb_default_row_format可以配置为以下几个值&#xff0c;每个值代表不同的行格式&…

【计算机网络】计算机网络的性能指标

计算机网络的性能指标被用来从不同方面度量计算机网络的性能。常用的八个计算机网络性能指标&#xff1a;速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率、丢包率。 一.速率 (1) 数据量 比特&#xff08;bit&#xff0c;记为小写b&#xff09;是计算机中数据量的基…

python使用mongo操作

目前有个需求&#xff0c;就是把所有sql转为mongo管道查询 知识点 在 MongoDB 中&#xff0c;allowDiskUse 选项应该作为聚合命令的一个选项&#xff0c;而不是聚合管道的一个阶段。allowDiskUse 选项用于允许聚合操作使用磁盘空间来临时存储数据&#xff08;当聚合操作的数据…

力扣顺序表思路讲解

本篇文章&#xff0c;我给大家带来的是顺序表题目讲解&#xff0c;希望大家看完有所收获&#xff0c;废话不多说&#xff0c;我们现在开始 审题 大白话&#xff1a;给了一个数组和一个目标值。如果数组里的两个元素相加 目标值&#xff0c;则返回这两个元素的下标。那么大家需…

java编程中,实现分页对象的类型转换

一、背景 当数据库分页查询返回的对象与接口要返回的对象类型不一致时&#xff0c;不可避免需要进行类型转换。 示例&#xff1a;数据库分页查询返回的对象是PageDTO&#xff0c;而接口返回的对象类型是PageVO。 PageDTO Data public class PageDTO<T> {/*** Current…

Python专题:一、安装步骤

1、下载地址&#xff1a;Welcome to Python.org 勾选这个add 其他的全部下一步即可。 运行出现这个即代表安装成功。 Python自带编辑器。 2、推荐使用的sublime 编辑器下载 全部下一步安装。

C++ 函数与指针

函数内部数据是地址需要传递给调用函数&#xff0c;返回的当然是指针了&#xff01;当然&#xff0c;这个返回地址也可以通过函数参数返回&#xff01; 函数的参数是指针可以输出函数多个结果&#xff0c;返回值本身就是返回数据&#xff0c;什么时候需要返回指针呢&#xff1f…

Spring从零开始学使用系列(五)--Bean定义继承与容器扩展点

1.引言 Spring框架因其强大的依赖注入和灵活的配置管理而广受欢迎。Bean定义继承和容器扩展点是其提供的两个核心特性&#xff0c;它们为开发者在维护大型应用时提供了极大的便利。本文旨在详细探讨这些特性的工作原理和实际应用&#xff0c;帮助开发者更好地理解和利用这些高级…

学习记录之数学表达式(4)

文章目录 八、min 与 argmin8.1 min8.2 argmin8.3 作业 九、累加、累乘与积分9.1 累加9.2 累乘9.3 定积分9.4 作业 八、min 与 argmin min 和 argmin 在机器学习中常用&#xff1b;max 和argmax 同理&#xff1b; 8.1 min min 是 minimal 的缩写&#xff0c;用于获得集合中的…

5.6代码

1.最大公约数 这个题最重要的是要找到一个区间是1&#xff0c;找到之后就可以直接加次数就可以了 #include <bits/stdc.h>using namespace std;main() {long long n,i,j,a0,b,ans99999;cin>>n;long long s[n],dp[n][n];for(i0;i<n;i){cin>>s[i];if(s[i]1…

sorted_numbers = numbers_int.sort()对不对??不对!!!

不对&#xff0c;numbers_int.sort() 方法会直接修改 numbers_int 列表&#xff0c;并且它不返回任何值&#xff08;在 Python 中&#xff0c;对列表的原地修改方法通常返回 None&#xff09;。因此&#xff0c;将 numbers_int.sort() 的结果赋值给 sorted_numbers 变量会导致 …

238. 除自身以外数组的乘积/41. 缺失的第一个正数

238. 除自身以外数组的乘积 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&a…

shell常用文件处理命令

1. 解压 1.1 tar 和 gz 文件 如果你有一个 .tar 文件,你可以使用以下命令来解压: tar -xvf your_file.tar在这个命令中,-x 表示解压缩,-v 表示详细输出(可选),-f 后面跟着要解压的文件名。 如果你的 .tar 文件同时被 gzip 压缩了(即 .tar.gz 文件),你可以使用以下…

黑马程序员HarmonyOS4+NEXT星河版入门到企业级实战教程笔记

HarmonyOS NEXT是纯血鸿蒙&#xff0c;鸿蒙原生应用&#xff0c;彻底摆脱安卓 本课程是基于harmony os4的&#xff0c;与next仅部分api有区别 套件 语言&框架 harmony os design ArkTs 语言 ArkUI 提供各种组件 ArkCompiler 方舟编译器 开发&测试 DevEco Studio 开发…

Vue3工程化配置

Vue3工程化配置 目录 Vue3工程化配置创建项目vue-clivite(推荐) 快速体验2和3的差别vue3vue2 ref和reactive 创建项目 vue-cli 具体环境配置请点这里 记得新建配置时这里选vue3 vite(推荐) 注&#xff1a;Vite 需要 Node.js 版本 18&#xff0c;20 1.选定路径后再cmd输入创建…

免费在线录屏、无需注册、免费可用、无限制

免费在线工具 https://orcc.online/ 在线录屏 https://orcc.online/recorder pdf在线免费转word文档 https://orcc.online/pdf 时间戳转换 https://orcc.online/timestamp Base64 编码解码 https://orcc.online/base64 URL 编码解码 https://orcc.online/url Hash(MD5/SHA…

羊大师解读,当代年轻人焦虑应对指南

羊大师解读&#xff0c;当代年轻人焦虑应对指南 当代年轻人面临焦虑问题时&#xff0c;羊大师提出以下综合建议&#xff0c;要增强自我认知了解自身的需求和期望&#xff0c;明确自己的价值观和目标。这有助于避免盲目跟风和过度比较&#xff0c;从而减轻不必要的焦虑。 合理规…

apk反编译修改教程系列---修改指定apk 让其开机自动打开运行【十四】

通过前面的几期反编译apk的博文 。应该初步了解反编译apk的一些常识和简单的修改步骤。在与有些工作室合作中。一些客户需要安卓机型开机自动打开运行指定的apk。这类需求常规我们都先要检查apk有没有加密 加固。然后对应修改其中的代码。今天以一款apk实例步骤演示修改的过程 …