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引脚与地短接后也始终唯一。
求高手解惑!!! 展开
程序片段如下:
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引脚与地短接后也始终唯一。
求高手解惑!!! 展开
3个回答
展开全部
可以这样做if(GpioDataRegs.GPBDAT.bit.GPIOB0
==1) b=1;
else b=0;
a[p++]=b;
if(p>100)p=0;
==1) b=1;
else b=0;
a[p++]=b;
if(p>100)p=0;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你的方向寄存器没有设置错误的话,而仍然输出H的话,很可能是由于该IO口的第二功能你没有关闭的原因,你找下它的第二功能确认下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
T1周期中断定时多少时间中断一次?中断服务程序中的P值仿真时看下有没有变化?是不是数组赋值那一块的程序问题?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询