请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28035 您好!
我将 F28035 ISO controlCARD 用于从传感器读取数据并从串行端口发回数据的应用。 我必须通过具有发送字符的串行端口设置一些值。
我正在从闪存对卡进行编程。 问题是,当我对卡进行编程并运行它(没有任何断点的调试模式)时,它的工作方式与预期的一样,这意味着串行端口正在接收和发回数据而不会出现任何问题。 但是、当我切断 controlCARD 的电源并对其重新供电时、我仍然能够从串行端口(我可以从 ZOC 终端看到)获取数据、但当我发送一个字节时、它根本没有接收到数据。 我不知道这里的问题是什么。 我要附加串行代码初始化和 ISR 函数。
我的注意事项:
是否缺少从闪存运行的任何设置。 由于程序在调试模式下运行,但在将其断电并为其通电后,它不会接收任何字节。 这是关于 XDS100v2调试端口的任何设置吗?
但愿你能帮帮我。
在这里,我的 sci init 函数:
SciaRegs.SCICCR.all =0x0007;// 1停止位,无回路 //无奇偶校验,8个字符位, //异步模式,空闲线协议 SciaRegs.SCICTL1.all =0x0001;//启用 RX,内部 SCICLK, //禁用 RX ERR、SLEEP、TXWAKE SciaRegs.SCICT2.bit.TXINTENA=1; SciaRegs.SCICT2.bit.RXBINTENA=1; SciaRegs.SCIHBL1 = 0x0000;//将 SciaRegs.SCILBAUD 设置为 0x000F;/ SCLORT.USC=0x0000.USC=0XUSC=0XUSC=0XUSCL.SCOCR.USC=0XT.SCOREG=0x200; //从复位中撤回 SCI //SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1; SciaRegs.SCIFFRX.bit.RXFIFORESET=1; SciaRegs.SCIFFTX.bit.SCIFFENA=1; SciaRegs.SCIFFRX.bit.RXFFIENA=1;SciaRegs.SCIFFTXT.1= 0x040 ;SciaRegs.RXIFFT.TXAF.all = 1;SciaRegs.RXIFFF.TXT.1= 0x040;SciaRegs.RXIFFF.TXAF.e
以下是我的 sci Rx ISR 函数:
_interrupt void sciaRxFifoIsr (void) { while (SciaRegs.SCIFFRX.bit.RXFFST!= 0) { sciRXData = SciaRegs.SCIRXBUF.ALL; SciaRegs.SCITXBUF = sciRXData; if (sciRXData ='C') { 重新校准= 1; } 否则 if (sciRXData ='R') { 重新校准= 0; } 其他 { SER_rec = 1; 重新校准= 10; } } SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;//清除溢出标志 SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;//清除中断标志 PieCtrlRegs.PIEACK.All|=0x100; //发出 PIE ACK }