注册 登录
查看: 314|回复: 1

关于K60的port_init函数的详细说明?求解

[复制链接]
发表于 2014-4-30 12:21:18 | 显示全部楼层 |阅读模式
void  port_init(PTXn_e ptxn, uint32 cfg )
{
    SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK << PTX(ptxn));                           //开启PORTx端口

    PORT_PCR_REG(PORTX_BASE(ptxn), PTn(ptxn)) = cfg;                           // 复用功能 , 确定触发模式 ,开启上拉或下拉电阻
}
    山外哥,我刚开始学习K60,首先把软件学习了一下,现在看到LED的程序,想把里面的函数全部弄懂,碰到了port_init函数,有很所不理解的地方,希望山外哥能知道我一下。
    SIM_SCGC5_PORTA_MASK << PTX(ptxn)的意思是左移PTX(ptxn)位,
    SIM_SCGC5_PORTA_MASK 的定义是#define SIM_SCGC5_PORTA_MASK    0x200u   ,
    QUESTION:把SIM_SCGC5_PORTA_MASK宏定义为0x200u是什么意思?

PORT_PCR_REG(PORTX_BASE(ptxn), PTn(ptxn)) = cfg;函数PORT_PCR_REG的定义为
#define PORT_PCR_REG(base,index)         ((base)->CR[index])
QUESTION:((base)->CR[index]),这是什么意思?在那边有定义?
(我的理解是应该是一个指向结构的指针,不知道对不对)


是帖子没发上去吗?
回复

使用道具 举报

发表于 2014-4-30 12:39:54 来自手机 | 显示全部楼层
其实是你对飞思卡尔提供的头文件命名不熟悉,PORT_PCR_REG表示port模块的pcr寄存器,可以参考我们视频的讲解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部