前言
前面我们讲了通用IO的使用,那么今天我们讲讲外设IO能做什么。
可以理解为外设IO能做更复杂的事情。
比如说外设IO的功能有ADC、USART、TIMER等等。
那么如何实现ADC转换、串口发送、定时器的使用呢。我们知道单片机要想工作,必须要有时钟频率。外设IO也不例外,因此我们先讲讲怎么初始化时钟频率。
系统时钟的初始化
怎么初始化系统时钟呢?很简单,只要用到两个寄存器。
一个是时钟控制命令寄存器CLKCONCMD,另一个是时钟控制状态寄存器CLKCONSTA。这个具体某一位怎么设置,大家可以翻阅官方手册。
因此配置系统时钟只需要两个寄存器就好了。
/*系统时钟选择32MHZ*/
CLKCONCMD&=~(1<<6);
CLKCONSTA&=~(1<<6);
但这远远不够,初始化时钟,还需要让时钟恢复稳定。因此把上面代码改为
void CLOCKinit()
{
/*晶振选择为32MHZ*/
CLKCONCMD&=~0X40;
/*等待晶振稳定*/
while(!(SLEEPSTA&0X40));
/*TICHSPD128分频,CLKSPD不分频*/
CLKCONCMD&=~0x47;
/*关闭不用的RC振荡器*/
SLEEPCMD|=0x04;
}
是不是很简单呢?
学完了系统时钟的初始化,下期我们讲讲如何使用串口点灯。