STM32 TIM2重映射

STM32定时器

文章目录

  • STM32定时器
    • @[TOC](文章目录)
  • 前言
  • 一、问题分析
  • 二、代码

前言

最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jtag搞定了。

一、问题分析

在这里插入图片描述
重映射的参数在stm32底层文件可以看到
在这里插入图片描述
这里有写

GPIO_PinRemapConfig(GPIO_FullRemap_TIM2,ENABLE);  //完全映射

1.不重映射时,默认的IO口是PA0、PA1、PA2、PA3

2.要使用PA15、PB3、PA2、PA3的端口组合,要调用下面的语句进行部分重映射:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟

GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE);

3.要使用PA0、PA1、PB10、PB11的端口组合,要调用下面的语句进行部分重映射:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟

GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2, ENABLE);

4.要使用PA15、PB3、PB10、PB11的端口组合,要调用下面的语句进行完全重映射:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //重映射必须要开AFIO时钟

GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);

同时还要禁用JTAG功能,PA15、PB3、PB10、PB11才会正常输出。

关于JTAG功能:

STM32启动时,默认PB4、PB3、PA15三个引脚不是普通IO,而是JTAG调试功能引脚,分别为JNTRST、JTDO、JTDI。要将这些引脚用作

普通IO口,必须释放掉调试功能才能当普通IO口使用,但首先应开启RCC_APB2Periph_AFIO时钟,否则禁用不了。

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable,ENABLE); //SWJ完全失能

GPIO_Remap_SWJ_NoJTRST :除 JTRST 外 SWJ 完全使能(JTAG+SW-DP)
GPIO_Remap_SWJ_JTAGDisable :JTAG-DP 失能 + SW-DP 使能
GPIO_Remap_SWJ_Disable :SWJ 完全失能(JTAG+SW-DP)

二、代码

我想使用PA15 PB3 PB10 PB11

  GPIO_InitTypeDef GPIO_InitStructure;  
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);   
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);   
  
  GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);  
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //禁止JTAG功能,把PB3,PB4作为普通IO口使用  
    
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_15;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;           // 复用推挽输出  
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3 | GPIO_Pin_10 | GPIO_Pin_11;  
  GPIO_Init(GPIOB, &GPIO_InitStructure);  

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

羊大师讲解,羊奶奶源是如何影响羊奶品质的呢?

羊大师讲解,羊奶奶源是如何影响羊奶品质的呢? 1.营养成分和口感:由于奶源地的不同,土壤、气候和牧草种类等自然条件的差异会导致羊奶的营养成分和口感有所差异。高品质的奶源地能够提供丰富的营养和优质的牧草,因此羊…

wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片

采用uniapp-vue3实现,透明辉光动画卡片,卡片内容包含标签、标题、副标题、图片 支持H5、微信小程序(其他小程序未测试过,可自行尝试) 可用于参考学习 可到插件市场下载尝试: https://ext.dcloud.net.cn/plu…

刷LeetCode541引起的java数组和字符串的转换问题

起因是今天在刷下面这个力扣题时的一个报错 541. 反转字符串 II - 力扣(LeetCode) 这个题目本身是比较简单的,所以就不讲具体思路了。问题出在最后方法的返回值处,要将字符数组转化为字符串,第一次写的时候也没思考直…

VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分

VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分 文章目录 VIO第3讲:基于优化的IMU与视觉信息融合之IMU预积分1 IMU预积分1.1 IMU常规积分—连续时间—不适用1.2 预积分形式① 定义② 如何推导出预积分定义③ 用预积分表达IMU积分公式④ 预积分误差&am…

APP要做哪些测试?APP测试要注意哪些问题?

APP要做哪些测试?APP测试要注意哪些问题?对于移动测试,测试员不得不基于用户移动使用模式考虑移动相关的功能。而针对手机应用软件APP的系统测试,我们通常从如下几个角度开展:功能测试(流程测试、功能点测试)、兼容性测…

WEB APIs (3)

事件对象 事件对象有事件触发时的相关信息,如点击事件中事件对象储存了鼠标点在哪个位置的信息 场景: 用户按下了哪个键,按下回车键可以发布新闻 鼠标点击了哪个元素,从而做哪些操作 参数e为事件对象 常用属性 type 获取当前…

枚举类(enum)

优质博文:IT-BLOG-CN ​ 枚举类: 就是对象的实例个数是确定的(例如:单例模式),也就说我们在创建枚举类的时候,会对构造器进行设置 一、自定义创建枚举类 为什么需要枚举类? 【1】…

前端开发,Vue的双向数据绑定的原理

目录 一、什么是前端 二、Vue.JS框架 三、双向数据绑定 四、Vue的双向数据绑定的原理 一、什么是前端 前端通常指的是网页或应用程序中用户直接交互和感知的部分,也称为客户端。前端开发涉及使用HTML、CSS和JavaScript等技术来构建用户界面和交互功能。前端开发…

[WebDav] WebDav基础知识

文章目录 什么是WebDavWebDav常用命令WebDav常用命令的测试(代码)PROPFIND 方法测试PUT 方法测试GET 方法测试PROPPATCH方法 WebDav缓存Cache-ControlEtag测试 强制重新验证不需要缓存 WebDav的锁WebDav的状态码WebDav身份验证WebDav版本控制WebDav和FTP…

安卓adb调试备忘录

由于 MAC 的 USB 口全被占用着,采用无线连接刚方便,记录一下,以防忘记~ ADB原理 adb devices -l ## 列出连接的设备adb tcpip [端口号] adb tcpip 6666 # 将当前已连接USB上的Mobile端切换为TCP/IP模式,以6666端口进行监听. adb…

数据结构笔记1线性表及其实现

终于开始学习数据结构了 c语言结束之后 我们通过题目来巩固了 接下来我们来学习数据结构 这里我们将去认识到数据结构的一些基础知识,我在第一次学习的时候会很迷糊现在重新学习发现之前的时候还是因为c语言学的不牢固导致学习数据结构困难 这里 我会尽量的多写代码…

Day51 42 接雨水 84柱状图中的最大矩形

42 接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,…

前端 webSocket 的使用

webSocket使用 注意要去监听websocket 对象事件,处理我们需要的数据 我是放在了最外层的index 内,监听编辑状态,去触发定义的方法。因为我这个项目是组件化开发,全部只有一个总编辑按钮,我只需监听是否触发了编辑即可…

深入探索STM32的存储选项:片内RAM、片内Flash与SDRAM

博客:深入探索STM32的存储选项:片内RAM、片内Flash与SDRAM 在嵌入式系统设计中,存储管理是一个至关重要的方面,尤其是对于基于STM32这类强大的微控制器来说。STM32系列微控制器因其高性能、低功耗以及灵活的存储选项而广受欢迎。本…

数智化转型的三大关键点

一、重新认识数智化转型 消费红利时代,伴随中国宏观经济向好发展,相当一部分企业可以轻松实现快速增长,如同搭乘了一架高速运转的电梯一路飞升。然而,随着宏观经济增速放缓,时代的电梯逐渐失去效力,中国商…

18. 四数之和 - 力扣(LeetCode)

问题描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): …

C#,洗牌问题(Card Shuffle Problem)的算法与源代码

1 洗牌问题(Card Shuffle Problem) 洗牌问题(Card Shuffle Problem)的基本描述 你有 100 张牌,从 1 到 100。 你把它们分成 k 堆,然后按顺序收集回来。 例如,如果您将它们分成 4 堆&#xff0…

关于发送邮件时Reply Reply All和Forward的区别

我们发送邮件的时候总是会纠结到底是用回复,还是回复全部,还是转发。 回复- 仅回复发件人。 全部回复- 回复发件人和抄送/密件抄送的联系人。 转发- 将电子邮件的副本发送给其他收件人。 这几种情形分别在什么时候用呢? 回复 比如Alen给你…

【设计模式】23种设计模式笔记

设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法,和大量抽象的方法,具体的方法是为外界提供服务的点,具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A,希望A的a方法被修饰 …

浏览器缓存机制

浏览器缓存有先后顺序,总体分为以下四个方面: Memory Cache Service Worker Cache Disk Cache Push Cache 缓存位置 1. Memory Cache 内存中的缓存 优点: 浏览器会优先去命中的一种缓存 响应速度最快 缺点: 缓存时间短&#xf…