程序代码如下,Target Settings选Simulator, 编译后运行,更新标志始终不出现,像是TIM4没有运行,用中断方法做,也是一样不出现中断,TIM4_CNTR 的值不变,是不是软件仿真时,定时器不运行。
void main(void)
{
TIM4_IER = 0x00; // 禁止中断
TIM4_EGR = 0x01; // 允许产生更新事件
TIM4_PSCR = 0x07; // 计数器时钟=主时钟/128=2MHZ/128
TIM4_ARR = 255;
TIM4_CNTR = 255; // 设定计数器的初值
TIM4_CR1 = 0x01;
TIM4_SR = 0;
while(1)
{
while((TIM4_SR & 0x81)>0x00) // 等待更新标志
{
TIM4_SR = 0x00; // 清除更新标志
PD_ODR = PD_ODR ^ 0x08; // LED驱动信号取反
}
}
} |