请教各位高手,我用DM642的MCBSP接口作为SPI主器件,来控制DA转换,寄存器初始化如下,程序可以跑起来,DXR寄存器中也有我想要发送的值,但用示波器测量没有信号,片选、时钟、数据都没有输出,有没有哪位大侠指点一下,已经搞了好几天了:<br /><br />void mcbsp1_init() //配置McBSP0为SPI主设备<br />{<br /> //串行接口接收器被禁止并且处于复位状态<br /> McBSP1_SPCR = 0x00800000;<br /> //每帧一段,每段一字,Ignore FS after the first <br /> McBSP1_RCR = 0x00010040; <br /> //16 BITs,Ignore FS after the first<br /> McBSP1_XCR = 0x00010040; <br /> McBSP1_SRGR = 0x200F010F; <br /> McBSP1_PCR = 0x00000A0F;<br /> McBSP0_SPCR = 0x00801800; <br /> //FSX,CLKX输出,FSR,CLKR输入 <br /> //启动采样率发生器<br /> McBSP1_SPCR = 0x00C01800; <br /> //使能串口的收发,选择时间停止模式<br /> McBSP1_SPCR = 0x00C11801; <br /> //McBSP1_SPCR = 0x00C11801; <br /><br />} <br /><br /><br />void main()<br />{<br /> myhMcbsp1 = MCBSP_open(MCBSP_DEV1, MCBSP_OPEN_RESET);<br /> mcbsp1_init(); <br /> MCBSP_enableSrgr(myhMcbsp1);//Enable the McBSP<br /> MCBSP_enableFsync(myhMcbsp1);<br /> MCBSP_enableRcv(myhMcbsp1); <br /> MCBSP_enableXmt(myhMcbsp1);<br /> while(1)<br /> {<br /> while (!MCBSP_xrdy(myhMcbsp1)){} <br /> MCBSP_write(myhMcbsp1,outA); <br /> }<br />}<br /> |
|