在裸奔2440时候遇到的GPIO郁闷问题

来源:本站
导读:目前正在解读《在裸奔2440时候遇到的GPIO郁闷问题》的相关信息,《在裸奔2440时候遇到的GPIO郁闷问题》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《在裸奔2440时候遇到的GPIO郁闷问题》的详细说明。
简介:厚着脸皮写这个,希望同志们不要像我这么郁闷,一个GPIO搞了五天,天天测量,天天郁闷,连开发板生意都没有心情做了。
嘿嘿,公司的事情解决,那么就开始6410学习了。

//----------------------------------------------------------------------------------------

// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet

// 平台:wince5.0 2440 5.0 BSP

//-----------------------------------------------------------------------------------------

在eboot下我写了如下代码:

volatile S3C2440A_IOPORT_REG *s2440IOP ;

s2440IOP = (S3C2440A_IOPORT_REG *)OALPAtoVA(S3C2440A_BASE_REG_PA_IOPORT, FALSE);

s2440IOP->GPFDAT &=0xFB;

mdelay(1);//如果我去掉这个延时,会导致s2440IOP->GPFDAT &=0xFB无效,加上延时才有效,也就是bit[2]不会等于零

s2440IOP->GPFDAT &=0xFE;

mdelay(1);//如果我去掉这个延时,会导致s2440IOP->GPFDAT &=0xFB无效,加上延时才有效

——这个问题我觉得很奇怪,对于地址,是uncache地址了,怎么2440速度这么慢呢!我觉得很不解,加个延时,啥都好了,不会2440会这么奇怪吧。

还有,如果这样写 s2440IOP->GPFDAT=(s2440IOP->GPFDAT&0xFB)&0xFE;又完全正确,真是神了。

还有

// Set GPF0as output pin

s2440IOP->GPFCON &=~(1 < <1);

s2440IOP->GPFCON |=(1 < <0);

这样一个与与一个或搭配又完全正确,

请问各位大侠,我是否犯了严重基础错误,我检查了一个下午,也找不出原因。

请指点,多谢。

======================================================

s2440IOP->GPFDAT &=0xFB;

mdelay(1);//如果我去掉这个延时,会导致s2440IOP->GPFDAT &=0xFB无效,加上延时才有效,也就是bit[2]不会等于零

s2440IOP->GPFDAT &=0xFE;

把上面的改成

s2440IOP->GPFDAT &=~(1 < <2);

mdelay(1);//如果我去掉这个延时,会导致s2440IOP->GPFDAT &=~(1 < <2); 无效,加上延时才有效,也就是bit[2]不会等于零

s2440IOP->GPFDAT &=~(1 < <0);

如果我去掉这个延时会一样导致s2440IOP->GPFDAT &=~(1 < <2); 无效

======================================================

这个郁闷的问题郁闷了我好几天啊,后来有人提示是否是负载电容太大,我如梦初醒,刚开始我还以为是MMU问题,结果关闭和打开一样的效果,嘿嘿。

是这样的,我的是买的开发板,我直接用接按钮的GPIO引出,没有想到这个按钮两端接了电容。

现在我的问题所有都解决了。

LCD也点亮了。嘿嘿。搞定NEC LCD,恭喜。

提醒:《在裸奔2440时候遇到的GPIO郁闷问题》最后刷新时间 2024-03-14 00:58:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《在裸奔2440时候遇到的GPIO郁闷问题》该内容的真实性请自行鉴别。