我从时钟树分析一直认为,如果AHB是72M的话,APB1和APB2是72M频率,然后APB1 2分频成36M频率给PCLK1下边的外设,与此同时连接着TIM2~TIM7的倍频器由于APB1 不是1分频所以自动乘2,既TIM2~7的定时器时钟频率为72M。所以我下面的定时器配置图出来的定时器应该是1s的定时器。 但是实际测试并不是,实际出来的是2s的定时器。我时钟理解不了,难道是网上的时钟树分析都是错的? 你们是怎么理解的呢? æ¶éæ åæ å®æ¶å¨é ç½® |
能在一个程序中同时使用TIM的callback和uart的callback函数吗?
TCP客户端 周期性 发送数据,一段时间后会突然停止,是什么原因。
STM32F103VCT6有64K的RAM?
使用串口双机通信的问题
如何添加一个中断服务函数?
Proteus是否无法正确仿真STM32的开漏输出
Cortex m3内核是很特殊吗,为什么st公司的很多软件比如cubemx.ai唯独不支持m3内核的stm32f1系列
stm32f103c8t6串口发送大量hex数据失效。
STM32 CAN通讯收发异常
自己画的STM32F103RCT6的板子下载识别不到芯片。
时钟初始化部分有错误。
RCC_PCLK2Config、RCC_PCLK1Config不能用RCC_SYSCLK_Div1的参数。
进去函数看一下说明,要用对应的,RCC_HCLK_Div2。
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
另外你这程序能跑吗?时钟不对,跑不动吧。
建议升级库。
这是我从cube f103 里的时钟树截图。。 HCLK 72MHZ 经过 APB1/2得到最大36MHZ 但是 (APB1 timer) 时钟默认自动由APB1X2 所以是72MHZ
只是针对timer的。。其他APB1的外设最大时钟还是36MHZ。。。
按照以下配置,实现了1s的延时测试
我测试了,确实是1s 的延时。。。
我也是用了cubemx这样配置确实是1s的定时器,但是用库函数版的就不对,这也让我下决心发帖子搞搞明白。
这是时钟配置的截图
æ¶éåå§å
用的哪个版本的库?要不发个程序过来
001_Systick.rar
2017-7-14 11:24 上传
点击文件名下载附件
下载积分: ST金币 -12.19 MB, 下载次数: 9, 下载积分: ST金币 -1
TIMæ¶éä¸å¯¹,å¤é¨ä¸æè¿ä¸å»
工程发了
改过来确实好了,这个工程用了很久,没注意到这个问题。
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource) 这个函数不调用就可以默认用PLL作为system clock了吗
用Cube吧,去年我把外部时钟改成内部时钟,看参考手册,小心翼翼的,花了一上午。一气之下,今年改Cube了,点点鼠标,花了5分钟,这个就是效率。
cube的串口定长接收太操蛋,DMA中断接收按照网上的帖子弄了两回没弄成。 关键现在的一个项目用cube的串口接收数据时不定时会停止接收了,仿真的时候进不了中断,比较烦。