int main(void)
{
delay_init();
BEEP_Init();
while(1)
{
GPIO_SetBits(GPIOB,GPIO_Pin_8);
delay_ms(50);
GPIO_ResetBits(GPIOB,GPIO_Pin_8);
delay_ms(4000);
}
}
调用的SYS延时函数库,正常来说,这个程序应该 四秒钟响一短音,然后再隔四秒再响,这样往复。
为什么我下载完这个程序以后,它响声间隔非常小,很密集,并不是间隔几秒再响呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2 ^ 24 / 9 / 1000 / 1000 =1.864
我想过了,还是想不明白这个公式,能简单和我说下吗?
SysTick是24位的时钟,72MHZ的主频8分频之后是9MHZ,/9=微秒,再/1000=毫秒,再/1000=秒
另:该函数也不算是精准,需要精准的话,你写进去的值应该是小于设置时间对应的值。(需考虑函数调用、退出、开启计数前及时间到达后执行指令的时间)
一周热门 更多>