@圆 发表于 2026-5-31 23:21:57

STC32G12k128 库函数SPI分频速率疑问

我有一个疑问,这个是spi的c文件,我的晶振是35m,4分频应该是8.75m,但是我实际测试是4m多,刚好是8分频左右。所以我想一步一步往下翻,看是不是有库内部设计导致频率受影响。
现在CPU以35MHz运行的时钟源,和供给外设的SYSCLK可能不是同一个值。有可能你设置了IRC=35MHz,但CLKDIV被置为2,导致SYSCLK = 35MHz / 2 = 17.5MHz。SPI拿到的源时钟是17.5MHz,再经过你设置的4分频,自然就得到4.375MHz
然后我查了整个库CLKDIV没有被赋值和调用。我的35M是在stc-isp下载软件内调整的。

我想知道默认CLKDIV是不是为2
芯片是stc32g12k128



@圆 发表于 2026-6-1 10:03:31

解决方法,我在别的论坛上找到的。
#include"STC32G.h"
在初始化SPI之前
HSCLKDIV = 0;// 高速时钟不分频
就能实现准确的分频
和我前面说的CLKDIV无关
这里我使用stc32g12k128,35M,4分频,设置HSCLKDIV = 0;测试结果无误
(这里尽可能的回答更详细,问起AI就不容易胡说八道)

tianxu0829 发表于 2026-6-3 17:53:05

@圆 发表于 2026-6-1 10:03
解决方法,我在别的论坛上找到的。
#include"STC32G.h"
在初始化SPI之前


不要太相信AI了,我问过比较简单的问题也会搞错,AI的答案只能作为参考。

@圆 发表于 2026-6-4 10:06:39

tianxu0829 发表于 2026-6-3 17:53
不要太相信AI了,我问过比较简单的问题也会搞错,AI的答案只能作为参考。 ...

AI做不了stc的,但是ai会扒stc论坛,你现在问deep,spi速率不一致,它会帮你添加我这个代码
页: [1]
查看完整版本: STC32G12k128 库函数SPI分频速率疑问