stm32使用通用定时器生成pwm

Driver_TIM5.c
通用定时器的通道1和2可以做时钟源

#include "Driver_TIM5.h"void Driver_TIM5_Init(void)
{/* 1.  开启时钟*//* 1.1 定时器5的时钟 */RCC->APB1ENR |= RCC_APB1ENR_TIM5EN;/* 1.2 GPIO的时钟 PA */RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;/* 2. 设置GPIO的复用推挽输出 PA1 CNF=10 MODE=11*/GPIOA->CRL |= (GPIO_CRL_CNF1_1 | GPIO_CRL_MODE1);GPIOA->CRL &= ~GPIO_CRL_CNF1_0;/* 3. 定时器配置 *//* 3.1 预分频器的配置 */TIM5->PSC = 720 - 1;/* 3.2 自动重装载寄存器的配置 */TIM5->ARR = 100 - 1;/* 3.3 计数器的计数方向 0=向上 1=向下*/TIM5->CR1 &= ~TIM_CR1_DIR;/* 3.4 配置通道2的捕获比较寄存器 */TIM5->CCR2 = 50;/* 3.5 把通道2配置为输出  CCMR1_CC2S=00 */TIM5->CCMR1 &= ~TIM_CCMR1_CC2S;/* 3.6 配置通道的输出比较模式 CCMR1_OC2M=110 */TIM5->CCMR1 |= TIM_CCMR1_OC2M_2;TIM5->CCMR1 |= TIM_CCMR1_OC2M_1;TIM5->CCMR1 &= ~TIM_CCMR1_OC2M_0;/* 3.7 使能通道2  CCER_CC2E=1 */TIM5->CCER |= TIM_CCER_CC2E;/* 3.8 设置通道的极性 0=高电平有效  1=低电平有效 */TIM5->CCER &= ~TIM_CCER_CC2P;//TIM2->DIER |= TIM_DIER_UIE; // 使能更新中断//NVIC_EnableIRQ(TIM2_IRQn); // 使能NVIC中的TIM2中断
}/*void TIM2_IRQHandler(void) {if (TIM2->SR & TIM_SR_UIF) { // 检查更新中断标志位TIM2->SR &= ~TIM_SR_UIF; // 清除更新中断标志位// 在这里处理更新事件,例如刷新LED状态GPIOA->ODR ^= GPIO_ODR_OD5; // 切换LED状态}
}*/void Driver_TIM5_Start(void)
{/* 使能计数器 */TIM5->CR1 |= TIM_CR1_CEN;
}void Driver_TIM5_Stop(void)
{/* 失能计数器 */TIM5->CR1 &= ~TIM_CR1_CEN;
}void Driver_TIM5_SetDutyCycle(uint8_t dutyCycle)
{TIM5->CCR2 = dutyCycle;
}

Driver_TIM5.h

#ifndef __DRIVER_TIM5_H
#define __DRIVER_TIM5_H
#include "stm32f10x.h"void Driver_TIM5_Init(void);void Driver_TIM5_Start(void);void Driver_TIM5_Stop(void);void Driver_TIM5_SetDutyCycle(uint8_t dutyCycle);#endif

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

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

相关文章

如何在PostgreSQL正确的 使用UUID 作为主键

如何在PostgreSQL正确的 使用UUID 作为主键 UUID 经常用作数据库表主键。它们易于生成,易于在分布式系统之间共享并保证唯一性。 考虑到 UUID 的大小,这是否是一个正确的选择值得怀疑,但通常这不是由我们决定的。 本文的重点不是“UUID 是…

游戏缺失steam_api64.dll的多种解决方法,分享几种靠谱的方法

在使用电脑进行游戏的过程中,可能会出现“找不到steam_api.dll,无法继续执行代码”的提示,导致游戏无法正常运行。对于这样的情况,我们需要采取一定的措施进行修复。本文将为您提供相关的解决方案。 一、找不到steam_api.dll对电脑…

python-28-零基础自学python-json存数据、读数据,及程序合并

学习内容:《python编程:从入门到实践》第二版 知识点: import json引入、 try-except-else return def函数、打开文件、 练习内容: 练习10-11:喜欢的数 编写一个程序,提示用户输入喜欢的数&#xff…

JVM OutOfMemoryError异常模拟

1.Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,并且保证 GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会 产生内存溢出异常。 限制Java …

菜鸡的原地踏步史08(◐‿◑)

技巧题 只出现一次的数字 class Solution {/** HashMap统计num和次数前面一天用堆魔怔了&#xff0c;也用堆进行排列...*/public int singleNumber(int[] nums) {PriorityQueue<int[]> pq new PriorityQueue<>(new Comparator<int[]>() {public int compa…

【人工智能】knn算法

目录 一、对[1.0,1.1],[1.0,1.0],[0,0],[0,0.1],[0.1,0.1],[1.1,1.1]六个点用knn进行聚类&#xff0c;并显示。 1. 未调用KNN算法前&#xff0c;绿色为未知分类 2. 调用KNN算法 3. 运行结果 二、使用knn算法分类手写数字文件 1. 第一个temp的含义 2. 第二个temp的含义 …

记录一次服务器一直向外发送大量请求(挖矿病毒)排除

1、症状 服务器一直向外发送SYN请求&#xff0c;并且无法通过netstat -anplt获取到对应的PID服务器CPU一直很低&#xff0c;通过PS查找不到异常程序安装NetHogs&#xff0c;工具卡死&#xff0c;无法显示是那个程序发起的请求&#xff08;因为请求都是SYN_SEND&#xff0c;并且…

【ARM】使用JasperGold和Cadence IFV科普

#工作记录# 原本希望使用CCI自带的验证脚本来验证修改过后的address map decoder&#xff0c;但是发现需要使用JasperGold或者Cadence家的IFV的工具&#xff0c;我们公司没有&#xff0c;只能搜搜资料做一下科普了解&#xff0c;希望以后能用到吧。这个虽然跟ARM没啥关系不过在…

基于神经网络的分类和预测

基于神经网络的分类和预测 一、基础知识&#xff08;一&#xff09;引言&#xff08;二&#xff09;神经网络的基本概念&#xff08;1&#xff09;神经网络&#xff08;2&#xff09;神经元&#xff08;3&#xff09;常用的激活函数&#xff08;非线性映射函数&#xff09;&…

【代码随想录算法训练营第六十六天|卡码网97.小明逛公园、127.骑士的攻击】

文章目录 97.小明逛公园127.骑士的攻击 97.小明逛公园 之前的题目都是只有一个出发点和到达点&#xff0c;这道题是有多个起始对&#xff0c;用之前的算法把每一对结果算出来也是可行的&#xff0c;在这里使用Floyd算法。 本质上是一种动态规划&#xff0c;dp数组dp[i][j][k]中…

webpack terser-webpack-plugin 不打包注释及log

踩坑记录&#xff1a;注意 terser-webpack-plugin": "^4.2.3" 对应着webpack4及版本一下的&#xff0c;5点多版本的对应webpack5&#xff0c;版本不对会报ERROR TypeError: Cannot read property javascript of undefined 1.安装三方包 npm install terser-web…

【Linux网络】IP协议{初识/报头/分片/网段划分/子网掩码/私网公网IP/认识网络世界/路由表}

文章目录 1.入门了解2.认识报头3.认识网段4.路由跳转相关指令路由 该文诸多理解参考文章&#xff1a;好文&#xff01; 1.入门了解 用户需求&#xff1a;将我的数据可靠的跨网络从A主机送到B主机 传输层TCP&#xff1a;由各种方法&#xff08;流量控制/超时重传/滑动窗口/拥塞…

RAG 召回提升相关方案分享

最近大半年时间都在做RAG的工作&#xff0c;分享一点个人探索的方向。和提升的方案。文章中会分享是如何做的&#xff0c;以及对应的效果。 核心问题 如何提升RAG的效果&#xff1f; 如何提升召回的准确率。 写在前边&#xff1a;已验证的方案 方案 优化方向 效果 备注 3.1…

iPad锁屏密码忘记怎么办?有什么方法可以解锁?

当我们在日常使用iPad时&#xff0c;偶尔可能会遇到忘记锁屏密码的尴尬情况。这时&#xff0c;不必过于担心&#xff0c;因为有多种方法可以帮助您解锁iPad。接下来&#xff0c;小编将为您详细介绍这些解决方案。 一、使用iCloud的“查找我的iPhone”功能 如果你曾经启用了“查…

07-7.5.3 处理冲突的方法

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

Biz-Logger操作日志框架

文章目录 前言一、设计 / 对比 / 实现1.1 注解1.1.1 EnableBizLogger1.1.2 BizLogger1.1.3 BizLoggerComponent1.1.4 BizLoggerFunction 1.2 自定义函数1.2.1 IBizLoggerFunctionRegistrar1.2.2 AbstractBizLoggerFunctionResolver 1.3 日志上下文1.3.1 BizLoggerContext 1.4 S…

SSM学习6:Spring事务

简介 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败Spring事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功同失败 public interface PlatformTransactionManager{void commit(TransactionStatus status) throws TransactionStatus ;vo…

Elasticsearch 角色和权限管理

在大数据和云计算日益普及的今天&#xff0c;Elasticsearch 作为一款强大的开源搜索引擎和数据分析引擎&#xff0c;被广泛应用于日志分析、全文搜索、实时监控等领域。随着业务规模的扩大和数据敏感性的增加&#xff0c;对 Elasticsearch 的访问控制和权限管理也变得越来越重要…

【人工智能】Transformers Pipeline概述

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 欢迎关注微信公众号&#xff1a;野老杂谈 V: LAF20151116 进行更多交流学习 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真…

【网络文明】关注网络安全

在这个数字化时代&#xff0c;互联网已成为我们生活中不可或缺的一部分&#xff0c;它极大地便利了我们的学习、工作、娱乐乃至日常生活。然而&#xff0c;随着网络空间的日益扩大&#xff0c;网络安全问题也日益凸显&#xff0c;成为了一个不可忽视的全球性挑战。认识到网络安…