本帖最后由 强仔00001 于 2014-12-16 01:38 编辑
有幸拿到了一套飞思卡尔K64的开发套件,是万利电子出品的。做工很赞,很高大上。首先我从它的时钟系统入手。去官网下了个数据手册和参考手册下来。 主要是看数据手册的时钟模块。一看手册,真晕了,时钟系统好复杂。整个时钟系统由 MCG 、OSC 和 RTC 几部分组成,此外还与 SIM 有关系,这是因为 SIM 控制了大多数模块的时钟门控。这个跟STM32 也是类似的,要用到那个外设,先要把相应的时钟打开。这次使用的编译器是IAR FOR ARM 7.3 版本。先放出他高大上的靓照:
KL46和K64套件的合照:
现在来分享我首次使用的感受吧:
下面我自己用例程工程,把总线时钟频率二分频输出到PTC3口上输出,如下图可以看出PTC3有个复用功能是时钟输出。
然后我从官网下载一些K64 Demo套件的程序。然后就找到同一型号的芯片的例程。这个例程是I2C的例程,我把I2C部分的程序注释掉了,然后我再添加了个时钟输出的函数: void clk_out_init(void) {
PORTC_PCR3= ( PORT_PCR_MUX(0x5));//把PORTC3设置位时钟输出脚
SIM_SOPT2 |= SIM_SOPT2_CLKOUTSEL(2); //使能
} 这个函数很简单,就是把PORTC3设为时钟输出脚,要把PORTC3配置成时钟输出脚,就是配置PORTn_PCRn(n = 1,2,3.......)寄存器里的PORT_PCR_MUX(功能选择寄存器),他是PORTn_PCRn寄存器的10~8位,就是这3位的组合就可以有8中模式,具体如下图:
然后我们要把PORTC3配置成时钟输出脚,我可以通过数据手册查到配置成这种功能所需要的信息,如下图:
ALTn就是Alternative n的缩写,ALT5就是Alternative 5。而PORTC3要配置成时钟输出脚,就要把PORT_PCR_MUX(功能选择寄存器)配置成Alternative5(ALT5),然后通过手册查到Alternative5模式的对应的组合是101;就是往PORTn_PCRn的8~10位填进101即可,当然我们还有另一种快速的途径,我们要善于利用飞思卡尔的头文件,因为飞思卡尔把PORT_PCR_MUX定义了出来,我只需要PORTC_PCR3 = ( PORT_PCR_MUX(0x5));这个语句就把PORTn_PCRn的8~10位设成101,101写成16进制刚好就是0x5;这样看起来也通俗易懂,方便后来的人移植。 我这里是用Jlink V8进行仿真和下载程序的,所以工程的配置还要设置一下才能用,方法如下:
然后就可以编译,把程序下载进去了;时钟这部分很复杂,要花点时间消化。 关于时钟的初始化,官方例程有4种模式,是通过CLOCK_SETUP参数传递的,如下截图:
还有一点大家要注意,IAR要最好更新到7.3版本的,我之前电脑的6.7版本也不支持K64的。 下面放出测试图:
时钟输出成功了,这样往后的工作就好办了
|