STM32微控制器综合实训9 输入捕获实验

该博客详细介绍了STM32中使用TIM3产生PWM,TIM5进行输入捕获的配置和中断处理流程。通过TIM3_PWM_Init设置定时器3的频率和溢出周期,TIM_SetCompare2设置比较点产生特定占空比的方波。接着,利用TIM5_Cap_Init初始化定时器5作为捕捉,中断服务函数TIM5_IRQHandler记录高电平时间。在while循环中,根据捕获的溢出次数和定时器值计算高电平时间。实验总结了输入捕获的完整过程。
摘要由CSDN通过智能技术生成
实验9 输入捕获实验
用STM32的定时器来捕获PWM方波信号的脉宽。

代码讲解

首先进入main.c

#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "timer.h"

extern u8  TIM5CH1_CAPTURE_STA;		//输入捕获状态		    				
extern u16	TIM5CH1_CAPTURE_VAL;	//输入捕获值	
int main(void) 
{
   		 	
  u32 temp=0; 	
  delay_init();	    	 //延时函数初始化	  	
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级	
  uart_init(115200);	 //串口初始化为115200 	
  LED_Init();			     //LED端口初始化 	
  
  TIM3_PWM_Init(1000-1,72-1);
  
  TIM5_Cap_Init(0XFFFF,72-1);	
     	
  while(1)	
  {
    		
    delay_ms(1);		
    TIM_SetCompare2(TIM3,500);//周期是1000,比较点是500,表示产生周期为1ms的方波,占空比为50%的方波 		
    if(TIM5CH1_CAPTURE_STA&0X80)//成功捕获到了一次正脉冲		
    {
   			
      temp=TIM5CH1_CAPTURE_STA&0X3F;
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值