Part Number:TMS320F28377S
下面是我用仿真器查看到的,SCITXBUF中的数据0x92正是我想发送的数据。但是使用逻辑分析仪对TXD引脚进行抓取,一直为高电平无变化。能否请大家帮忙看看是什么问题。
附SCIc的配置图:
ZHUANG TIAN:
可以参考我的配置,下面是可以的
SciaRegs.SCIFFTX.all=0xE040; SciaRegs.SCIFFRX.all=0x204F; SciaRegs.SCIFFCT.all=0x0;
SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, // Disable RX ERR, SLEEP, TXWAKE SciaRegs.SCICTL2.all =0x0003; SciaRegs.SCICTL2.bit.TXINTENA =1; SciaRegs.SCICTL2.bit.RXBKINTENA =1;
// 9600 baud SciaRegs.SCIHBAUD.all =0x0001; SciaRegs.SCILBAUD.all =0x0087;
SciaRegs.SCICTL1.all =0x0023;
,
Taeho:
谢谢,我刚刚发现了问题所在:TXSHF上的数据还未完全发送完成,我就把发送使能关闭了,导致发送的数据异常。
但是如何判断TXSHF上的数据发送完成了呢?比如我发送的数据为0x8A,FIFO->TXSHF非常快,但是TXSHF会按照配置的波特率依次串行输出01010001,如何判断TXSHF已经将01010001全部发送完成了呢?
,
ZHUANG TIAN:
有相应的标志位,看看数据手册和官方例程
,
Taeho:
我在手册中找到了TXEMPTY,可以代表FIFO和TXSHF为空,但是对于我来说,这个太慢了,需要我下一个周期才能查询到TXEMPTY = 1。但是实际上在下一个周期之前就已经把数据都发送完了。我好像没有在手册上看到TXSHF为空时的中断标志位?您有找到吗?