您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF548的IO输入输出问题
本帖共有467个阅读者
发表帖子 发表投票 回复主题
BF548的IO输入输出问题
HI无厘头(论坛新手)
HI无厘头
头衔:社区公民
帮派:无帮无派
帖数:17
金钱:258
积分:26
注册时间:2014/6/18
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF548的IO输入输出问题

我想用IO模拟IIC设置摄像头参数,发现,SDA先设置为输出之后,再设置为输入不起作用,用的是PE15,谢谢各位帮我看看是什么问题。

void SCCB_SID_OUT(void)//设置SCCB_SID为输出
{
*pPORTE_FER &= 0x7fff;
*pPORTE_INEN    &= 0x7fff;    // PE15为输出  
*pPORTE_DIR_SET |= 0x8000;    // PE15输出使能
ssync();
}

void SCCB_SID_IN(void)//设置SCCB_SID为输入
{
*pPORTE_FER &= 0x7fff;
*pPORTE_INEN    |= 0x8000;    // PE15为输入
*pPORTE_DIR_SET &= 0x7fff;    // PE15输入使能
ssync();
}

我测试了一下,直接设置为输入,然后读按键那样读是可以正确读的,下面的buzz为蜂鸣器,有响  (SDA_NUM[0] 为 PE15)
if(!(*pPORTE & SDA_NUM[0]))
{ buzz(1);}

但是先设置为输入,后面再设置为输入,蜂鸣器就不响了,读出来的IO状态一直都为1了,但是IO示波器看是有变低的,想不明白!

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/7/18 11:24:40
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
你打开VDSP下寄存器菜单,在寄存器菜单里找到你这个接口的配置,看看里面的配置值和你的设置是否一致。
再看看PORT E 的值,是不是你读出来的。
或者直接用printf 把port E值打印出来看看。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2016/7/22 9:18:16
HI无厘头(论坛新手)
HI无厘头
头衔:社区公民
帮派:无帮无派
帖数:17
金钱:258
积分:26
注册时间:2014/6/18
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
好的,谢谢andy的解答,我试试

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/7/25 8:47:21
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159282 Call, 1 Queries, Processed in 0.016602 second(s),