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/TMS320F2.8377万S:SCI接收中断仅与调试器一起工作

Guru**** 2487425 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/631188/ccs-tms320f28377s-sci-receive-interrupt-is-working-with-debugger-only

部件号:TMS320F2.8377万S
主题中讨论的其他部件: C2000WARE

工具/软件:Code Composer Studio

我在TMS320F2.8377万S微控制器和CCS 6.2 工作。 我正在使用Black Hawk 510L JTAG仿真器。 我的接收中断仅在调试中工作。 传输操作正常。 我的初始化代码如下所示。 我正在使用SCIC而不使用TX中断

Void主(void)

  InitSysCtrl();

  

色调;
InitPieCtrl();

IER = 0x0000;
IFR = 0x0000;

InitPieVectorTable();

EALLOW;
PieCtrlRegs.PIECTRL.bit.ENPIE =1;//启用PIE块
PieVectorTable.ADCA1_INT =&ADC_ISR;
PieVectTable。 SCIC_RX_INT =&scicRxFifoIsr;
EDIS;

EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =0;
EDIS;

EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =1;
EDIS;

GPIO_SetupPinMux (89,GPIO _MUX_CPU1,6);
GPIO设置PIN选项(89,GPIO输出,GPIO _异步);

GPIO_SetupPinMux (90,GPIO _MUX_CPU1,6);
GPIO设置引脚选项(90,GPIO输入,GPIO按钮);


init_serial_c();

//启用连接到EPWM1-3 INT的CPU INT3:

IER || M_INT8;

PieCtrlRegs.PIEIER8.bit.INTx5 = 1;   

EINT;//启用全局中断INTM
ERTM;//启用全局实时中断DBGM

同时(1)

 {

 scic_msg ("at");ms (1);scic_xmit (0x0D);

 M(250);

 }

}  

 volatile char rx_sci_c,counter=0,test_arra[160];

__interrupt void scicRxFifoIsr (void)//GSM调制解调器

GpioDataRegs.GPBTOGLE.bit.GPIO41=1;

RX_sci_c=ScicRegs.SCIRXBUF.ALL;

IF (counter>=120) counter=0;

else test_arrar[counter]=rx_sci_c;

计数器++;

// write_que (rx_sci_c);

ScicRegs.SCIFFRX.Bit.RXFFOVRCLR=1;//清除溢出标志
ScicRegs.SCIFFRX.bit.RXFFINTCLR=1;//清除中断标志
PieCtrlRegs.PIEACK.ALL = PIEACK_group8;//发出pie ack
}

void init_serial_c (void)

gsm_data.gsm_buffer_error=false;//将gsm缓冲区标志设置为false

EALLOW;//这是写入EALLOW保护寄存器所必需的

// PieVectorTable.SCIC_RX_INT =&scicRxFifoIsr;
// PieVectorTable.SCIC_TX_INT =&scicTxFifoIsr;
EDIS;//这是禁用写入EALLOW保护寄存器所必需的

EALLOW;

PieCtrlRegs.PIECTRL.bit.ENPIE =1;//启用PIE块
PieCtrlRegs.PIEIER8.bit.INTx5 =1;// PIE组9,INT1 Rx中断启用
//PieCtrlRegs.PIEIER8.bit.INTx6=1;// PIE组9,INT2 TX中断启用

scic_fifo_init();

//IER |= M_INT8;
//IER = 0x100;//启用CPU INT
//EINT;
// EINT;
// ERTM;
// EDIS;
}

void scic_fifo_init(void)

//
//注:时钟已打开到SCIA外围设备
//在InitSysCtrl()函数中
//
EALLOW;
ScicRegs.SCICCR.ALL = 0x0007;// 1停止位,无回送
//无奇偶校验,8个字符位,
//异步模式,空闲线路协议
ScicRegs.SCICTL1.ALL = 0x0003;//启用TX,RX,内部SCICLK,
//禁用RX ERR,睡眠,TXWAKE
ScicRegs.SCICT2.all = 0x0003;
//ScicRegs.SCICT2.bit.TXINTENA = 1;
ScicRegs.SCICT2.bit.RXBKINTENA = 1;

//
// SCIA,4800波特
//
ScicRegs.SCIHBAUD.ALL =0x0005;// 0x0002;
ScicRegs.SCILBAUD.ALL =0x0016;// 0x008B;

ScicRegs.SCICT2.bit.RXBKINTENA=1;

ScicRegs.SCICTL1.ALL = 0x0023;//从重置放弃SCI

}

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

    如何知道Rx中断不工作? 我不知道为什么它可以在连接调试器的情况下工作,而不是在没有连接调试器的情况下工作。

    SAL
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将LED切换功能置于RX中断和通信期间LED切换(当连接转接器时)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以尝试C2000Ware中的sci回波示例吗? 我建议让这些程序运行,然后修改到您需要的内容,因为我不确定您的设置可能会出现什么问题。

    SAL