本帖最后由 TLLED 于 2019-1-20 16:58 编辑 m" t4 j0 N5 o 2 O+ g1 Z9 ~) \3 w0 l' ~2 h5 L, q STM8 SO8封装的没有外部晶振,使用的是内部时钟,通过时钟配置,使用CCO输出内部时钟,用示波器查看正确性。 一、时钟部分介绍 j: @* m6 p4 o9 ]6 G " S+ v! A; r0 ]/ O3 C0 [# G7 r- q 1.1、时钟框图 8 I2 n" l7 c% N7 e" s 程序中设置HSIDIV[1:0]和CPUDIV[2:0]的值来改变系统时钟。通过CCOSEL[3:0]来选择输出时钟源 主时钟切换开关选择,由于STM8上电默认选择的是HSI RC内部时钟,所以CKM[7:0]这个就不设置,使用默认值。7 I% A* k& b7 V) {0 s 1.2、手册中有关主时钟切换介绍:' T5 e* W1 s: R& k2 J 3 _9 N2 u( h- j9 \ 二、程序部分1 r$ e/ }- @" X5 a 2.1、CCO输出HSI RC 没有分频时钟频率 2.1.1、程序代码 2.1.2、执行结果 数出的频率是15.69M" m) h: g. Z9 `* U8 ^% U* y 2.2、CCO输出HSI RC 2分频时钟频率: D! X$ v6 z- X5 G& Y0 l) Y; S7 @ 2.2.1、程序代码 2.2.2、执行结果1 h- @ q* Y2 n5 T/ Z. g1 V 输出的频率是7.89M, 我这里只列了这两个值,需要看其他的频率可以修改CCOSEL[3:0]的值。 三、硬件部分 5 `2 R H" z# A) s- _* e) p 3 z8 H4 X7 z# q( Q" w CCO时钟输出脚和按键功能脚是一个引脚,在测试CCO时钟输出时,需要将SB2电阻去掉,否则,频率高的话,会被C12电路旁路掉,示波器就看不出来时钟。 Q" M4 l- N( }! q " P2 |5 x3 T7 x4 Q; m2 d 5 l6 V& [4 w8 D2 w% I! ]7 z |
电容会影响这个信号的,我设置为16M输出,外接电容后,示波器就测量不出信号,频率低的话还好些,会影响信号波形