下面介绍的每个IP的初始化流程,目的是要大家了解每个IP的工作原理。一步一步讲解代码是为了介绍宏和API的使用方法。如果大家要测试某个IP,我们的BSPSampleCode\StdDriver下针对每个IP都有几个demo,大家直接跑这些demo 更方便。 芯片一般包含5种时钟源: ² 内部高速振荡器 HIRC(一般是 22.1184M,也有的是 12M 或者 16M) ² 内部低速振荡器 LIRC(一般是 10K,有的是 32K) ² 外部高速晶振 HXT(范围一般是 4~24M) ² 外部低速晶振 LXT(32K) ² PLL 注意:有的芯片外部晶振HXT和LXT是共用引脚的。 为了省电,上电之后,默认只有HIRC是起振的,其他的晶振都需要软件使能才会起振。起振之后也不是马上供给各个IP,也需要软件使能之后该IP才会有时钟,它的寄存器才能被访问和读/写。 每个IP的初始化包括2部分,系统初始化和IP本身功能的初始化,流程如下: 1) 系统初始化 n 选择 IP 时钟源,一般有上面 5 种可以选择。如果某个 IP的时钟源不能选择,则它的时钟源就是HCLK(就是 CPU 的时钟)。选择时钟源之前,IP 默认选择的时钟源和将选择的时钟源必须都要保持使能。不然 IP 将不工作。一般 IP 默认选择的时钟都是 HIRC,如果 IP 想选择 HXT 做时钟源,必须先使能 HXT(如果没有修改过 Config0,上电后 HIRC 默认是使能的),然后 IP 才能切换时钟源。千万不能先关闭 HIRC,再切 IP 的时钟源,这样 IP 会不工作的,或者工作不正常。虽然在切时钟源的时候 IP 也许并没有工作,但是也要保证 2 个时钟源(当前选择的和将要选择的)都是使能的才能切时钟源。 注:Config0 是用户配置区寄存器,用于配置上电默认使能的时钟、启动的Flash、加密、使能 DataFlash 等 n 使能 IP 时钟 n 配置 MFP 寄存器(多功能引脚寄存器) 2) 最后配置 IP 的功能 每个 IP 系统初始化步骤都是一样的:选择时钟源、使能时钟、配置多功能引脚。下面的代码基本上都使用的NANO112 BSP: NANO102_112_SeriesBSP_CMSIS_V3.01.000。如果
没有特别说明,都在这个 BSP下编译。其它系列的 BSP和 NANO112的 BSP函数基本上一样,但是宏定义有些不同。不过各个IP 的使用方法大同小异,学会了使用 NANO112,其它的用起来也不难。
|