您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 请教一个读IO口数据的问题。
本帖共有511个阅读者
发表帖子 发表投票 回复主题
请教一个读IO口数据的问题。
topsunlove(论坛新手)
topsunlove
头衔:社区公民
帮派:无帮无派
帖数:15
金钱:249
积分:19
注册时间:2015/4/22
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
请教一个读IO口数据的问题。
大家好,我用的是BF531,现在要读取AD的数据。
这个是管脚初始化。
void Init_Flags(void)
{
*pFIO_DIR = 0x0000; // all inputs
*pFIO_INEN = 0xFFFF; // all inputs enable
*pFIO_MASKA_D = 0x0000; // clear all mask interrupt flags
*pFIO_POLAR = 0x0000; // active high or rising edge
*pFIO_EDGE = 0x0000; // rising edge
*pFIO_BOTH = 0x0000; // just one edge
}
之后写了一条读PF11端口数据的语句,
a = (*pFIO_FLAG_D & PF11);

我这样写对不对呢?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/4/21 10:32:04
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
如果仅仅是读取输入IO的电平,可以不用配置中断相关的:
*pFIO_MASKA_D = 0x0000; // clear all mask interrupt flags
*pFIO_POLAR = 0x0000; // active high or rising edge
*pFIO_EDGE = 0x0000; // rising edge
*pFIO_BOTH = 0x0000; // just one edge
这几个可以不配置。

其他的没有问题,你要注意 变量 a 至少是16bit的,不然读不到高位的PF11的值。PF11的值读出后是位于bit11上

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2016/4/22 9:14:15
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154441 Call, 1 Queries, Processed in 0.015625 second(s),