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

embedded/2024/9/25 3:06: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/embedded/37519.html

相关文章

【Apache POI】Apache POI-操作Excel表格-简易版

Catalog Apache POI-操作Excel表格1. 需求2. 优点3. 缺点4. 应用场景5. 使用方法6. SpringBoot工程中处理Excel表格7. Demo示例 Apache POI-操作Excel表格 1. 需求 大多数项目的在运营过程中&#xff0c;会产生运营数据&#xff0c;如外卖系统中需要统计每日的订单完成数、每…

[力扣题解]39. 组合总和

题目&#xff1a;39. 组合总和 思路 回溯法 代码&#xff0c;自己写的 // 自己写的 // 没有用 startindex 也可以实现&#xff01; class Solution { public: vector<vector<int>> result;vector<int> path;void function(vector<int>& candid…

Qt客户端开发的技术难点

Qt客户端开发中可能会遇到的下面的一些技术难点&#xff0c;了解这些难点并采取有效的措施可以帮助开发者更高效地进行Qt客户端开发。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.跨平台兼容性&#xff1a; Qt框架支持多种操作系…

Hive两代命令行客户端(Hive、Beeline)

Hive命令行客户端 Hive有两个主要的客户端工具&#xff0c;分别是旧版的Hive CLI&#xff08;Command Line Interface&#xff09;和新版的Beeline。 Hive CLI&#xff1a; Hive CLI 是 Hive 最早期的命令行客户端工具&#xff0c;它使用 JDBC 连接到 Hive 服务器&#xff0c;…

##07 从线性回归到神经网络:PyTorch实战解析

文章目录 前言线性回归基础理论背景实现步骤 神经网络介绍理论背景实现步骤 从线性回归到神经网络结论 前言 在深度学习的浩瀚宇宙中&#xff0c;线性回归和神经网络是两个基本但极其重要的概念。线性回归模型是统计学和机器学习的基石之一&#xff0c;而神经网络则是深度学习…

鸿蒙内核源码分析(互斥锁篇) | 互斥锁比自旋锁丰满多了

内核中哪些地方会用到互斥锁?看图: 图中是内核有关模块对互斥锁初始化,有文件,有内存,用消息队列等等,使用面非常的广.其实在给内核源码加注的过程中,会看到大量的自旋锁和互斥锁,它们的存在有序的保证了内核和应用程序的正常运行.是非常基础和重要的功能. 概述 自旋锁 和…

实现一个聊天室可发送消息语音图片视频表情包(任意文件)

文章目录 如何跑通代码仓库地址客户端登录发送消息接受消息发送文件接受文件 服务端接受消息并发送给各个客户端接受文件并发送给各个客户端 如何跑通 将手机和电脑都连自己的热点先运行服务器得到可监听的地址更新客户端安卓消息线程和文件线程的socker目标地址为可监听地址然…

AI 如何赋能优质直播内容创作?

图片&#xff5c;电影《机械姬》剧照‍‍‍‍‍‍‍‍‍‍‍ ©自象限原创 作者丨周乾 优质的直播内容已经成为各大直播间营收增长的核心驱动力&#xff0c;而在打造优质直播内容的方式中&#xff0c;AIGC无疑是目前更具性价比和效率的方向。事实上&#xff0c;AI在直播…