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.

[参考译文] TMS320F28379D:通过轮询或中断的串行回送

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1428955/tms320f28379d-serial-echo-by-polling-or-interrupt

器件型号:TMS320F28379D
Thread 中讨论的其他器件:C2000WARE

工具与软件:

大家好

我尝试开发一个代码来测试和控制 F28379D 板、但我发现一些问题需要解决、我尝试与我的板串行回显、但我的板不回答我的命令、只将数据发送到我的串行端口。

我使用 GPIO 18和19进行该通信。

可以有人帮我吗? 下面是我的代码:

//
//包含的文件
//
#include "driverlib.h"
#include "device.h"

void uart_GPIO_init ();
void UART_Config();
void SCI_A_init ();

void main (void)

uint16_t receivedChar;

device_init();
device_initGPIO();

UART_GPIO_init ();//为 SCIB 配置 GPIO
UART_Config ();//配置 UART
SCI_A_init ();//初始化 SCIB

SCI_writeCharArray (SCIB_BASE、(uint16_t *)"Hello World\r\n"、13);//发送固定消息

while (1)

//检查是否接收到字符
if (SCI_getRxFIFOStatus (SCIB_BASE)!= SCI_FIFO_RX0)

//读取接收到的字符
receivedChar = SCI_readCharBlockingFIFO (SCIB_BASE);

//发送一个字符串"Received from F28379D:"
SCI_writeCharArray (SCIB_BASE、(uint16_t *)"Receivido de F28379D:"、22);

//发送接收到的字符(回声)
SCI_writeCharBlockingFIFO (SCIB_BASE、receivedChar);

SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_RXFF);

//小延迟以避免通信过载
DEVICE_DELAY_US (1000000);

}
}
}

空 uart_gpio_init ()

GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setPinConfig (GPIO_18_SCITXDB);

}

空 UART_Config()

//
// SCI Rx 引脚的配置。
//
GPIO_setMasterCore (19u、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_19_SCIRXDB);
GPIO_setDirectionMode (19u、GPIO_DIR_MODE_IN);
GPIO_setPadConfig (19U、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (19u、GPIO_QUAL_ASYNC);

//
// SCI Tx 引脚的配置。
//
GPIO_setMasterCore (18u、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_18_SCITXDB);
GPIO_setDirectionMode (18u、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (18u、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (18u、GPIO_QUAL_ASYNC);

//
// SCI-B Tx 引脚(GPIO 18)的配置。
//

}

void SCI_A_init ()

//
//初始化 SCIA 及其 FIFO。
//
SCI_performSoftwareReset (SCIB_BASE);

//
//为回显配置 SCIA。

SCI_setConfig (SCIB_BASE、DEVICE_LSPCLK_FREQ、9600、(SCI_CONFIG_WLEN_8 |)
SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));

SCI_resetChannels (SCIB_BASE);
SCI_clearInterruptStatus (SCIB_BASE、SCI_INT_TXFF | SCI_INT_RXFF);
SCI_resetRxFIFO (SCIB_BASE);
SCI_resetTxFIFO (SCIB_BASE);
SCI_enableFIFO (SCIB_BASE);
SCI_enableModule (SCIB_BASE);

#ifdef 自动波特率
//
//执行自动波特锁定。
// SCI 需要使用'A'或'A'来锁定波特率。
//
SCI_lockAutobaud (SCIB_BASE);
#endif

}

//
//结束文件
//

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

    您好!

    实际上、我们在 C2000ware ({C2000Ware}\driverlib\f2837xd\examples\cpu1\sci\sci_ex3_echoback)中提供了一个专用的 F2837xD 回显示例。 您是否已将其用作参考?

    此致、

    Allison