TI中文支持网
TI专业的中文技术问题搜集分享网站

C6713 mcbsp串口通讯时rrdy一直未触发的问题

         McBSP采用查询方式或CPU中断方式进行UART通信,程序执行后一直停留在:  while(!(MCBSP_rrdy(hMcbsp1))); //wait for reciev ready

调试了好几天,不知道什么原因?请大神支招

1、通信原理:

C6000将每个UART位当作16b数据。内部采样率发生器被配置为产生一个16倍于串口波特率的时钟。由于UART起始位是一个下降沿,因这个下降沿可心作为帧同步的输入,因此,FSR和DR都被连接到UART的输出Tx。

为了防止MCBSP被重复触发,在开始接收数据后需要忽略所有的帧同步信号。

使用8N1(8数据位1停止位,无校验)方式发送UART数据


2、MCBSP配置:

MCBSP_Config mcbspCfg1 = {0x0,0x81050840,0x81050840,0x20000079,0x0,0x0,0x0,0x00000B0C};

/*SPCR=0x0

Pin Control Register (PCR)        PCR = 0x00000B0C

Receive Control Registers (RCR) RCR = 0x81050840

Transmit Control Registers (XCR) XCR = 0x81040840

Sample Rate Generator Register (SRGR) SRGR = 0x20000079

CLKGDV= (CPU Clock frequency) / (16 * baud rate) -1.

       //CPU频率为225MHz,波特率为57600  */

目前将DX与DR、FSR短接,看自发自收的情况,结果仍然在:while(!(MCBSP_rrdy(hMcbsp1))); 都快疯掉了,急寻大神支招!!!


Shine:

参考下面的application note的例程。

http://www.ti.com/lit/an/spra633c/spra633c.pdf

赞(0)
未经允许不得转载:TI中文支持网 » C6713 mcbsp串口通讯时rrdy一直未触发的问题
分享到: 更多 (0)