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:9

Guru**** 2470720 points
Other Parts Discussed in Thread: TMS320F28379D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1478830/tms320f28379d-9

器件型号:TMS320F28379D

工具与软件:

德克萨斯州达拉斯 Greetins

我们使用的是它的  TMS320F28379D 电路板、一切都运行良好。 我们将 TMS 用作硬件控制器、从那里我们使用 UART 向 HMI 发送一些数据、并且从 HMI、我们使用 UART 通信返回(接收)数据、那么情况会是这样:

要取出控制卡并按以下方式使用:


TMS320F28075PZPT

闪存且一切都在工作、我们已经完成了引脚连接、但唯一的问题是、当我们尝试使用 UART 进行通信时、并不是偶然的。

I hava 已检查:

SCIB:


GPIO14_EPWM8A_SCITXDB_MCLKXB_OUTPUTXBAR3 -> RXB  

GPIO15_EPWM8B_SCIRXDB_MFSXB_OUTPUTXBAR4 -> TXB

SCIA:


GPIO42_SDAA_SCITXDA_USB0DM -> TXA

GPIO43_SCLA_SCIRXDA_USB0DP -> RXA


使用的代码:

此代码在 TMS320F28379D 上正常工作、但在 TMS320F28075PZPT 板上、它不工作、我们检查了引脚连接、这是正常的。 但仍然无法正常工作、代码正在刷写、但数据无法发送。

我们使用两个引脚连接并在此工作代码上相应地修改代码(SCIA 和 SCIB)、当前代码适用于 SCIA。

#include "driverlib.h"
#include "device.h"
#include //检查-2的双向通信

#define BAUD_RATE 115200

volatile int received_value = 0;//存储接收到的数据
volatile int send_value = 5;//要发送的测试值(ASCII'A')

void initSCIB (void);
void configureUART (void);
void sendUARTData (uint16_t data);

void main (void)

device_init();
DEVICE_DELAY_US (1000000);
device_initGPIO();

//配置 GPIO19以实现 UART 接收(RX)
GPIO_setPadConfig (43、GPIO_PIN_TYPE_PULLUP);
GPIO_setPinConfig (GPIO_43_SCIRXDA);
GPIO_setQualificationMode (43、GPIO_QUAL_ASYNC);

//配置 GPIO18以进行 UART 发送(TX)
GPIO_setPadConfig (42、GPIO_PIN_TYPE_STD);
GPIO_setPinConfig (GPIO_42_SCITXDA);

initSCIB();
configureUART();

while (1)

//每1秒发送一次数据
sendUARTData (send_value);
DEVICE_DELAY_US (1000000);

//检查接收 FIFO 中是否有数据可用
如果(SCI_getRxFIFOStatus (SCIA_BASE)!= SCI_FIFO_RX0)

Receive_value = SCI_readCharBlockingFIFO (SCIA_BASE);//读取接收到的数据
}
}
}

void initSCIB (void)

SYSCTL_enablePeripheral (SYSCTL_PERIPH_CLK_SCIB);
SCI_performSoftwareReset (SCIA_BASE);
SCI_resetChannels (SCIA_BASE);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_TXFF | SCI_INT_RXFF);
SCI_resetRxFIFO (SCIA_BASE);
SCI_enableFIFO (SCIA_BASE);

SCI_setConfig (SCIA_BASE、DEVICE_LSPCLK_FREQ、BAUD_RATE、
(SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE | SCI_CONFIG_PAR_NONE);

SCI_enableModule (SCIA_BASE);
SCI_performSoftwareReset (SCIA_BASE);
DEVICE_DELAY_US (1000);
}

void configureUART (void)

SCI_setFIFOInterruptLevel (SCIA_BASE、SCI_FIFO_TX1、SCI_FIFO_RX1);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_RXFF);
SCI_enableFIFO (SCIA_BASE);
}

void sendUARTData (uint16_t data)

while (SCI_getTxFIFOStatus (SCIA_BASE)=SCI_FIFO_TX16);//如果 FIFO 已满、则等待
SCI_writeCharBlockingFIFO (SCIA_BASE、DATA);//发送数据
}

对于我们预期的输出、需要进行任何修改、例如对代码或连接进行修改。

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

    您好、Heet:

    我无法根据您的图像直接辨别您的引脚连接。  

    但是、请确保您已将一个 SCI 模块的 RX 连接到另一个模块的 TX。 将 GPIO14更改为 GPIO42、将 GPIO15更改为 GPIO43

    此致、

    Peter