```c
void TIM4_Cap_Init(u16 arr,u16 psc)
{//定义结构体TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure;NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;//使能时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);//GPIO_AFIODeInit();  //刚开始没有这个语句,所以一直没有重映射成功GPIO_PinRemapConfig(GPIO_Remap_TIM4 , ENABLE); //这个就是重映射功能函数RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//配置TIM4 TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;TIM_TimeBaseStructure.TIM_Period=arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseInit(TIM4,&TIM_TimeBaseStructure);//配置TIM4 Channel输入捕获TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICFilter=0x00;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//上升沿捕获TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInit(TIM4,&TIM_ICInitStructure);//配置TIM4 Channe2输入捕获TIM_ICInitStructure.TIM_Channel=TIM_Channel_2;TIM_ICInitStructure.TIM_ICFilter=0x00;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//上升沿捕获TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInit(TIM4,&TIM_ICInitStructure);//配置TIM4 Channe3输入捕获TIM_ICInitStructure.TIM_Channel=TIM_Channel_3;TIM_ICInitStructure.TIM_ICFilter=0x00;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//上升沿捕获TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInit(TIM4,&TIM_ICInitStructure);//配置TIM4 Channe4输入捕获TIM_ICInitStructure.TIM_Channel=TIM_Channel_4;TIM_ICInitStructure.TIM_ICFilter=0x00;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;//上升沿捕获TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInit(TIM4,&TIM_ICInitStructure);//配置GPIO口 PB6789GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入模式GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_ResetBits(GPIOD,GPIO_Pin_12);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入模式GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_ResetBits(GPIOD,GPIO_Pin_13);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入模式GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_ResetBits(GPIOD,GPIO_Pin_14);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;//下拉输入模式GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15;GPIO_Init(GPIOD,&GPIO_InitStructure);GPIO_ResetBits(GPIOD,GPIO_Pin_15);//配置中断分组NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3; //抢占优先级3NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //子优先级2NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM4,ENABLE);//使能TIM4TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);//允许溢出中断TIM_ITConfig(TIM4,TIM_IT_CC1,ENABLE);//允许捕获中断TIM_ITConfig(TIM4,TIM_IT_CC2,ENABLE);TIM_ITConfig(TIM4,TIM_IT_CC3,ENABLE);TIM_ITConfig(TIM4,TIM_IT_CC4,ENABLE);
}

stm32定时器4重映射相关推荐

  1. stm32学习日记--重映射

    目录 前言 重映射 操作方法 代码 总结 前言 今天学习了重映射,故输出一篇学习日记去增强理解. 重映射 优点 1:把一个管脚的功能转移到另一个管脚上面,布线更简单. 优点 2:无缘无故增加了功能的数 ...

  2. 使用stm32 定时器TIM3 的重映射引脚 捕获正交编码器数据的一些积累

    关注+星标公众号,及时获取更多技术分享~  作者 | 冰茶奥利奥 微信公众号 | 嵌入式电子创客街 因为我们公司的软件和硬件是分开的,硬件人员在设计电路板的时候,为了布线方便,往往会使用一些引脚的重映 ...

  3. STM32学习日记3---定时器TIM3重映射PWM波呼吸灯实验

    文章目录 1. 代码 关于PWM波的输出,我们需要用到定时器的4个通道(通用定时器和高级定时器有,基本定时器没有这4个通道)里面的PWM生成.然后查看数据手册,了解定时器的重映射引脚情况.所以配置时, ...

  4. STM32端口重映射

    笔者在使用STM32F103C8T6时,不能使用TIM3输出2路PWM波的问题分析和解决办法. PS. PB4(部分重映射,TIM3_CH1) ,PB5(部分重映射,TIM3_CH2) STM32的端 ...

  5. STM32中重映射的功能和机理

    在STM32系列微控制器中,GPIO端口具有多种功能,如输入.输出.模拟输入/输出等.为了提高GPIO的灵活性和可用性,STM32系列微控制器提供了重映射(Remap)功能. 重映射功能允许将一个GP ...

  6. 【STM32】谈谈STM32F10XX的定时器通道复用功能重映射

    写这篇的动机是我每次配置定时器硬件PWM的时候都要翻一遍手册,对着目录找内容实在麻烦,干脆写一篇博文直接pick出这一段. 本文参考:正点原子提供的STM32中文参考手册 关键词:STM32 定时器 ...

  7. STM32端口复用和端口重映射

    参考:stm32 端口复用和重映射 作者:点灯小哥 发布时间: 2021-03-09 13:49:19 网址:https://blog.csdn.net/weixin_46016743/article ...

  8. STM32之端口复用与重映射

    STM32 --端口复用和重映射 首先来说下什么是端口复用. STM32有很多的内置外设,这些外设的外部引脚都是与GPIO复用的.也就是说,一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GP ...

  9. stm32 TIM2 重映射

    stm32的TIM2的端口使用组合有下面四种: 1.当不重映射时,默认TIM2四个的IO口是PA0.PA1.PA2.PA3 2.要使用PA15.PB3.PA2.PA3的端口组合,要调用下面的语句进行部 ...

  10. stm32之端口复用和重映射

    文章目录 端口复用 端口重映射 端口复用 WHAT IS 端口复用? 一个GPIO如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用的时候,就叫做复用 端口复用配置过程(以串口1位例 ...

最新文章

  1. 手把手教你用Python构建自己的「王二狗」
  2. 想拿高新就必须知道的知识
  3. 《Windows Communication Foundation之旅》系列之一
  4. UVALive - 8512——线段树维护线性基
  5. 联想r630服务器开启虚拟化,整合虚拟化 联想万全R630服务器上市
  6. java 内部类 菜鸟编程,java中的匿名内部类
  7. c# 第8节 变量、变量名命令规则、作用域、@的作用
  8. 【近五千字纯手撸】✨前后一个月面试30家中大型高级、资深java工程师终获500强公司offer心得以及经过
  9. 一键重装系统win8图文教程
  10. sqlserver 登录名与数据库用户
  11. java中extends与implements的区别
  12. TS中的DTS、PTS、PCR
  13. Python end= 什么意思?
  14. linux中的link
  15. 黄金斗士原生android,联想黄金斗士S8 (S898T+)官方固件rom系统刷机包
  16. 【Python】京东抢购脚本
  17. 论文简读《Harmonizing Transferability and Discriminability for Adapting Object Detectors》
  18. 摘自-万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。
  19. skia windows编译
  20. 分布式对象存储设计原理

热门文章

  1. html毛玻璃背景代码,css毛玻璃背景的制作
  2. 【MFC】进度条:Progress Control控件
  3. 信息科学技术与创新之“知识升华”
  4. flutter学习笔记之Dart-8 问号、双问号、感叹号的理解
  5. 学影视模型与游戏模型哪个更有前景呢?
  6. YIT-CTF—社工类
  7. ffmpeg实战教程(十二)为视频添加/更换背景音乐
  8. 销售业务处理流程之 分期收款
  9. 关于java读取文本文件乱码的问题
  10. 网游实时对战同步技术三篇