STM32定时器 输入捕获实现双边沿检测
来源:互联网 发布:手机淘宝如何换货 编辑:程序博客网 时间:2024/06/04 20:05
STM32的定时器有输入捕获功能,在STM32F10x_tim.h中对于TIM_Input_Capture_Polarity有如下定义
既可以实现上升沿和下降沿
#define TIM_ICPolarity_Rising ((uint16_t)0x0000)#define TIM_ICPolarity_Falling ((uint16_t)0x0002)#define TIM_ICPolarity_BothEdge ((uint16_t)0x000A)#define IS_TIM_IC_POLARITY(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \ ((POLARITY) == TIM_ICPolarity_Falling))#define IS_TIM_IC_POLARITY_LITE(POLARITY) (((POLARITY) == TIM_ICPolarity_Rising) || \ ((POLARITY) == TIM_ICPolarity_Falling)|| \ ((POLARITY) == TIM_ICPolarity_BothEdge))
可以 可以出具有BothEdge也就是双边沿检测,但是实际上并没有
如下图所示
执行的是没有双边沿的,因此我们要手工实现双边沿,如下见技术手册
也就是在中断中我们可以选择检测本次中断是上升沿中断还是下降沿中断,如果是上升沿中断,就修改为下降沿中断,反之就修改为上升沿中断。
void TIM1_CC_IRQHandler(void)// 用相应的定时器中断 {u8 i;if (TIM_GetITStatus(TIM1, TIM_IT_CC1) != RESET)//是TIM1CH2{TIM_ClearITPendingBit(TIM1, TIM_IT_CC1);//清空捕获标志if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8))//如果当前是高电平,那么下降沿,反之设置上升沿~!!!灵感!TIM1->CCER|=(1<<1);elseTIM1->CCER&=~(1<<1);}}
既可以实现上升沿和下降沿
0 0
- STM32定时器 输入捕获实现双边沿检测
- STM32定时器输入捕获
- STM32 TIM 输入捕捉 双边沿检测 TIM_ICPolarity_BothEdge
- stm32 定时器pwm输入捕获
- stm32定时器输入捕获pwm
- stm32 定时器5输入捕获
- STM32 定时器输入捕获实现红外遥控数据接收
- stm32单个定时器多通道输入捕获
- STM32 定时器输入捕获注意点
- stm32定时器pwm模式输入捕获
- STM32定时器5的输入捕获实验
- stm32单定时器四通道输入捕获(转)
- stm32库函数学习篇---通用定时器(输入捕获功能)
- STM32学习笔记之定时器输入捕获实验
- stm32库函数学习篇---通用定时器(输入捕获功能)
- STM32学习笔记之定时器输入捕获实验
- stm32库函数学习篇---通用定时器(输入捕获功能)
- STM32 通用定时器作为输入捕获 学习笔记
- 收藏网站3
- UVALive 5908 Tracking RFIDs 【计算几何】
- programming-challenges110201 jolly jumpers
- iOS中id与NSObject* 和id<NSObject>的区别
- iOS上怎样让按钮(UIbutton)文本左对齐展示
- STM32定时器 输入捕获实现双边沿检测
- 牛腩新闻发布系统后台开发总结
- 网络语音技术概念和要点
- clang: error: no such file or directory: xxx.pch
- 南阳OJ语言入门锦集
- SQL Server 2000初识—管理工具与设计基础
- POJ 3264 解题报告 RMQ 问题 ST算法
- Mac上运行php文件
- 关于零宽断言实例总结