STM32F103ZET6 用STM32cubermx生成的程序,现在在STM32cubermx修改时钟设置的系数后,PCLK1,PCLK2时钟都是错误的,

2019-07-16 07:57发布

所用芯片STM32F103ZET6, 用STM32cubemx生成的程序,在keil uVision5编程环境下,现在在STM32cubermx修改时钟设置的系数后,在线仿真,PCLK1,PCLK2时钟都是错误的, 无论如何设置时钟设置参数,aa=HAL_RCC_GetHCLKFreq(); bb=HAL_RCC_GetPCLK1Freq();
cc=HAL_RCC_GetPCLK2Freq();
在线监视,无论怎样修改发现aa,bb,cc都是72MHZ。
另外之前程序都是好用的,modbus通讯也是收发正常,现在modbus通讯有时能通讯上,但是通讯不上的时候多,在线监视发现BRR中的数据根本就不对,我认为这跟STM32cubemx生成的程序在keil uVision5编程环境下不对有关。

我还有一个疑问,USART1的BRR计算公式中通讯的时钟是APB2 Periperal clock 还是APB2 timer clock(我认为是APB2 Periperal clock )

谢谢指教,现在整个调试一直停留在这,请高手帮忙


无标题.png
2.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
fengxingmei5213
2019-07-16 13:01
问题已解决,具体是什么原因 其实我也没搞清楚。 我用STM32CUBEMX 重新生成了一个工程,将原来的程序依次复制过去,调试时发现程序又停在了SystemClock_Config();中一个时钟的地方(这个程序太长,我也没看明白,反正能知道是时钟的问题),反复调反复调,在网上搜索答案,发现有可能是晶振坏掉了,拿示波器测了一下晶振,确实24脚的8M晶振输出也没有了,我重新焊了一下,一切正常了

一周热门 更多>