首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

控制2440的GPIO,遇到一个特别奇怪的有关问题

2012-03-02 
控制2440的GPIO,遇到一个特别奇怪的问题:EBOOT中,遇到一个特别奇怪的问题:GPG11是一个控制脚位,控制一个三

控制2440的GPIO,遇到一个特别奇怪的问题:
EBOOT中,遇到一个特别奇怪的问题:
GPG11是一个控制脚位,控制一个三极管,来控制电源。

volatile S3C2440A_IOPORT_REG *s2440IOP = (S3C2440A_IOPORT_REG *)OALPAtoVA(S3C2440A_BASE_REG_PA_IOPORT, FALSE);
s2440IOP->GPGCON = ((s2440IOP->GPGCON & ~(0x3 << 22)) | (0x1 << 22));// 
s2440IOP->GPGDAT |= (0x1 << 11);
EdbgOutputDebugString("s2440IOP->GPGCON[%x] s2440IOP->GPGDAT: 0x%x\r\n", s2440IOP->GPGCON, s2440IOP->GPGDAT);

如果我不加EdbgOutputDebugString,s2440IOP->GPGDAT |= (0x1 << 11);就无效,读出也是为0,如果加了这一行,就有效,读出
也是为1

[解决办法]
这个现象很奇怪,代码上没看出什么问题,循环语句中的内容吗?
[解决办法]
不加你怎么知道读出的为0?
[解决办法]
外接负载太重。呵呵,后面有个大电容,搞死我也,那时候。我以前遇到情况如此,不知道楼主如何了。

热点排行