文章目录
代码讲解
首先进入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;