DSP2812 GPIO做I/O口输入时,能否直接读取其数据寄存器位GpioDataRegs.GPxDAT.bit.GPIOxx的值? 10

我想通过DSP2812I/O口做输入监控引脚上的输入为高或低电平。当设置GPIO口为通用I/O口且方向为输入后,设置的引脚始终对地为高电平3.3v,CCS中读取的端口值为... 我想通过DSP2812 I/O口做输入监控引脚上的输入为高或低电平。当设置GPIO口为通用I/O口且方向为输入后,设置的引脚始终对地为高电平3.3v,CCS中读取的端口值为1。把其与地短接后CCS中读取的端口值还是为1。当此口方向为输出时,对于GpioDataRegs.GPxDAT.bit.GPIOxx赋值其引脚输出电压正确。
程序片段如下:

EALLOW;
GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0=0;

GPIO初始化如下
EALLOW;
GpioMuxRegs.GPBDIR.bit.GPIOB0=0;
GpioMuxRegs.GPBMUX.bit.PWM7_GPIOB0=0;
GpioMuxRegs.GPBQUAL.all=0x0006;
EDIS;
采用定时器T1周期中断中读取输入引脚的值,中断函数部分如下
a[p++]=GpioDataRegs.GPBDAT.bit.GPIOB0;
if(p>100)p=0;
整个函数编译无措,运行后数组a中值时钟为一,且在pwm7引脚与地短接后也始终唯一。
求高手解惑!!!
展开
 我来答
zhy891113
2013-10-31
知道答主
回答量:23
采纳率:0%
帮助的人:17.5万
展开全部
可以这样做if(GpioDataRegs.GPBDAT.bit.GPIOB0
==1) b=1;
else b=0;
a[p++]=b;
if(p>100)p=0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
loveKEYBOARD
2013-04-11 · TA获得超过382个赞
知道小有建树答主
回答量:746
采纳率:86%
帮助的人:374万
展开全部
如果你的方向寄存器没有设置错误的话,而仍然输出H的话,很可能是由于该IO口的第二功能你没有关闭的原因,你找下它的第二功能确认下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
easyenter
2013-04-12 · TA获得超过2280个赞
知道大有可为答主
回答量:1786
采纳率:90%
帮助的人:1082万
展开全部
T1周期中断定时多少时间中断一次?中断服务程序中的P值仿真时看下有没有变化?是不是数组赋值那一块的程序问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式