#include #include #include "TM52F1386_bsp.h" /********************************************************************************************************** **函数名称 bsp_clock_init() **函数描述 :设置内部FRC/2为系统时钟 **输 入 :无 **输 出 :无 **说 明 :快时钟系统主频为 18.432/2M 默认二分频 **********************************************************************************************************/ void bsp_clock_init() { SELFCK = 0; //切换到慢时钟 CLKCON = 0x02; //时钟二分频 // CLKCON = 0x03; //时钟一分频 STPPCK = 0; //开启部分模块使用快时钟 STPFCK = 0; //开启快时钟 SELFCK = 1; //切换到快时钟 } /********************************************************************************************************** **函数名称 bsp_FXT_clock_init() **函数描述 :设置FXT外部快速晶体振荡器/2为系统时钟 **输 入 :无 **输 出 :无 **说 明 :注意 P20 P21需要配置为接外部快速晶振 **********************************************************************************************************/ void bsp_FXT_clock_init() { SELFCK = 0; //切换到慢时钟 CLKCON = 0x02; //时钟二分频 // CLKCON = 0x03; //时钟一分频 FCKTYPE = 1; //FXT STPPCK = 0; //开启快时钟 STPFCK = 0; //开启部分模块使用快时钟 //延时2ms等待晶体振荡器稳定 bsp_delay_ms(2); SELFCK = 1; //切换到快时钟 } /********************************************************************************************************** **函数名称 bsp_SXT_clock_init() **函数描述 :设置SXT外部慢速晶体振荡器/2为系统时钟 **输 入 :无 **输 出 :无 **说 明 :注意 P20 P21需要配置为接外部快速晶振 **********************************************************************************************************/ void bsp_SXT_clock_init() { SELFCK = 0; //切换到慢时钟 CLKCON = 0x02; //时钟二分频 // CLKCON = 0x03; //时钟一分频 STPPCK = 0; //开启快时钟 STPFCK = 0; //开启部分模块使用快时钟 SELFCK = 1; //切换到快时钟 SCKTYPE = 1; //SXT SELFCK = 0; //切换到慢时钟 } /********************************************************************************************************** **函数名称 bsp_delay_100us() **函数描述 :100us单位延时函数 **输 入 : **输 出 :无 **说 明 :基于内部时钟二分频计算,非精确延时 **********************************************************************************************************/ void bsp_delay_100us(unsigned int cnt) //该函数不是精确延时,根据内部时钟FRC二分频计算得来的 { unsigned int i; unsigned char delay_cnt; for(i = 0;i