楼主第一次发帖 很紧张,如果哪写的不对还请各位好友多多指正,共同交流,共同进步! 首先非常感谢 电子发烧网kl25的开源课堂,让自己能接触到飞思卡尔,自己拿到板子便开始苦心修炼,终于完成了 开发板的初级操作---控制IO口。
话不多说,下面直接进入主题。当然这个完全是基于对寄存器的操作,希望对于只学过51的同学有一定的帮助。
首先插入原理图:(原理图中特别注意D13是指端口D的1引脚而不是13引脚)
关于KL25Z要实现普通的IO口操作,大致需要完成三个步骤:
(1)设置系统时钟门的控制寄存器
通俗一点说就是要打开打开你要控制的GPIO的时钟,否则GPIO端口将无法工作
D12(PORTD)--D 端口时钟门控制。该位控制D模块的时钟门。0:禁用时钟 1:开启时钟
所以这里我们需要打开端口B和D的时钟所以只要像该寄存器的D10 和D12位写入1即可。
(2)设置引脚控制寄存器n(PORTx_PCRn)
此寄存器主要设置GPIO引脚的主要起到什么作用,led灯肯定用的是GPIO的通用输出功能,所 以,这里我么需要将MUX的 D10:D8 设置成001,即可实现GPIO通用的输入输出功能。
其他功能还需要大家详细的参见KL25的数据手册。这里我就不多赘述了。
(3)设置GPIO端口数据方向寄存器---GPIOx_PDDR
也就是说既然选择了GPIO的通用输入输出功能,那么是选择输入还是输出,就要设置这个 寄存器了,通过原理图可以看出我们要选择的是GPIO口的输出功能,当给IO口一个高电平, led灯关闭,给一个低电平则打开。
对于这个寄存器的描述如下:
D31-D0 为端口数据方向位,各位的值决定了相应引脚为输入还是输出。若其为设定为0,则相 对应的引脚为输入;为1,则对应的引脚为输出。
所以这里,我们需要把GPIOD_PDDR的D1和GPIOB_PDDR的D18和D19设置为1 即可。
以上都完成了,那我们就可已控制IO口了,那么该怎么控制?
对于kL25共有五个端口ABCDE,每个端口都有各自的寄存器,我们以端口A为例。端口A有如下寄 存器 ,功能我也就不多赘述了。
当然在这里我只需要写1或者写0即可,那么我们只需要对GPIO_PDOR寄存器 (Port data oupt register)数据输出寄存器进行操作就可以了,这里毫无疑问对 对应位写1 就是输出高电 平,写0自然就是输出底电平了。
举例来说我们控制PTB18(B端口的18引脚),这里我需要对GPIOB_PDOR寄存的D18写入1 此 时,PTB18输出高电平,D18写入0,则输出低电平。
到这里我相信,对于GPIO控制流水灯就差不多了,以下是我的代码,
关于如何定义、操控我们需要的寄存器注释中都有详细的说明:
|
|
|
|
头像被屏蔽
· 2015-1-16 10:25:24
|
|
|
|
|
头像被屏蔽
· 2015-1-16 15:46:30
|
|
|
|
|
头像被屏蔽
· 2015-1-16 16:04:21
|
|
|
|
|
谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~谢谢O(∩_∩)O哈哈~
|
|
|
|
|
9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用
|
|
|
|
|
9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用9S08DZ60特别适合初学者使用
|
|
|
|
|