TI中文支持网
TI专业的中文技术问题搜集分享网站

关于SCI寄存器配置的问题

您好,我在看28335的SCI例程Example_2833xSci_Echoback时,发现SciaRegs的配置代码如下

  1. SciaRegs.SCICCR.all =0x0007;   // 1 stop bit,  No loopback
  2.                                                             // No parity,8 char bi
  3.                                                             // async mode, idle-line protocol
  4. SciaRegs.SCICTL1.all =0x0003;  // enable TX, RX, internal SCICLK,
  5.                                                              // Disable RX ERR, SLEEP, TXWAKE
  6. SciaRegs.SCICTL2.all =0x0003;
  7. SciaRegs.SCICTL2.bit.TXINTENA =1;
  8. SciaRegs.SCICTL2.bit.RXBKINTENA =1;
  9. #if (CPU_FRQ_150MHZ)
  10.       SciaRegs.SCIHBAUD    =0x0001;  // 9600 baud @LSPCLK = 37.5MHz.
  11.       SciaRegs.SCILBAUD    =0x00E7;
  12. #endif
  13. #if (CPU_FRQ_100MHZ)
  14.   SciaRegs.SCIHBAUD    =0x0001;  // 9600 baud @LSPCLK = 20MHz.
  15.   SciaRegs.SCILBAUD    =0x0044;
  16. #endif
  17. SciaRegs.SCICTL1.all =0x0023;  // Relinquish SCI from Reset

关于这个配置代码我有两个问题:

a:  SCICTL2的bit0和bit1就是TXINTENA和RXBKINTENA,第6行已经给这两位置1了,为什么第7、8行还要再写一遍给这两位置1。我测试了一下,如果只写7,8行程序仍正常运行,实现正常收发,但是只写第6行就不能正常收发了。

b:  和a问题有点类似,第17行给SCICTL1写了0x0023,为什么不在第四行的时候直接写呢,而是第四行先写个0x0003,然后第17行再写个0x0023。我试了下只写0x0023,代码也能正常运行。所以为什么例程要分开写?

希望有懂的朋友能解答一下。谢谢。

赞(3)
未经允许不得转载:TI中文支持网 » 关于SCI寄存器配置的问题
分享到: 更多 (0)