英文手册上说,当McBSP串口被设置成GPIO之后,CLKRP, CLKXP, CLKSP, FSRP, 和 FSXP没有被写保护。“如果要写这些位,要到相关引脚的状态下一次自动改变,才能写入。”请问如果我写CLKXP=1,那么作为GPIO口,不是在引脚上立即反映出高电平吗?这里的“要到相关引脚的状态下一次自动改变,才能写入”是怎么个情况?
还有DXSTAT和DRSTAT这两个引脚又是什么情况
亲,帮忙介绍下。
Shine:
你好,
我的理解是这些输入管脚上的输入电平值要在下一个CPU clock才会采样到相应的寄存器. 如CLKX上的输入高电平时, 要到下个CPU clock, CLKXP的值才会变成1.
这种情况只针对输入管脚模式, 如果像你举的输出管脚的例子, 没有影响. DXSTAT, DRSTAT没有这方面的限制
sun yingming:
回复 Shine:
请问,,我将5509A的mcbsp配置成GPIO,,我怎么对位操作呢?比如说我将mcbsp0的CLKX配置成GPIO且为输出,,怎么操作 输出一个高电平或是低电平,谢谢!!
Shine:
回复 sun yingming:
这个在mcbsp user guide里有介绍怎么把mcbsp配置成GPIO口,具体见第9章节。http://www.ti.com/lit/ug/spru592e/spru592e.pdf
sun yingming:
回复 Shine:
我知道怎么配置,我是想知道,我怎么对寄存器中的每一位进行操作,难道只能整个寄存器进行赋值吗???
sun yingming:
回复 Shine:
我知道怎么配置,我是想知道,我怎么对寄存器中的每一位进行操作,难道只能整个寄存器进行赋值吗???
Shine:
回复 sun yingming:
用"与操作:&=“ 或者 "或操作:|="
sun yingming:
回复 Shine:
我怎么知道我想设置的寄存器的地址呢,,比如PCR,,我看网上有人这么设置:
这个0X2C12这个地址是怎么得到的??
谢谢!!!
Shine:
回复 sun yingming:
外设寄存器地址都在数据手册"3.10 Peripheral Register Description"里列出来。
另外,如果有新问题,麻烦另起新帖,方便其他客户参考。
meng yang2:
回复 Shine:
0x2c12寄存器中的值是如何得来的呢?
McBSP程序中
ioport unsigned int *PCR_1=(unsigned int *)0x2c12;
#define REG_PCR1 (*PCR_1)
interrupt void timer0Isr(void) { temp = REG_PCR1;
那temp中的值如何改变?DSP中的PCR_1寄存器如何接收DR引脚中输入的值?
Shine:
回复 meng yang2:
如果是输入管脚,值由外部给的电平决定。
如果是输出管脚,值可以自己通过程序写1或0.
TI中文支持网






