大家好、
在下面的中、计时器的启动代码不应是 CPUTimer_startTimer (myCPUTIMER 0_BASE);

此外、当我在终端窗口中运行代码时、它会打印消息 
它是的一半
请告诉我发生这种情况的原因。
谢谢。
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.
大家好、
在下面的中、计时器的启动代码不应是 CPUTimer_startTimer (myCPUTIMER 0_BASE);

此外、当我在终端窗口中运行代码时、它会打印消息 
它是的一半
请告诉我发生这种情况的原因。
谢谢。
Prayag、您好!
非常感谢您指出上一版本中引入的错误。 它准时出现。 我们已准备好下一个版本、它将在版本中修复。
第一部分:
//
//启动 CPU 定时器0
//
CPUTimer_startTimer (myCPUTIMEER0_BASE);
第二期:
for (;;)
{
MSG ="\r\n 输入数字0-9:\0";
sci_writeCharArray (mySCIA_BASE、(uint16_t*) msg、24);
//
//从 FIFO 读取字符。
//
receivedChar = SCI_readCharBlockingFIFO (mySCIA_BASE);
SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);
//将字符转换为数字
delayCount = receivedChar -'0';
rxStatus = SCI_getRxStatus (mySCIA_BASE);
if (((rxStatus & SCI_RXSTATUS_ERROR)!= 0)
{
//
//如果执行在此处停止,则存在一些错误
//分析 SCI_getRxStatus() API 返回值
//
ESTOP0;
}
//
//回显字符。
//
MSG =" LED 设置为闪烁速率\0";
sci_writeCharArray (mySCIA_BASE、(uint16_t*) msg、25);
}
请尝试此操作并确认它是否可以解决您的两个问题。
此致、Santosh
您好、Santosh、
这不奏效。 显然、问题出在 SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);
检查我使用的这段代码。 代替 SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);我使用 了 SCI_writeCharArray (mySCIA_BASE、(uint16_t*) msg2、1); 它工作正常。

结果是

Prayag、
首先、控制流量、它应该这样做
SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);
接收后立即执行。 它只是为了回显用户的字符。
问题在于 SCI_writeCharArray() 和 SCI_writeCharBlockingFIFO()函数的实现方式。
SCI_writeCharArray()函数在 FIFO 中等待2个字符以放置 TXBUF,但 SCI_writeCharBlockingFIFO()仅等待 FIFO 中的1个字符。 这会导致流量问题。
如果要保留原始流、则更改
sci_writeCharArray (mySCIA_BASE、(uint16_t*) msg、25);
SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);
更改为
sci_writeCharArray (mySCIA_BASE、(uint16_t*) msg、25);
sci_writeCharArray (mySCIA_BASE、(uint16_t*) receivedChar、1);
这也应该起作用。
希望这对您有所帮助。
此致、Santosh
请您详细说明一下这一点。
[引用 userid="35062" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1189025/tms320f280039c-error-in-c2000-academy-program-for-sci-lab-for-tms320f280039c/4481544 #4481544"]
如果要保留原始流、则更改
sci_writeCharArray (mySCIA_BASE、(uint16_t*) msg、25);
SCI_writeCharBlockingFIFO (mySCIA_BASE、receivedChar);
[/报价]在这里、当我在这两条线之后施加一些延迟时、流是完整的。
Prayag、
[引用 userid="545664" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1189025/tms320f280039c-error-in-c2000-academy-program-for-sci-lab-for-tms320f280039c/4486490 #4486490"]您能否详细说明这一点。如果您步入函数、理解起来会更容易
SCI_writeCharArray()函数和 SCI_writeCharBlockingFIFO()
此致、Santosh