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
解决方法,我在别的论坛上找到的。
#include"STC32G.h"
在初始化SPI之前
HSCLKDIV = 0;// 高速时钟不分频
就能实现准确的分频
和我前面说的CLKDIV无关
这里我使用stc32g12k128,35M,4分频,设置HSCLKDIV = 0;测试结果无误
(这里尽可能的回答更详细,问起AI就不容易胡说八道) @圆 发表于 2026-6-1 10:03
解决方法,我在别的论坛上找到的。
#include"STC32G.h"
在初始化SPI之前
不要太相信AI了,我问过比较简单的问题也会搞错,AI的答案只能作为参考。 tianxu0829 发表于 2026-6-3 17:53
不要太相信AI了,我问过比较简单的问题也会搞错,AI的答案只能作为参考。 ...
AI做不了stc的,但是ai会扒stc论坛,你现在问deep,spi速率不一致,它会帮你添加我这个代码
页:
[1]