Part Number:TMS320F28377D
请问TMS320F28377D SCIc与a,b有什么不同么?c一直调不通,是我忽略了什么么?时钟194M,波特率460800,在b上测试正常
//中断
PieVectTable.SCIC_RX_INT = &scicRxFifoIsr;
PieVectTable.SCIC_TX_INT = &scicTxFifoIsr;
//GPIO
GPIO_SetupPinMux(139, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(139, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(140, GPIO_MUX_CPU1, 6);
GPIO_SetupPinOptions(140, GPIO_OUTPUT, GPIO_ASYNC;
//初始化
ScicRegs.SCICCR.all = 0x0007; // 1 stop bit, No loopback 无回环测试
// No parity,8 char bits,
// async mode, idle-line protocol
ScicRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
ScicRegs.SCICTL2.bit.TXINTENA = 1; // trans interrupt enable
ScicRegs.SCICTL2.bit.RXBKINTENA = 1;// receive interrupt enable
ScicRegs.SCIHBAUD.all = 0x0000;
ScicRegs.SCILBAUD.all = 0x000C;
ScicRegs.SCIFFTX.all = 0xC000;//1100 0000 0010 0010b 重新开始收发 使能FIFO增强功能 发送FIF0为空 FIF0中断级位为2
ScicRegs.SCIFFRX.all = 0x002D; //使能接收中断 接收FIFO级位为13
ScicRegs.SCIFFCT.all = 0x00;
ScicRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset 重启SCI SCICTL1 寄存器的 SWRESET,必须被置 1
ScicRegs.SCIFFTX.bit.TXFIFORESET = 1;
ScicRegs.SCIFFRX.bit.RXFIFORESET = 1;
//定时开启发送中断,定周期发送;
__interrupt void scicTxFifoIsr(void)
{
scicTx(DYT_REVDATA_LEN);
ScicRegs.SCIFFTX.bit.TXFFINTCLR=1; // Clear SCI Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ACK
}
//
// scicRxFifoIsr – SCIC Receive FIFO ISR
//
__interrupt void scicRxFifoIsr(void)
{
//关中断,保证数据读取不被打断,最快速度
DINT;
//rdata_pointA = (rdata_pointA+1) & 0x00FF;
scicRx(13);//13个数据一个中断
ScicRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
ScicRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ack
//开中断
EINT;
}
Green Deng:
你好,请问
JiaqI Liang 说:c一直调不通
这个具体是接口没有信号还是接收发送的内容不对?
SCIC除了中断向量表的排序不一样,其他设置方法应该几乎相同的。
,
JiaqI Liang:
中断进不去~~~~感觉向量表初始化应该没啥问题
,
Green Deng:
还有一个可能,你的硬件能确定都没问题吗?
,
JiaqI Liang:
硬件出了问题。谢谢您
,
Green Deng:
客气了