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

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

器件型号:TMS320F28377S

工具/软件:Code Composer Studio

大家好、

我的项目使用 TMS320F28377S、在这种情况下、我需要使用 UART 通信进行传输和接收。

我尝试了 C2000示例代码、传输正常、接收中断不工作。 使用示波器检查在接收引脚(43)处接收到的数据、但中断不会生成。

帮助我解决这个问题。

此致、

Yuvaraj

我的代码是

#include "driverlib.h"
#include "device.h"

#include "Macro.h"
#include "Xvar.h"
#include "com.h"


_interrupt void sciaTXFIFOISR (void);
_interrupt void sciaRXFIFOISR (void);
void initSCIAFIFO (void);
void 错误(void);

void data_to_port (unsigned char);
void sci_init();

unsigned char s_bytes;


void sci_init()

GPIO_setMasterCore (90、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_90_GPIO90);
GPIO_setDirectionMode (90、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (90、GPIO_PIN_TYPE_STD);

GPIO_setMasterCore (43、GPIO_CORE_CPU1);
GPIO_setDirectionMode (43、GPIO_DIR_MODE_IN);
GPIO_setPinConfig (GPIO_43_SCIRXDA);
GPIO_setPadConfig (43、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (43、GPIO_QUAL_异 步);

GPIO_setMasterCore (42、GPIO_CORE_CPU1);
GPIO_setPinConfig (GPIO_42_SCITXDA);
GPIO_setDirectionMode (42、GPIO_DIR_MODE_OUT);
GPIO_setPadConfig (42、GPIO_PIN_TYPE_STD);
GPIO_setQualificationMode (42、GPIO_QUAL_异 步);

//此示例中使用的中断被重新映射到
//此文件中的 ISR 函数。
interrupt_register (INT_SCIA_RX、sciaRXFIFOISR);
interrupt_register (INT_SCIA_TX、sciaTXFIFOISR);

//初始化设备外设:
initSCIAFIFO();

rDataPointA = sDataA[0];

INTERRUPT_ENABLE (INT_SCIA_RX);
INTERRUPT_ENABLE (INT_SCIA_TX);

// Interrupt_disable (INT_SCIA_RX);
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);

// sciaTXFIFOISR - SCIA 发送 FIFO ISR
_interrupt void sciaTXFIFOISR (void)

SCI_writeCharArray (SCIA_BASE、sDataA、s_bytes);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_TXFF);

//发出 PIE ACK
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);

对于(aa = 0;aa < 10000;aa++)

for (jj = 0;jj < 120;jjj++)


INTERRUPT_DISABLE (INT_SCIA_TX);
INTERRUPT_ENABLE (INT_SCIA_RX);
GPIO_writePin (41、0);

// sciaRXFIFOISR - SCIA 接收 FIFO ISR
_interrupt void sciaRXFIFOISR (void)

SCI_readCharArray (SCIA_BASE、rDataA、2);
SCI_clearOverflowStatus (SCIA_BASE);
SCI_clearInterruptStatus (SCIA_BASE、SCI_INT_RXFF);

//发出 PIE ACK
INTERRUPT_clearACKGROUP (INTERRUPT_ACK_group9);

// initSCIAFIFO -配置 SCIA FIFO
空 initSCIAFIFO()

// 8个字符位,1个停止位,无奇偶校验。 波特率为9600。
SCI_setConfig (SCIA_BASE、DEVICE_LSPCLK_FREQ、19200、(SCI_CONFIG_WLEN_8 | SCI_CONFIG_STOP_ONE |
SCI_CONFIG_PAR_NONE));
SCI_enableModule (SCIA_BASE);
// SCI_enableLoopback (SCIA_BASE);
SCI_resetChannels (SCIA_BASE);
SCI_enableFIFO (SCIA_BASE);

//启用 RX 和 TX FIFO 中断
SCI_enableInterrupt (SCIA_BASE、(SCI_INT_TXFF));
SCI_disableInterrupt (SCIA_BASE、SCI_INT_RXERR);

SCI_setFIFOInterruptLevel (SCIA_BASE、SCI_FIFO_TX2、SCI_FIFO_RX2);
SCI_performSoftwareReset (SCIA_BASE);

SCI_resetTxFIFO (SCIA_BASE);
// SCI_resetRxFIFO (SCIA_BASE);

 

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

    您是否能够使其在环回模式下工作?

    我建议先让它工作。 这样做后、您应该能够调试连接并确定数据无法到达 SCI 的原因。

    希望这对您有所帮助。
    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在我有了数据