智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3572|回复: 9
打印 上一主题 下一主题

[讨论] 野火K60 库的一些疑问

[复制链接]

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
威望
228
贡献
128
兑换币
138
注册时间
2012-11-22
在线时间
39 小时
毕业学校
wuyidax
跳转到指定楼层
1#
发表于 2013-6-8 12:00:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef enum PORTx
{  PORTA,  PORTB,  PORTC,  PORTD,  PORTE}PORTx;
volatile struct GPIO_MemMap *GPIOx[5]={PTA_BASE_PTR,PTB_BASE_PTR,PTC_BASE_PTR,PTD_BASE_PTR,PTE_BASE_PTR}; //定义五个指针数组保存 GPIOx 的地址

volatile struct PORT_MemMap *PORTX[5]={PORTA_BASE_PTR,PORTB_BASE_PTR,PORTC_BASE_PTR,PORTD_BASE_PTR,PORTE_BASE_PTR};
//这个数组存放了端口的基地址,其中PORTB_BASE_PTR等在头文件里映射到物理地址

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); //这一句不懂,portx的值 是PORTA到PORTE,这几个只是定义在上面的结构体里,没有跟实际的地址联系起来(难道在其他地方定义了??)。按照值传递,PORTX[portx]为PORTX[PORTA],怎么跟volatile struct PORT_MemMap *PORTX[5]={PORTA_BASE_PTR,PORTB_BASE_PTR,PORTC_BASE_PTR,PORTD_BASE_PTR,PORTE_BASE_PTR};对应起来,这是我的疑惑之处

    //端口方向控制输入还是输出
    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)//output
        {
            GPIO_SET(portx,n,1);                    //对端口输出控制,输出为1
        }
        else
        {
            GPIO_SET(portx,n,0);                    //对端口输出控制,输出为0
        }
    }
}


还望各位大神指导指导,小弟学术不精,还望海涵

32

主题

978

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2834
QQ
威望
1620
贡献
482
兑换币
1009
注册时间
2012-11-29
在线时间
366 小时
2#
发表于 2013-6-8 12:12:22 | 只看该作者
头文件定义了
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
威望
228
贡献
128
兑换币
138
注册时间
2012-11-22
在线时间
39 小时
毕业学校
wuyidax
3#
 楼主| 发表于 2013-6-8 12:15:31 | 只看该作者
dapan945 发表于 2013-6-8 12:12
头文件定义了

是MK60DN256ZVMD10.头文件吗??怎么我没找到定义了,能把你定义的部分截个图来看看吗??
回复 支持 反对

使用道具 举报

32

主题

978

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2834
QQ
威望
1620
贡献
482
兑换币
1009
注册时间
2012-11-29
在线时间
366 小时
4#
发表于 2013-6-8 12:21:44 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

17

主题

671

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6187
QQ
威望
3024
贡献
1755
兑换币
1315
注册时间
2012-2-4
在线时间
704 小时
5#
发表于 2013-6-8 12:28:35 | 只看该作者

typedef enum PORTx
{  PORTA,  PORTB,  PORTC,  PORTD,  PORTE}PORTx;
你这个定义的是枚举型啊!不懂哪里的疑惑
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
威望
228
贡献
128
兑换币
138
注册时间
2012-11-22
在线时间
39 小时
毕业学校
wuyidax
6#
 楼主| 发表于 2013-6-8 12:31:00 | 只看该作者
菜鸟威 发表于 2013-6-8 12:15
是MK60DN256ZVMD10.头文件吗??怎么我没找到定义了,能把你定义的部分截个图来看看吗??

这里是定义了PORTA~PORTE,但他们的值是多少呢???他只是在枚举变量里定义了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
威望
228
贡献
128
兑换币
138
注册时间
2012-11-22
在线时间
39 小时
毕业学校
wuyidax
7#
 楼主| 发表于 2013-6-8 12:35:00 | 只看该作者
青龙00 发表于 2013-6-8 12:28
typedef enum PORTx
{  PORTA,  PORTB,  PORTC,  PORTD,  PORTE}PORTx;
你这个定义的是枚举型啊!不懂哪 ...

枚举型的变量就是说这个PORTx的值只能取PORTA.~PORTE,但是PORTA的值具体是什么呢??
回复 支持 反对

使用道具 举报

17

主题

671

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6187
QQ
威望
3024
贡献
1755
兑换币
1315
注册时间
2012-2-4
在线时间
704 小时
8#
发表于 2013-6-8 12:41:03 | 只看该作者
哦!这个啊。枚举元素是常量,每个枚举元素代表一个整数,C语言编译按定义时的顺序默认它们的值是0,1,2....
回复 支持 反对

使用道具 举报

17

主题

671

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6187
QQ
威望
3024
贡献
1755
兑换币
1315
注册时间
2012-2-4
在线时间
704 小时
9#
发表于 2013-6-8 12:41:12 | 只看该作者
哦!这个啊。枚举元素是常量,每个枚举元素代表一个整数,C语言编译按定义时的顺序默认它们的值是0,1,2....
回复 支持 反对

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
威望
228
贡献
128
兑换币
138
注册时间
2012-11-22
在线时间
39 小时
毕业学校
wuyidax
10#
 楼主| 发表于 2013-6-8 13:59:44 | 只看该作者
青龙00 发表于 2013-6-8 12:41
哦!这个啊。枚举元素是常量,每个枚举元素代表一个整数,C语言编译按定义时的顺序默认它们的值是0,1,2.. ...

谢谢啦,基础不好,还得多多指教
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 09:43 , Processed in 0.048894 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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