打印

S3C2410 GPIO 如何读取电平信号?

[复制链接]
5369|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdc666|  楼主 | 2009-10-29 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好,我最近在做一个数据采集板,用GPIOD控制采集芯片,GPIOD既负责发送控制命令,又负责采集数据,这就需要对GPIOD做控制,使其能够在发命令时方向为out,读取数据时方向为in。 但是,现在出现一个问题,我发完读取数据的命令后,读到的数据和发送的命令是一样的,也就是说,又将GPDATA的数据读了回来,外部数据并没有通过GPIO更新GPDATA。 请问应该如何解决?谢谢!

int hdb(void)
{   
  rGPDCON = (rGPDCON & ~0xffffffff|0x0);//GPD0-GPD15:input
     int d = rGPDDAT;
     return d;
     
}

相关帖子

沙发
SeaSun| | 2009-10-30 22:41 | 只看该作者
数据通信需要协议阿,老兄

使用特权

评论回复
板凳
lelee007| | 2009-10-31 12:13 | 只看该作者
看看你硬件有木有把数据发到GPD上去

很有可能你写出去的命令数据在接口上没动,而且你采集模块根本没把你想读的数据发过来

检查下原理上的逻辑是否正确,在检查下读写时序是否符合硬件要求

使用特权

评论回复
地板
sdc666|  楼主 | 2009-11-1 09:05 | 只看该作者
3# lelee007

谢谢,我再检查一下。那用GPIO控制的话,引脚的速度怎么控制呢?

使用特权

评论回复
5
sdc666|  楼主 | 2009-11-1 09:25 | 只看该作者
2# SeaSun
哦,谢谢老兄。 我有通信协议的,有相应的GPIO控制CS,RW,RD,只是总是没反应。

使用特权

评论回复
6
yuhuihui| | 2009-11-3 09:06 | 只看该作者
:) 呵呵 帮顶下

使用特权

评论回复
7
gooogleman| | 2009-11-3 23:49 | 只看该作者
感觉没有啥错误啊。

使用特权

评论回复
8
bkgl1986| | 2009-11-4 14:50 | 只看该作者
本帖最后由 bkgl1986 于 2009-11-4 14:51 编辑

试试这个:设置GPIO为输入之后,加个小小的延迟再读取数据
我以前做个扫描按键的程序也遇到过这样的问题

使用特权

评论回复
9
gooogleman| | 2009-11-12 10:13 | 只看该作者
还没有解决吗?

信号不要变化太快的,否则采集不到的。

使用特权

评论回复
10
wangkj| | 2009-11-12 12:50 | 只看该作者
使用voliate变量;禁用cache

使用特权

评论回复
11
sdc666|  楼主 | 2009-11-13 12:30 | 只看该作者
8# bkgl1986
谢谢,加上延迟就好了,是外部器件的速度有些慢。

使用特权

评论回复
12
sdc666|  楼主 | 2009-11-13 12:30 | 只看该作者
9# gooogleman
谢谢,加上延迟就好了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

29

主题

83

帖子

0

粉丝