本人从MCS—51转到STM32,在学习中发现,STM32输出的波形会有抖动,我程序操作过程是:
#define c1_set GPIO_SetBits(GPIOA, GPIO_Pin_1);
#define c1_clr GPIO_ResetBits(GPIOA, GPIO_Pin_1);
其它程序省略
while(1)
{
c1_set;
delay_us(4);
c1_clr;
delay_us(4);
c1_set;
delay_us(4);
c1_clr;
delay_us(4);
c1_set;
delay_us(4);
c1_clr;
delay_us(4);
c1_set;
delay_us(4);
c1_clr;
delay_us(4);
}
/延时US级函数
void delay_us(int i)
{
int j;
while(i>0)
{
for(j=0;j<4;j++);
i--;
}
}
下图中方波的周期是50US,其中A是实测波形,其抖动时间是5US
B是我认为正常波形,另外STM32采用8M的有源晶振,系统时钟直接就是8M的频率
各位认为5US的抖动是为什么?
|