请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TLV5638 尊敬的团队:
我的一位客户使用由 F28335的 McBSP 模块模拟的 SPI 与 TLV5638进行通信。
现在 TLV5638芯片可以正常输出 DA 信号、但有一个问题:OUTA 和 OUTA、只能选择一个输出、但不能同时选择两个端口。 根据芯片手册中的输出示例同时进行配置、但只能检测到 OUTA 的数据。 问题可能出在哪?
以下是代码:
void InitMcbspa16位(void) { McbspaRegs.RCR1.bit.RWDLEN1=2; // 16位字 McbspaRegs.XCR1.bit.XWDLEN1=2; // 16位字 } uint16 McBSP_xmit (uint16 McbspTXD) { uint16 McbspRXD; McbspaRegs.DXR1.all=McbspTXD;// McbspTXD=v->xxxx,待发送数据 //McbspaRegs.DXR2.all=McbspTXD; while (McbspaRegs.SPCR2.bit.XRDY=0) 等待变1 //等待变1,表示发送器准备好 while (McbspaRegs.SPCR2.bit.XEMPTY=1)表示XSR为空//等待变0,表示接收器准备好 等待RBR退满 接收到的数据 while (McbspaRegs.Mspa.TXFFST!= 0)/ Mcspr1.dsps = 1 (while )/Mcsprfr1.bspr1.bspr1.mspr1)/ mspr1 (while (mcsprfr1.bspr1.bspr1)/ mspr1)/mcsprfr1 (mspr1)/msprfr1)/msprfr1 (while (Mcsprfr1)/ mcsprrrrrrrrrr1)/ msprfr1 (mcbspr1)/msprfrfr1)/ mspr1 (msprfrfr1)/ mcbsprfr1 (
此致
空 InitMcbspa16位(空)
{
McbspaRegs.RCR1.bit.RWDLEN1=2; // 16位字
McbspaRegs.XCR1.bit.XWDLEN1=2; // 16位字
}
UINT16 McBSP_xmit (UINT16 McbspTXD)
{
UINT16 McbspRXD;
McbspaRegs.DXR1.all=McbspTXD;// McbspTXD=v->xxxx,待发送数据
// McbspaRegs.DXR2.all=McbspTXD;
while (McbspaRegs.SPCR2.bit.XRDY==0) 等待变1 //μ s、表示发送器准备好
while (McbspaRegs.SPCR2.bit.XEMPTY==1)等待变0 //μ s、表示XSR为空
// while (McbspaRegs.MFFTX.bit.TXFFST!=0){}
while (McbspaRegs.SPCR1.bit.RRDY =等待变1){}//μ s、表示接收器准备好
// while (McbspaRegs.SPCR1.bit.RFULL!= 1)等待RBR退满//μ s
// while (McbspaRegs.MFFRX.bit.RXFFST!= 1){} //等待 McBSP_SPI 接收
McbspRXD=McbspaRegs.DRR1.all;//接收到的数据
RETURN (McbspRXD);
}