自己写的程序,芯片是C6416。因为没办法检测输出管脚是否按照要求拉高拉低,希望有经验的人能指导一下。
怎么把其中的CLKX FSX DX引脚拉高拉低,怎么获得DR管脚输入是高还是低
Shine:
McBSP user guide上有GPIO模式配置说明。
10 McBSP Pins as General-Purpose I/O
www.ti.com/…/spru580g.pdf另外,请参考下面的应用报告。
4.1 McBSP Setup: GPIO Implementation
www.ti.com/…/spra633c.pdf
,
wapdasta:
您好,首先感谢回复:
文档和代码我之前也都有看到过。还是不太明白。
1,spra633c里面的例程设置是MCBSP配置为UART,对MCBSP的初始化配置中,PCR寄存器配置如下:
/* PCR Setup */ MCBSP_PCR_RMK( MCBSP_PCR_XIOEN_SP, /* 0 */ MCBSP_PCR_RIOEN_SP, /* 0 */ MCBSP_PCR_FSXM_INTERNAL, /* 1 */ MCBSP_PCR_FSRM_EXTERNAL, /* 0 */ MCBSP_PCR_CLKXM_OUTPUT, /* 1 */ MCBSP_PCR_CLKRM_OUTPUT, /* 1 */ MCBSP_PCR_CLKSSTAT_0, /* 0 */ MCBSP_PCR_DXSTAT_0, /* 0 */ MCBSP_PCR_FSXP_ACTIVELOW, /* 1 */ MCBSP_PCR_FSRP_ACTIVELOW, /* 1 */ MCBSP_PCR_CLKXP_RISING, /* 0 */ MCBSP_PCR_CLKRP_FALLING /* 0 */ )
XIOEN 和RIOEN都为0,按理说应该使能,才是GPIO模式。
而且示例工程中用的是EDMA活着DMA来发送缓冲区数据。我不知道它是怎么控制引脚拉高拉低的。
2.我的目的是想知道,我怎么配置,可以直接操作相应的底层引脚来拉高拉低。(包括时钟引脚我也想自己控制高低)
,
Shine:
1. 应用报告中uart有两种配置模式,一种是mcbsp功能配置成uart,另一种是mcbsp先配成GPIO模式,再用GPIO去模拟uart时序。XIOEN 和RIOEN都为0的话,应该是用的第一种mcbsp功能配置成uart。
2. 可以直接读写mcbasp寄存器来拉高拉低,如#define GPDIR*(volatile Uint32*)0x01b00004
,
wapdasta:
1,明白了,它代码是在pdf文档的最下面,当时没看到,而且我也找到了其他一些资料,说是可以直接按bit位操作。
只需要配置SPCR和PCR两个寄存器。
我在测试测试
TI中文支持网