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.

[参考译文] CCS/TMS320F28377S:C2000

Guru**** 2044430 points
Other Parts Discussed in Thread: TMS320F28377S, CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/664975/ccs-tms320f28377s-c2000

器件型号:TMS320F28377S
Thread 中讨论的其他器件: controlSUITE

工具/软件:Code Composer Studio

大家好、

我使用的是 TMS320F28377s Delfino 控制器。 在这里、我想为我的应用使用 UART 通信。

我学习了 controlSUITE 中的示例代码、并将该示例代码(回显)加载到我的 LaunchPad、

我的问题是程序指针停止在 //等待空状态行,并且没有要发送或接收的数据。

我粘贴了下面的代码。

此致、

Yuvaraj


//
//包含的文件
//
#include "F28x_Project.h"

uint16环计数;

void scia_echoback_init (void);
void scia_fifo_init (void);
void scia_xmit (int a);
void scia_msg (char * msg);

void main (void)

uint16 ReceivedChar;
char *msg;

InitSysCtrl();
InitGpio();

GPIO_SetupPinMux (28、GPIO_MUX_CPU1、1);
GPIO_SetupPinOptions (28、GPIO_INPUT、GPIO_PushPull);
GPIO_SetupPinMux (29、GPIO_MUX_CPU1、1);
GPIO_SetupPinOptions (29、GPIO_OUTPUT、GPIO_异 步);

Dint;
InitPieCtrl();

IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();

LoopCount = 0;

scia_fifo_init();//初始化 SCI FIFO
scia_echoback_init ();//初始化用于 echoback 的 SCI

MSG ="\r\n\n\nHello World!\0";
scia_msg (msg);

MSG ="\r\n 您将输入一个字符,DSP 将回显它! \n\n";
scia_msg (msg);

for (;;)

MSG ="\r\n 输入字符:\0";
scia_msg (msg);

while (SciaRegs.SCIFFRX.bit.RXFFST ==0){}//等待空状态

ReceivedChar = SciaRegs.SCIRXBUF.ALL;

MSG ="您已发送:\0";
scia_msg (msg);
scia_xmit (ReceivedChar);

LoopCount++;

// scia_echoback_init -测试1、SCIA DLB、8位字、波特率0x000F、
//默认,1个停止位,无奇偶校验
void scia_echoback_init ()

SciaRegs.SCICCR.all = 0x0007;// 1停止位,无回路
//无奇偶校验,8个字符位,
//异步模式,空闲线协议
SciaRegs.SCICTL1.all = 0x0003;//启用 TX、RX、内部 SCICLK、
//禁用 RX ERR、睡眠、TXWAKE
SciaRegs.SCICTL2.all = 0x0003;
SciaRegs.SCICTL2.bit.TXINTENA=1;
SciaRegs.SCICTL2.bit.RXBKINTENA=1;

// SCIA 为9600波特
//@LSPCLK = 50MHz (200MHz SYSCLK) HBAUD = 0x02且 LBAUD = 0x8B。
//@LSPCLK = 30MHz (120MHz SYSCLK) HBAUD = 0x01且 LBAUD = 0x86。
//
SciaRegs.SCIHBAUD.ALL = 0x0002;
SciaRegs.SCILBAUD.ALL = 0x008B;

SciaRegs.SCICTL1.all = 0x0023;//从复位中撤回 SCI

// scia_xmit -从 SCI 发送一个字符
void scia_xmit (int a)

while (SciaRegs.SCIFFTX.bit.TXFFST!= 0){}
SciaRegs.SCITXBUF.ALL =A;

// scia_msg -通过 SCIA 发送消息
void scia_msg (char * msg)

int i;
I = 0;
while (msg[i]!='\0')

scia_xmit (msg[i]);
i++;

// scia_fifo_init -初始化 SCI FIFO
void scia_fifo_init()

SciaRegs.SCIFFTX.ALL = 0xE040;
SciaRegs.SCIFFRX.ALL = 0x2044;
SciaRegs.SCIFFCT.all = 0x0;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好
    您是否在终端窗口中看到"输入字符:"消息? 您是否尝试向 MCU 发送数据?
    此行会检查接收缓冲区中是否有数据并等待。 如果您不发送数据、它将永远循环。 当您执行此操作时、MCU 会将其发回给您(所谓的"回波"模式)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的帮助、我将检查并返回

    Yuvaraj
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Disona:
    我需要另一个帮助、我希望使用 UART 通信来与外部器件通信、因此请帮助确定适合我的示例代码。

    Yuvaraj。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Em。 我不知道。 您的示例适合您。 它显示了如何接收数据、然后处理接收到的数据、然后发送一些数据作为应答。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我会尝试