初级会员

- 积分
- 148
- 金钱
- 148
- 注册时间
- 2022-9-21
- 在线时间
- 14 小时
|

楼主 |
发表于 2022-9-28 15:19:05
|
显示全部楼层
while(1)
{
delay_ms(10);
TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0);
if(TIM2CH1_CAPTURE_STA&0X80)//成功捕获到了一次高电平
{
temp=TIM2CH1_CAPTURE_STA&0X3F;
temp*=65536; //溢出时间总和
temp+=TIM2CH1_CAPTURE_VAL; //得到总的高电平时间
printf("HIGH:%d us\r\n",temp); //打印总的高点平时间
TIM2CH1_CAPTURE_STA=0; //开启下一次捕获
}
}
这是while里面的代码,具体疑问是TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0); 两句,文档里没介绍 |
|