就我个人看来,研究一块单片机,分为新手和老手两种模式,新人迫切的想先用,你得告诉他们怎么样最快的写出一个能跑起来的程序,告诉他们每一个外设的使用方式,老手不同,用的单片机多了外设对于他们而言没太多好奇的,中断,无非配置中断,连接中断,打开中断,中断模式,中断函数,定时器,无非打开时钟,设置分频率,设置值,等中断到来计数,千篇一律,没什么花样 但是老手关注的是不同,这个和那个的差异是什么,这样就能避免惯性思维,不会用错,学起来差不多,都是对着手册读呗,但是学的心态不一样,更加的举重若轻 闲话少叙,下面说说STM8的时钟系统
STM8时钟系统看起来是这样的,有一个外部输入时钟OSC,一个外部输出时钟CCO,CCO可选输出 内部的时钟五大块,CPU时钟,外设时钟,看门狗时钟,CAN总线时钟以及自动唤醒时钟 CPU时钟的来源包括外部晶振,外部振荡器输入,内部高速振荡器输入,三种输入经过主时钟选择,再经过主时钟分频输出CPU以及内部窗口看门狗 外设时钟和CPU时钟来源一样,并不经过主时钟分频,二十有一个外设使能控制,输入到各个外设,从这里我们可以判断,外设里面肯定还有分频器 自动唤醒时钟直接来源于内部低速振荡器或者直接来源于外部始终,经过选项字节选择输入 独立看门狗的时钟只可能来自于内部高速振荡器 而CAN总线的时钟也是直接从晶振上获取的,同时内部低速振荡器是可以关掉的
接下来我们看看寄存器
控制内部低速振荡器和内部高速振荡器的开关以及开关状态标识,细节是什么,观察这个复位值,0x01,也就是说,复位的时候内部低速振荡器使能这代表着系统复位的时候肯定是使用内部低速振荡器的,不用看文档的其他部分这一点几乎就能确定
外部时钟使能以及时钟状态
八个位都是只读,标识当前我们选用的系统主时钟是谁,也就是框图中master clock switch的标识
让你来选择哪一个做主时钟 对时钟切换的过程进行监控 时钟分频,一是内部高速时钟的分频,二是外部高速时钟的分频
还有一个2,用来确定各个外设是否连接到时钟上,相当于外设使能,外设没有时钟是跑不起来的
时钟安全系统配置
时钟输出的配置,也就是刚才说的CCO的来源
CAN总线的时钟分频
剩下来的一个是HIS的始终修正,另一个是SWIM时钟的配置,都是不需要我们去关注的
|