本帖最后由 MOP 于 2016-11-7 19:15 编辑
huihui163 发表于 2016-11-7 18:04
可以这样理解,必须先通过烧录软件选择振荡器频率,设置时钟分频寄存器确定系统时钟频率。在STC15系列当中 ...
我看了一下官方庫函數,沒有設置系統時鐘分頻唷.
自己寫的話,最快還是直接用Register,只要一行,如我上面寫的,差別只是在於不用再宣告CLK_DIV,庫函數標頭檔
STC15Fxxxx.h內已經有define,但還是直接操作Register
#include "config.h" //包含STC15Fxxxx.h void main() { CLK_DIV = 0x00; //不分頻 //CLK_DIV = 0x01; //除2 //CLK_DIV = 0x02; //除4 //CLK_DIV = 0x03; //除8 //CLK_DIV = 0x04; //除16 //CLK_DIV = 0x05; //除32 //CLK_DIV = 0x06; //除64 //CLK_DIV = 0x07; //除128 while(1); }
#ifndef __CONFIG_H #define __CONFIG_H /*********************************************************/ #define MAIN_Fosc 22118400L //定义主时钟 //#define MAIN_Fosc 12000000L //定义主时钟 //#define MAIN_Fosc 11059200L //定义主时钟 //#define MAIN_Fosc 5529600L //定义主时钟 //#define MAIN_Fosc 24000000L //定义主时钟 /*********************************************************/ #include "STC15Fxxxx.H" #endif
config.h的內容,也可以在這裡設定主時鐘
以上希望對您有用:)
本帖最后由 MOP 于 2016-11-7 19:15 编辑
huihui163 发表于 2016-11-7 18:04
可以这样理解,必须先通过烧录软件选择振荡器频率,设置时钟分频寄存器确定系统时钟频率。在STC15系列当中 ...
我看了一下官方庫函數,沒有設置系統時鐘分頻唷.
自己寫的話,最快還是直接用Register,只要一行,如我上面寫的,差別只是在於不用再宣告CLK_DIV,庫函數標頭檔
STC15Fxxxx.h內已經有define,但還是直接操作Register
#include "config.h" //包含STC15Fxxxx.h void main() { CLK_DIV = 0x00; //不分頻 //CLK_DIV = 0x01; //除2 //CLK_DIV = 0x02; //除4 //CLK_DIV = 0x03; //除8 //CLK_DIV = 0x04; //除16 //CLK_DIV = 0x05; //除32 //CLK_DIV = 0x06; //除64 //CLK_DIV = 0x07; //除128 while(1); }
#ifndef __CONFIG_H #define __CONFIG_H /*********************************************************/ #define MAIN_Fosc 22118400L //定义主时钟 //#define MAIN_Fosc 12000000L //定义主时钟 //#define MAIN_Fosc 11059200L //定义主时钟 //#define MAIN_Fosc 5529600L //定义主时钟 //#define MAIN_Fosc 24000000L //定义主时钟 /*********************************************************/ #include "STC15Fxxxx.H" #endif
config.h的內容,也可以在這裡設定主時鐘
以上希望對您有用:)
举报