STM32 | PWM脉冲宽度调制(第五天按键中断,控制电机正/反转、加速、减速、暂停与继续源码解析)

STM32 | PWM脉冲宽度调制(第五天)
STM32 | PWM脉冲宽度调制(第五天呼吸灯源码解析)
STM32 | PWM脉冲宽度调制(第五天电机速度控制源码解析)

PWM 技术在以下其他机器学习领域和应用中也可以发挥作用:

  • 自然语言处理 (NLP):调节文本生成模型(例如 GPT-3)的输出长度和多样性。

  • 强化学习:控制代理在环境中采取行动的频率和持续时间。

  • 时间序列预测:调节模型预测未来事件的时间间隔。

  • 异常检测:设置阈值来检测超出正常范围的数据点。

  • 优化:控制超参数调整算法的探索和利用阶段之间的平衡。

具体应用示例:

  • **音乐生成:**使用 PWM 来控制生成的音乐片段的长度和复杂度。

  • **机器人控制:**调节机器人的动作速度和持续时间,以实现平稳和高效的运动。

  • **医疗诊断:**使用 PWM 来优化诊断算法的灵敏度和特异性。

  • **金融预测:**控制模型预测股票价格或汇率的时间间隔。

  • **自动驾驶:**调节自动驾驶汽车在不同交通状况下的决策频率。

PWM 技术的通用性使其成为机器学习中调节模型行为和提高性能的宝贵工具。

1、使用按键中断,控制电机正/反转、加速、减速、暂停与继续。

PA2 与 PA3

【led.h】

#ifndef __LED_H#define __LED_H#include "stm32f4xx.h"#define LED0_ON    GPIO_ResetBits(GPIOF, GPIO_Pin_9)#define LED0_OFF  GPIO_SetBits(GPIOF, GPIO_Pin_9)void Led_Init(void);#endif

【led.c】

#include "led.h"/*********************************引脚说明:LED0 -- PF9LED1 -- PF10LED2 -- PE13LED3 -- PE14**********************************/void Led_Init(void){  GPIO_InitTypeDef  GPIO_InitStruct;  //使能GPIOE组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);      //使能GPIOF组时钟  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_9|GPIO_Pin_10;    //引脚9 10  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;  //输出模式  GPIO_InitStruct.GPIO_OType  = GPIO_OType_PP;  //推挽输出  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;    //上拉  GPIO_InitStruct.GPIO_Speed  = GPIO_Speed_50MHz; //速度   GPIO_Init(GPIOF, &GPIO_InitStruct);  GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_13|GPIO_Pin_14;    //引脚13 14  GPIO_InitStruct.GPIO_Mode  = GPIO_Mode_OUT;  //输出模式  GPIO_InitStruct.GPIO_OType  = GPIO_OType_PP;  //推挽输出  GPIO_InitStruct.GPIO_PuPd  = GPIO_PuPd_UP;    //上拉  GPIO_InitStruct.GPIO_Speed  = GPIO_Speed_50MHz; //速度   GPIO_Init(GPIOE, &GPIO_InitStruct);    GPIO_SetBits(GPIOF, GPIO_Pin_9);  GPIO_SetBits(GPIOF, GPIO_Pin_10);  GPIO_SetBits(GPIOE, GPIO_Pin_13);  GPIO_SetBits(GPIOE, GPIO_Pin_14);}

【delay.h】

#ifndef __DELAY_H#define __DELAY_H#include "stm32f4xx.h"void Delay_Init(void);void delay_us(u32 nus);void delay_ms(u32 nms);#endif

【delay.c】

#include "delay.h"//u32 == unsigned intu32 my_us = 21;        //计21个数用1usu32 my_ms = 21000;      //计21000个数用1msvoid Delay_Init(void){  //SysTick时钟配置 168MHZ/8 = 21MHZ  SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);}//nus取值范围:1~798 915void delay_us(u32 nus){  u32 temp = 0;  //设置重装值寄存器  SysTick->LOAD = my_us*nus - 1;  //设置计数器的值为0  SysTick-

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

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

相关文章

NFT-前端开发(一)

使用 在我们想要保存项目的目录下打开终端运行npx create-react-app test2命令初始化,test2是我们的项目名字,可以自己去更改。 初始化完成后,我们目录下就会多出一个test2文件夹 ,然后我们在vscode中打开该文件夹 然后我们打开j…

Java8之接口默认方法

Java8之接口默认方法 一、介绍二、代码1、接口2、实现类3、测试代码4、效果 一、介绍 在Java8中,允许为接口方法提供一个默认的实现。必须用default修饰符标记这样一个方法。默认方法也可以调用其他方法 二、代码 1、接口 public interface PersonService {void…

代码随想录算法训练营第二十五天| 回溯算法理论基础、LeetCode77.组合

一、216.组合总和III 题目链接/文章讲解/视频讲解: https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%BB%E5%92%8CIII.html 状态:已解决 1.思路 做过77题(上篇博客)后,这道题也就不难了,无非是多…

python--sys模块,time模块

1:sys模块 time.struct_time 实现时间转换 >>> import sys >>> dir(sys) getallocatedblocks, getdefaultencoding, getfilesystemencodeerrors, getfilesystemencoding, getprofile, getrecursionlimit, getrefcount, getsize…

python中pow()函数的使用

在Python中,pow() 函数用于计算指定数字的幂。它的语法如下: pow(x, y) 这个函数返回 x 的 y 次方。相当于 x**y。 pow() 函数也可以接受一个可选的第三个参数,用于指定一个取模值,即计算结果与该模值的余数。其语法如下&#…

考研数学|《1800》+《660》精华搭配混合用(经验分享)

肯定不行,考研数学哪有这么容易的! 先说说这两本习题册,李永乐老师推出的新版660题,相较于18年前的版本,难度略有降低,更加适合初学者。因此,对于处于基础阶段的学习者来说,新版660…

Docker Swarm安装部署应用

一、Docker Swarm核心概念 1、什么是Docker Swarm GitHub地址 Docker Swarm 是 Docker 官方推出的容器集群管理工具,基于 Go 语言实现。使用它可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。 Docker Swarm 是生产…

C# winform校验文件版本差异及版本号

界面 代码 using System.Diagnostics;namespace VersionTool {public partial class Form1 : Form{List<string> fileNmaes new List<string>() { "PhotoMes.Base.dll", "PhotoMes.App.exe", "PhotoMes.Cameras.dll" };public F…

分治实现快速排序和归并排序

本文用于记录个人算法竞赛学习&#xff0c;仅供参考 一.快速排序&#xff08;升序为例&#xff09; 思想&#xff1a;确定分界点x&#xff0c;将小于分界点的值放在分界点的左边&#xff0c;将大于分界定的值放在分界点的右边&#xff0c;再递归处理两边的左右区间。 步骤&am…

如何注册Claude3?解决Claude3无海外手机号接收验证码的问题以及如何订阅Claude Pro

原文链接&#xff1a;如何注册 Claude3&#xff1f;解决 Claude3 无海外手机号接收验证码的问题以及如何订阅 Claude Pro 前言 Claude3已经出来有一段时间了&#xff0c;大家有没有体验过呢&#xff1f;不过从目前来看&#xff0c;Anthropic公司总共推出了3个模型&#xff1…

使用 golang 以及 Gin 框架,将上传的图片在不保存至本地的情况下添加水印,并上传至阿里云 OSS

正如标题所述&#xff0c;使用golang对上传图片添加水印&#xff0c;以及将图片上传到阿里云OSS&#xff0c;网上一搜索&#xff0c;便有你想要的结果了&#xff0c;可是&#xff0c;他们却先将上传图片添加水印后保存在本地&#xff0c;而后再将添加了水印的图片上传到阿里云O…

当iPhone中的Wi-Fi变灰时别担心,可以尝试这些解决办法

这篇文章解释了当iPhone上的Wi-Fi变灰时,你应该检查并修复的所有事情。 确保飞行模式关闭 这听起来可能很傻,但在执行任何其他操作之前,请确保未打开飞机模式。此功能禁用Wi-Fi(和蜂窝网络),因为它旨在允许你在通常不允许传出无线通信的飞机上使用手机。 查看飞行模式…

Linux 动静态库的制作,使用和加载

Linux 动静态库的制作,使用和加载 一.前置说明1.mylib.h2.mylib.c3.mymath.h mymath.c4.如何制作库 二.动静态库的制作1.静态库的制作1.制作2.使用一下静态库,验证是否成功打包 2.动态库的制作1.编译.c源文件文件生成.o目标文件2.打包生成动态库3.编写makefile文件,自动化制作动…

从0开始打架基于VUE的前端项目

准备与版本 安装nodejs(v20.11.1)安装vue脚手架(@vue/cli 5.0.8) ,参考(https://cli.vuejs.org/zh/)vue版本(2.7.16),vue2的最后一个版本初始化项目 创建一个git项目(可以去gitee/github上创建),注意创建一个空项目创建项目vue create mvp-admin-vue-ui删除自己创建的gi…

OpenHarmony实战:烧录Hi3516DV300开发板

前言 烧录开发板是每个开发者的必修课&#xff0c;每次对系统的修改务必进行烧录测试&#xff0c;确保修改正确和不会引入新问题。 本文基于 Windows10&#xff0c;以 Hi3516DV300 开发板为例&#xff0c;指导如何烧录 OpenHarmony 镜像&#xff0c;镜像也叫固件。 这块开发…

C++ :STL中deque的原理

deque的结构类似于哈希表&#xff0c;使用一个指针数组存储固定大小的数组首地址&#xff0c;当数据分布不均匀时将指针数组内的数据进行偏移&#xff0c;桶不够用的时候会像vector一样扩容然后将之前数组中存储的指针拷贝过来&#xff0c;从原理可以看出deque的性能是非常高的…

ISP-VPN实验

文章目录 ISP-VPN实验一&#xff0c;实验拓扑二、实验要求三、IP规划四、实验配置1、IP配置R1的配置R2的配置R3的配置R4的配置R5的配置 2、配置缺省路由3、认证与被认证配置4、HDLC封装5、构建MGRE和GRE6、整个私有网络基于RIP全网可达7、查看路由配置和PC端配置8、PC端pingR5的…

环境影响与碳排放生命周期评估应用及案例分析

生命周期分析 (Life Cycle Analysis, LCA) 是评价一个产品系统生命周期整个阶段——从原材料的提取和加工&#xff0c;到产品生产、包装、市场营销、使用、再使用和产品维护&#xff0c;直至再循环和最终废物处置——的环境影响的工具。这种方法被认为是一种“从摇篮到坟墓”的…

用JSch实现远程传输文件并打包成jar

本文将简单介绍一下 JSch 这个Java的第三方库的一个简单用法&#xff0c;并以此为实例&#xff0c;讲解 IntelliJ 中打包成 jar 包的2种方式。 实现目标 我们的目标是&#xff0c;做出一个jar包&#xff0c;它能够实现类似于 scp 命令的远程传输文件的功能。用法如下&#xf…

应急响应靶机训练-Linux2题解

前言 接上文&#xff0c;应急响应靶机训练Linux2 靶机地址&#xff1a;应急响应靶机-Linux(2) 题解 登录虚拟机&#xff1a; 修改面板密码 提交攻击者IP 答案&#xff1a;192.168.20.1 查看宝塔日志即可 用的net直接是网关 提交攻击者修改的管理员密码(明文) 答案&…