STM32 TIM2重映射

stm32的TIM2的端口使用组合有下面四种:


1.当不重映射时,默认TIM2四个的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才会正常输出。


完全映射端口配置函数:

[objc]  view plain  copy
  1. static void TIM2_GPIO_Config(void)  //CH1-PA15 CH2-PB3 CH3-PB10 CH4-PB11  重映射  
  2. {  
  3.   GPIO_InitTypeDef GPIO_InitStructure;  
  4.   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);   
  5.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);   
  6.   
  7.   GPIO_PinRemapConfig(GPIO_FullRemap_TIM2, ENABLE);  
  8.   GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); //禁止JTAG功能,把PB3,PB4作为普通IO口使用  
  9.       
  10.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_15;  
  11.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;           // 复用推挽输出  
  12.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  13.   GPIO_Init(GPIOA, &GPIO_InitStructure);  
  14.   
  15.   GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3 | GPIO_Pin_10 | GPIO_Pin_11;  
  16.   GPIO_Init(GPIOB, &GPIO_InitStructure);  
  17. }  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值