int main(void)
{
Stm32_Clock_Init(9);//系统时钟设置(正常是9倍频)
delay_init(72);//延时初始化(正常值是72)
GPIO_init();//GPIO初始化
lcd12864_init();
//用来扫描矩阵键盘
// Timer2_Init(100-1, 7199);//10ms(对毫秒延时有影响)
//用来控制秒表计时
Timer3_Init(10000-1, 7199);//1s中断一次
while (1)
{
delay_us(1000000);//延时1s
delay_us(1000000);//延时1s
delay_us(1000000);//延时1s
lcd12864_display_string(2, 1, DHMS);//显示秒表时间
}
}
现象:(1)若注销上述红色语句则秒表是每隔3秒更新一次,每次增加计时3s,因为有3s的延时所以这是正常的。
(2)若不注销上述红色语句则秒表是每隔1秒更新一次,每次增加计时1s。这就很奇怪了啊,明显是
Timer2_Init(100-1, 7199);语句使delay_us(1000000);//延时1s 语句不起作用了啊!
注:将delay_us(1000000); 换为delay_ms(1000); 现象相同!!
高人解答~~ |