问题遇到的现象和发生背景
基于STM32F103的输入捕获测量频率,想把发信的间隔时间从10ms变长,但是修改后无法读数
问题相关代码,请勿粘贴截图
while(1)
{
TIM_SetCompare1(TIM1,TIM_GetCapture1(TIM1)+1);
if(TIM_GetCapture1(TIM1)==300)TIM_SetCompare1(TIM1,0);
if(TIM2CH3_CAPTURE_STA&0X80)//成功捕获到了一次高电平
{
temp=9999-TIM2CH3_CAPTURE_VAL; //得到总的时间
printf("HIGH:%d HZ\r\n",1000000/temp); //打印总的时间
TIM2CH3_CAPTURE_STA=0; //开启下一次捕获
delay_ms(10);
}
}
运行结果及报错内容
这个是修改成delay20ms的
我的解答思路和尝试过的方法
修改这个算式temp=9999-TIM2CH3_CAPTURE_VAL有时能得到不正确的值
尝试过更改其他地方,无奈实在不会,基本都不行
我想要达到的结果
delay 100ms甚至更长,能够自行调整