为了更好的理解,我们先来复习一下stm32中点亮led的程序
STM32点灯程序
这是在stm32中的点灯程序,
一共分为两步,首先开启时钟RCC,再去配置GPIO口
【同理mpc5634也一样】
MPC5634点灯程序(使用龙邱spc5634M开发板)
在MPC5634中首先要初始化pll
1、PLL初始化代码
对于8 MHz的晶体(Fref)和64 MHz的目标频率(Fsys),下面使用上述公式为MPC555x乘法器和分法器选择的值。FMPLL.SYNCR.R=0x16080000(配置PREDIV,MFD,RFD的值)以达到64MHZ的目标频率。
FMPLL的.h文件
按照上述代码配置PREDIV,MFD,RFD的值(冒号后面的数值指的是其所占的位数)
MPC5634,初始化时钟64MHZ一般是这4行代码(理解就好)
2、主程序
主要是SIU.PCR和SIU.GPIO的配置
由mpc5634顶层架构可知,GPIO口隶属于SIU当中,可配置通用I/O引脚。每个GPIO输入和输出分别由8位输入(GPDI)或输出控制(GPDO)寄存器。配置每个GPIO引脚使用专用SIU_PCR寄存器。并且GPIO引脚通常与其他I/O引脚多路复用功能。
SIU.PCR
SIU.PCR[ ].R=0x0303;将16进制数转化为二进制,使得OBE=1(output buffer enable),IBE=1(input buffer enable),WPE=1,WPS=1,其余为0。因为我们需要点亮LED灯,是对外输出,所以需要使OBE=1,(输出缓存区使能,用来存储数据,例如点亮led这个信息)
SIU.GPIO
PDO(Pin Data Output 引脚数据输出),由图可知要想点亮LED,给端口输出0即可,因此 SIU.GPDO[ ].R=0; //LED亮
【SIU.GPDO[ ].R和SIU.PCR[ ].R括号里的数字是对应的gpio端口号】
自此可以点亮led了