STM32 TIM2重映射

STM32定时器

### 文章目录

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

前言

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

一、问题分析

重映射的参数在stm32底层文件可以看到

这里有写

c 复制代码
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

c 复制代码
  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);  
相关推荐
北京阿尔泰科技厂家2 小时前
CPCIe-76F1G控制器:国产化高性能嵌入式解决方案
嵌入式硬件·控制器·工业自动化·数据采集卡·国产化控制器
Truffle7电子2 小时前
STM32【H7】理论——通信
stm32·单片机·嵌入式硬件
zhonghaoxincekj2 小时前
晶体管的定义,晶体管测量参数和参数测量仪器
功能测试·单片机·学习·测试工具·单元测试·制造
MAR-Sky2 小时前
keil5使用STlink下载程序到stm32后不自动运行的解决办法
stm32·单片机·嵌入式硬件
Blossom.1182 小时前
把AI“浓缩”到1KB:超紧凑型决策树在MCU上的极限优化实战
人工智能·python·单片机·深度学习·决策树·机器学习·数据挖掘
深圳市青牛科技实业有限公司4 小时前
在电力系统、电子设备制造等领域,变压器测试感量,电桥内阻如何选择
嵌入式硬件·音视频·制造·立体声收录机·盒式录音机·电子烟
充哥单片机设计6 小时前
【STM32项目开源】基于STM32的智能厨房环境监控系统
stm32·单片机·嵌入式硬件
爱倒腾的老唐6 小时前
03、51 单片机介绍
单片机·嵌入式硬件
国科安芯7 小时前
抗辐照MCU芯片在低轨商业卫星原子钟中的适配与优化
单片机·嵌入式硬件·fpga开发·架构·risc-v
赋能大师兄14 小时前
单片机3.3V和5V电压等级
单片机·3.3v·5v