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

C2000的SCI接收的一个奇怪问题。

现象:在DEBUG状态下运行,—- 正常!而重新上电后却不正常(仅SCI不正常)。

描述:烧写程序后进入的DEBUG状态,正常运行程序,其设置为:

SciaRegs.SCICCR.all =0x0007;// 1 stop bit,  No loopback// No parity,8 char bits,// async mode, idle-line protocolSciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,// Disable RX ERR, SLEEP, TXWAKESciaRegs.SCICTL2.bit.TXINTENA =1;SciaRegs.SCICTL2.bit.RXBKINTENA =1;SciaRegs.SCIHBAUD=0x0000;//SciaRegs.SCILBAUD=0x0040;// baud = 115200. @ LSP = 60MHzSciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset

在中断允许里,打开了接收中断。接收部分设置了10个数组,用于存入接收数据。

为了检查DEBUG状态下和非调试状态下的区别,当在DEBUG状态时,选择 Disconnect Target,然后再给目标板重新上电,向串口输入端发送字符—工作 不正常。而这时再选择Connect Target后,再运行,目标板又正常工作,再看接收数组,每次发现第一个数组为0,其它为随机数。

因为在DEBUG状态重新连接目标板时,内部寄存器都重新初始化。所以没办法从寄存器的内容上找到原因!

请专家帮忙!请大伙帮忙!

Green Deng:一般debug正常而非debug状态不正常的,很有可能是程序中没有调用memcopy函数。

现象:在DEBUG状态下运行,—- 正常!而重新上电后却不正常(仅SCI不正常)。

描述:烧写程序后进入的DEBUG状态,正常运行程序,其设置为:

SciaRegs.SCICCR.all =0x0007;// 1 stop bit,  No loopback// No parity,8 char bits,// async mode, idle-line protocolSciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,// Disable RX ERR, SLEEP, TXWAKESciaRegs.SCICTL2.bit.TXINTENA =1;SciaRegs.SCICTL2.bit.RXBKINTENA =1;SciaRegs.SCIHBAUD=0x0000;//SciaRegs.SCILBAUD=0x0040;// baud = 115200. @ LSP = 60MHzSciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset

在中断允许里,打开了接收中断。接收部分设置了10个数组,用于存入接收数据。

为了检查DEBUG状态下和非调试状态下的区别,当在DEBUG状态时,选择 Disconnect Target,然后再给目标板重新上电,向串口输入端发送字符—工作 不正常。而这时再选择Connect Target后,再运行,目标板又正常工作,再看接收数组,每次发现第一个数组为0,其它为随机数。

因为在DEBUG状态重新连接目标板时,内部寄存器都重新初始化。所以没办法从寄存器的内容上找到原因!

请专家帮忙!请大伙帮忙!

TX dong:

回复 Green Deng:

谢谢回复。
程序中,ramfuncs和Cla1Prog都使用了memcpy这个过程。

赞(0)
未经允许不得转载:TI中文支持网 » C2000的SCI接收的一个奇怪问题。
分享到: 更多 (0)