本帖最后由 sfesdmmm 于 2015-11-6 22:10 编辑 用的芯片型号是STM32F030F4P6,TSSOP20封装,程序很简单,就把系统时钟设置为16M,然后产生一个100ms的systick中断,用一个LED来观察效果。 下面是初始化程序和主程序的截图: 系统初始化,时钟为16M,systick设置为100ms SysTick_Handler里把flag置1,主函数里判断 问题描述:在把程序烧进去以后,发现灯闪得很慢,如果把函数改成SysTick_Config(1600000);//即100ms就可以正常闪了。这说明RCC_GetClocksFreq(&RCC_Clocks); 获取的值不对。 于是就在线调试,看到systick相关的寄存器值不对了 不知道大家有没有遇到这样的问题?请不吝赐教,谢谢! 另外,在线调试的时候,跟踪代码,发现RCC_GetClocksFreq函数里,有程序跑飞的情况。 问题依然存在,现在把工程放上来了,劳烦各位可以下来看看,谢谢了! 在线调试的时候,进入UartInit函数里,点击“step over”,发现还是有程序跑飞的情况。 |
project.rar
下载397.18 KB, 下载次数: 20, 下载积分: ST金币 -1
【STM32F0开发日志/评测/笔记】+互补PWM波的产生
STM32F030 PB14和PB15无法输出PWM求助
【STM32F030探索套件】序列之五 外部中断
【STM32F0开发日志---二】+ucosii.2.92移植在STM32F030
上传个STM32F0+5110+内部温度传感器的菜鸟实例
【STM32F030探索套件使用问题】STM32F030 SPI方式驱动ST7565LCD失败
求一份STM32F051 I2C驱动LCD 12864的例程
STM32F0 M0 向结构体赋值进入HardFault异常
STM32F0 ADC-DMA方式采集2路数据时出现问题
STM32F030C8T6,TIM16定时慢很多问题?
是的,直接SysTick_Config(1600000)就没问题了。
但是,SysTick_Config(RCC_Clocks.HCLK_Frequency/10); 这样的方式,如果是在线烧录调试的话,又是正常的。我弄了几天,查了不少资料,感觉应该是systick设置的时候,出现了问题,这个跟优先级有关,但是又不知道怎么排除问题。
点右键 ADD到 Watch 1
你可以把那段代码复制过来看一看,怀疑是你 倍频错了
经过这一两周的不断排除,现在确定跟RCC_GetClocksFreq函数有很大关系,但是具体问题出在哪里,不想继续纠结了,现在人为把RCC_ClocksStatus.USART1CLK_Frequency设定为系统时钟值就行了。心好累
0x2DC6C00=48000000 48M
给你看一下吧,这是在线运行的结果
版主你好,我已经把工程放上来了,劳烦您帮忙看一下,谢谢了!