我用战舰的范例,关于定时器方面出现问题。定时的时间比实际的时间大8倍。代码如下:
//------------------------------------------
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(9600); //串口初始化为9600
LED_Init(); //LED端口初始化
TIM3_Int_Init(4999,7199);//10Khz的计数频率,计数到5000为500ms
delay_ms(200);
while(1)
{
LED=!LED;
delay_ms(500);
}
LED闪烁间隔是4秒闪烁(4亮4秒熄灭)。应该是500ms才正确啊。很纠结没找出原因。请各位大侠帮小弟分析下。不胜感激啊。
用的板子不是战舰。硬件基本上是一样的。主控芯片是stm32f103zet6.
我感觉是不是没有倍频啊。外部晶振是8M的,9倍频以后就是72M了。我用手机计时的,可能不准。要是4.5秒的话就是正好相差9倍了。
请大家帮我分析分析。
我之前买了原子的stm32f103rbt6的一块开发板。书也买了定时从来没有出现这种问题啊。我在我以前的那个开发板上移植了modbus通信。modbus通信没有问题的。现在用stm32f103zet6定时就出现上述问题,modbus也通信不了了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
新手,问下0.5s不应该是2HZ吗?为什么是10Khz?
一周热门 更多>