智能车制作

标题: GPIO_SET(portx,n,1); 不知道函数出自何处 [打印本页]

作者: 刘康    时间: 2013-9-20 12:05
标题: GPIO_SET(portx,n,1); 不知道函数出自何处
void gpio_init (PORTx portx, u8 n,GPIO_CFG cfg,u8 data)
{
    ASSERT( (n < 32u)  && (data < 2u) );           //使用断言检查输入、电平 是否为1bit
    //选择功能脚 PORTx_PCRx ,每个端口都有个寄存器 PORTx_PCRx
    PORT_PCR_REG(PORTX[portx],n)=(0|PORT_PCR_MUX(1)/*|cfg*/);
    //端口方向控制输入还是输出
    if( ( (cfg&0x01) == GPI) || (cfg == GPI_UP) ||     (cfg == GPI_UP_PF)      )
        //   最低位为0则输入   ||   输入上拉模式  ||   输入上拉,带无源滤波器
    {
        GPIO_PDDR_REG(GPIOx[portx]) &= ~(1<<n);    //设置端口方向为输入
    }
    else
    {
        GPIO_PDDR_REG(GPIOx[portx]) |= (1<<n);  (这句话也不知道从哪里来的 )    //设置端口方向为输出
        if(data == 1)//outpu
        {
            GPIO_SET(portx,n,1);   (这个函数是哪里来的啊 不懂)                 //对端口输出控制,输出为1
        }
else
        {
            GPIO_SET(portx,n,0);                    //对端口输出控制,输出为0
        }
    }
}
红色部分不懂求指教  我是一个新手

作者: 野火    时间: 2013-9-20 12:05
GPIO_PDDR_REG  是 GPIO PDDR 寄存器

GPIO_SET 是 在头文件定义的  宏定义
作者: rubick    时间: 2013-9-20 12:26
不一定是函数啊,看这全大写的风格,应该是宏。
作者: 刘康    时间: 2013-9-20 14:54
野火 发表于 2013-9-20 13:01
GPIO_PDDR_REG  是 GPIO PDDR 寄存器

GPIO_SET 是 在头文件定义的  宏定义

头文件在哪里找啊
作者: 刘康    时间: 2013-9-20 15:27
野火 发表于 2013-9-20 13:01
GPIO_PDDR_REG  是 GPIO PDDR 寄存器

GPIO_SET 是 在头文件定义的  宏定义

GPIO_PDDR_REG(GPIOx[portx])  那REG是什么意思   为什么宏定义还有括号
作者: 野火    时间: 2013-9-20 16:11
刘康 发表于 2013-9-20 15:27
GPIO_PDDR_REG(GPIOx)  那REG是什么意思   为什么宏定义还有括号

高中生?

头文件 在 gpio.h 上实现

REG 表示寄存器的意思

宏定义可以带参数,带参数就有括号。



作者: 刘康    时间: 2013-9-20 21:57
野火 发表于 2013-9-20 16:11
高中生?

头文件 在 gpio.h 上实现

受益匪浅   霎时领悟

作者: archimedes    时间: 2013-9-21 11:16
lz高中就来这儿 …… 我顿时觉得自己弱爆了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2