```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. 1803无法升级到2004_Win10再度误伤“友军”:升级五月更新后OneDrive同步报错
  2. MySQL主从数据库同步延迟问题解决
  3. ubuntu获取root权限
  4. 总结接口与类和抽象类的关系
  5. 结对-贪吃蛇游戏-设计文档
  6. 树莓派+神经计算棒2实时人脸检测
  7. 笨方法“学习python笔记之print换行
  8. 《统计学习方法》(李航)读书笔记(完结)超级火爆的总结
  9. 【WebGoat习题解析】AJAX Security-Insecure Client Storage
  10. 数据库软删除php,应用 Laravel 的软删除你需要注意的几点
  11. Caused by: java.lang.UnsatisfiedLinkError: libjawt.so: 无法打开共享对象文件: 没有那个文件或目录
  12. 简单matlab仿真实例教程,simulink仿真教程
  13. Excel-缺失数据处理
  14. csapp 大作业 hello的自白
  15. 菜鸟 Linux系统学习1简介 安装 云服务器 启动过程
  16. emmc和ssd的区别
  17. android 实用代码
  18. Python灰色关联度
  19. 高等院校毕业生登记表计算机水平怎么填,关于《高等学校毕业生登记表》填写详细说明...
  20. PMP学习笔记:采购合同类型

热门文章

  1. Adobe Camera Raw v15.0.0.1264 增效工具
  2. 推荐61个免费最好软件
  3. Qt之自定义QLineEdit右键菜单
  4. 20 行代码编写一个简单的端口扫描器
  5. Nginx代理静态页面
  6. 语音识别框架之kaldi
  7. 教你在 Markdown 文档中借助 MathType 公式编辑器插入 LaTeX 公式
  8. hp170x打印服务器修改ip,HP_JetDirect_170X配置说明
  9. 随想·手中没有红玫瑰
  10. java安装后为什么是英文_java用到英语多吗