This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28069:切换和如果不在 TMS320F28069代码中工作

Guru**** 2540720 points
Other Parts Discussed in Thread: TMS320F28069

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/986548/tms320f28069-switch-and-if-not-working-in-tms320f28069-code

器件型号:TMS320F28069

我正在开发基于项目的 TMS320F28069。   我正面临非常奇怪的问题。  在以下代码片段中,我从 远程系统接收数据 rxCmdPkt.recvpkt.EpcData = 0x31。  我可以在   以下行的超级终端中打印相同的内容

scia_xmit (0x44);
epcmd=rxCmdPkt.recvpkt.EpcData;
scia_xmit (epcmd);

但 IF 环路和开关环路内部的串行打印不起作用

void epccmdProcRRtask (void)(空)

// char epcmd;
if (newCmdAvlbl())

rxcmd=retrieCmd();
rxCmdPkt.recvpkt= rxcmd;

// ROM_UARTCharPutNonBlocking (UART0_BASE、rxCmdPkt.recvpkt.EpcData);
scia_xmit (rxCmdPkt.recvpkt.StartByte);
scia_xmit (rxCmdPkt.recvpkt.msgid);
scia_xmit (rxCmdPkt.recvpkt.EpcData);
scia_xmit (rxCmdPkt.recvpkt.Checksum);
scia_xmit (rxCmdPkt.recvpkt.EndByte1);
scia_xmit (0x44);
epcmd=rxCmdPkt.recvpkt.EpcData;
scia_xmit (epcmd);
if (epcmd == 0x31)

scia_xmit (0x45);
XmitMessage (rxCmdPkt.RxMsgArray、5);

// scia_xmit (epcmd);
switch (epcmd)

情况0x31:
scia_xmit (0x45);
XmitMessage (rxCmdPkt.RxMsgArray、5);
// setEpcStsXmitRequest();
中断;
案件 EpcHeaterON:

epcHeatON (rxCmdPkt.recvpktt);
中断;
案件 EpcHeaterOff:
epcHeatOFF (rxCmdPkt.recvpktt);
中断;
案例 EPCForceModeON:
epcForceModeONfn (rxCmdPkt.recvpkt;
中断;
案例 EPCForceModeOFF:
epcForceModeOFFfn (rxCmdPkt.recvpkt;
中断;
EPCTXON 案例:
// ROM_UARTCharPutNonBlocking (UART0_BASE、EPCTXON);
XmitMessage (rxCmdPkt.RxMsgArray、5);
epcTXON (rxCmdPkt.recvpktt);
中断;

优化已关闭

请帮帮我

此致、

Ramesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我进一步研究并发现问题是由 UINT8变量的16位大小引起的。  从 SPI 端口接收8位、并将先前接收到的8位移至 MSB。  当我检查 uint8变量时、它实际上会检查16位、但不起作用。

    此致、

    Ramesh