本帖最后由 TLLED 于 2019-1-20 16:58 编辑 $ k- [2 F) I2 G2 @& {( v3 E # Y8 a m( b" r6 C+ a' {% b STM8 SO8封装的没有外部晶振,使用的是内部时钟,通过时钟配置,使用CCO输出内部时钟,用示波器查看正确性。 一、时钟部分介绍 2 q9 z) O' Z( f3 k% x0 V 1.1、时钟框图 ; V0 y6 p& A% e$ J) ^. C + A: |5 n3 W. B! O6 q 程序中设置HSIDIV[1:0]和CPUDIV[2:0]的值来改变系统时钟。通过CCOSEL[3:0]来选择输出时钟源' |4 }4 e( S9 m 主时钟切换开关选择,由于STM8上电默认选择的是HSI RC内部时钟,所以CKM[7:0]这个就不设置,使用默认值。( i4 ~9 A+ x0 B- [" o! w ( M* l# G1 V( X' O ; \; _: o1 r' t: l9 Q& \ 1.2、手册中有关主时钟切换介绍: . l1 o6 y, x3 K, ~0 u* ]- U 二、程序部分 * [, \, w7 z5 X8 x 2.1、CCO输出HSI RC 没有分频时钟频率, f3 M5 g! T1 l* w 2.1.1、程序代码7 t4 V- X/ y# D 2.1.2、执行结果 数出的频率是15.69M 2.2、CCO输出HSI RC 2分频时钟频率 2.2.1、程序代码 2.2.2、执行结果 输出的频率是7.89M,/ z2 S ~( h5 A- \$ b# Y, a/ A 7 B; {4 c9 H" m" I- \) i 我这里只列了这两个值,需要看其他的频率可以修改CCOSEL[3:0]的值。 三、硬件部分 ; O; t4 n8 w6 U+ b( a2 s7 _+ m CCO时钟输出脚和按键功能脚是一个引脚,在测试CCO时钟输出时,需要将SB2电阻去掉,否则,频率高的话,会被C12电路旁路掉,示波器就看不出来时钟。 $ Q5 W. |; r3 I3 N0 v8 ` |
电容会影响这个信号的,我设置为16M输出,外接电容后,示波器就测量不出信号,频率低的话还好些,会影响信号波形