使用的协议栈为ZSTACK2.5.1
我在使用CC2530的时候,使用P04为TIMER1的捕获通道,输入的博习惯为一个3.3V的方波,在未设置P04为第二功能前,量P04脚为3.3V正常,一旦设置第二功能后,电压马上变为2V。此时将P04口设回来,不使用第二功能,又变回3.3V,请问这是什么道理?又有没有人知道
T1CNTL = 0x00; //timer 1计数清零,清相关管脚
PERCFG &= ~(1<<6); //采用备用位置1
P0DIR &= !0x10; //P0_4为输入口 P0SEL |= 0x10; //P0_4作为捕获通道,Channel2 这一句只要执行,电压马上变化
T1CTL |=0x01; //0分频32M,反复运行,打开定时器
T1IF =0; //timer 1 interrupt flag
T1CCTL0 |= 0x02; //下降沿捕获
T1CCTL0 &= ~0x04; //捕获模式
T1IE = 0; //TIMER1 interrupt disenable
T1OVFIM = 0;
Susan Yang:
使用下面的语句试试
P0SEL |= (1<<4);//复用功能P0DIR &= ~(1<<4);//设置 GPIO 口为输入
gaoyang9992006:
设置上拉电阻试试看,使能上拉电阻寄存器。
gaoyang9992006:
P0INP &= ~0x10; //打开P04上拉电
user6216187:
回复 Susan Yang:
你这样和我那样有什么区别啊,试过了,无效
user6216187:
回复 Susan Yang:
你这样和我那样有什么区别啊,试过了,无效
user6216187:
回复 gaoyang9992006:
无效,你说的这个,不用设置,上电就是这样的,设置过还是一样
user6216187:
回复 Susan Yang:
我新建了一个工程,没有使用协议栈,裸机跑的,将下面这一句放在了main函数的最开头P0SEL |= (1<<4);//P0_4作为捕获通道,Channel2
效果还是一样,只要执行了这一句,问题马上出现,在美欧运行这一句时,P04对输入的响应是正常的,一旦有这一句,马上变低了,这一句其实只是开启了P04的第二功能。有人知道,芯片内部是不是做了什么处理,还需要设置什么?在DATASHEET上,P04是可以用于捕获的。
user6216187:
没有人知道了吗?其他的管脚不是这样,只有P04是这个样子,我不知道为什么