电设之F5529(1)UCS
电设之F5529(2)OLED(外设)
电设之F5529(3)SPI
电设之F5529(4)定时器
电设之F5529——我的核心系统板
电赛比完了,收获不少,分享一下这段时间写的或参考的代码,
今天说一下UCS,个人能力很有限,有什么不足或者建议,希望
能直接提出来,学习学习
工程上,先包含这些代码
- /************************************工程中请包含此部分代码******************************/
- /*
- * Stdint.h 该头文件 重定义了 unsigned char 、unsigned int 等等。。。
- */
- #include <stdint.h>
- /*
- * Macos : 系统延时,直接依据时钟定义
- */
- //#define CPU_F (1200000) //Normal
- #define CPU_F ((double)25000000) //25Mhz
- #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0) )//x MHz----us
- #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
- #define delay_s(x) __delay_cycles((long)(CPU_F*(double)x/1.0))
- /*******************End of*****工程中请包含此部分代码******************************/
函数:F5529时钟配置函数时钟配置函数,配置时钟的同时
要考虑CPU核心电压,参考PMM.C PMM.H 官方给的头
还有一个更重要的头文件 MACROS.H
这个头文件可以解决 通过其他宏形成一个完整的有效c状态
目前只了解这个头是必学的,并未深入了解
说明;该函数改自官方函数库,新增了自己之前
编写的外部时钟和内部DCO的配置,那几个
时钟输出接口一定要慎用,中间编写程序时
被这玩意搞得晕死,刚好调时序,和时钟冲突
这是我用的缺省配置,工作在最高时钟频率25Mhz
SetVCore(3); //设置核心电压为最大
XT_Init(); //P1.0 P2.2 P7.7 已经屏蔽
LFXT_Start(XT1DRIVE_0); //利用LFXT1(32.768kHZ)作为时钟参考
Init_FLL_Settle(25000, 762); //利用锁频环,将系统时钟设为25MHZ
SFRIFG1 = 0; //清除中断标志
SFRIE1 |= OFIE; //使能晶振失效中断