主题中讨论的其他部件: 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
}