各位大侠: 小弟在使用STM32做一个通迅时序的东东,为配合相应的时序要求,要加一些软件延时处理.因为延时的精度要求不高,所以就不想用滴答定时器或其他定时器来做这一块,只是想简单的用for(i=delay_count;i>0;i--);来实现.但是在测试这段程序到底延时多长时间时,问题就出来了.我是用下面的语句测试的: 我的时钟为48MHz: while(1) { GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_SET); for(i=100;i>0;i--); GPIO_WriteBit(GPIOB,GPIO_Pin_5,Bit_RESET); for(i=100;i>0;i--); } 用示波器看差不多2个us周期,后来将for循环去掉后发现IO的输出周期居然还是差不多二个us.真是搞糊涂啦!! |