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

news/2024/9/24 8:22:35/

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.ppmy.cn/news/1456526.html

相关文章

TXT文本高效批量编辑,支持批量将每个单号间的空白行进行删除掉,文本内容管理更方便

TXT文本是一种常用的存储快递单号的数据格式。然而&#xff0c;当TXT文本中存在大量的空白行时&#xff0c;不仅浪费了存储空间&#xff0c;还可能导致批量编辑和查询变得低效。为了解决这一问题&#xff0c;我们推出了高效的TXT文本批量编辑功能&#xff0c;支持批量删除单号间…

RabbitMQ的介绍和使用

1.同步通讯和异步通讯 举个例子&#xff0c;同步通讯就像是在打电话&#xff0c;因此它时效性较强&#xff0c;可以立即得到结果&#xff0c;但如果你正在和一个MM打电话&#xff0c;其他MM找你的话&#xff0c;你们之间是不能进行消息的传递和响应的 异步通讯就像是微信&#…

905. 按奇偶排序数组

905. 按奇偶排序数组 题目链接&#xff1a;905. 按奇偶排序数组 代码如下&#xff1a; class Solution { public:vector<int> sortArrayByParity(vector<int>& nums) {vector<int> res;for(int i0;i<nums.size();i){if(nums[i]%20) res.push_ba…

高实时、高可靠的微内核操作系统——鸿道Intewell

近年来&#xff0c;我国不断推进工业转型升级&#xff0c;力求实现从传统工业大国向现代工业强国的跨越。想要在新一轮科技革命中“超车”&#xff0c;需要从多个维度进行深度布局和全面发力。 ——科技创新是核心驱动力 积极推动工业结构的优化和升级&#xff0c;通过发展新…

力扣数据库题库学习(5.6日)--1729. 求关注者的数量

1729. 求关注者的数量 问题链接 思路分析 编写解决方案&#xff0c;对于每一个用户&#xff0c;返回该用户的关注者数量。 按 user_id 的顺序返回结果表。示例 1&#xff1a;输入&#xff1a; Followers 表&#xff1a; ---------------------- | user_id | follower_id | -…

从哪些方面可以看出现货黄金价格走势?

现货黄金价格的走势受到多种因素的影响&#xff0c;我们可以从宏观经济环境、货币政策、供需关系、市场情绪和技术分析几个主要方面来观察和分析这一贵金属的价格动态。现货黄金作为全球投资市场中的避险资产&#xff0c;其价格波动往往能体现出复杂的经济和政治变化。 宏观经济…

04-xss获取cookie实验

二、开发XSS服务器端 1、确认实验环境 攻击者服务器&#xff1a;192.168.74.134&#xff0c;将获取到cookie数据保存到该服务器的数据库中&#xff0c;运行PHP代码暴露一个接收Cookie的URL地址。 正常Web服务器&#xff1a;192.168.74.133&#xff0c;用于正常的用户访问的目…

Android Native内存泄漏检测方案详解

文章目录 1. AddressSanitizer (ASan)2. LeakSanitizer (LSan)3. Valgrind4. 手动检测5. 实践建议6. 总结 在Android Native层开发过程中&#xff0c;内存泄漏是一个常见的问题。内存泄漏不仅会导致应用程序占用越来越多的内存&#xff0c;还可能引发性能问题和崩溃。因此&…