epower_28x_sci.c

来自「在TI的TMSF2812平台上」· C语言 代码 · 共 78 行

C
78
字号
/* FILE:    Epower_28x_Sci.c
  
   TITLE:   DSP2812 Device SCI. 
   
   AUTHOR:  XuKangping
  
   ASSUMPTIONS:
  
            As supplied, this project is configured for "boot to H0" operation.  
  
   DESCRIPTION:
  
            This program uses SCIA module to communicate with PC
*/

#include "Epower_28x.h"

void InitSciGpio(void)
{
    // define the SCIA pin
    EALLOW;
    GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1;
    GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1;
    EDIS;
    
    // define the SCIA cs pin(CNTR485)
    EALLOW;
    GpioMuxRegs.GPDMUX.bit.T1CTRIP_PDPA_GPIOD0 = 0;
    GpioMuxRegs.GPDDIR.bit.GPIOD0 = 1;
    EDIS;
    
    // define the transmit mode
    GpioDataRegs.GPDDAT.bit.GPIOD0 = SCI_TRANSMIT;
}

void InitScia(void)
{
    // 1 stop bit,  No loopback, No parity, 8 char bits, async mode, idle-line 
    // protocol 
    SciaRegs.SCICCR.all =0x0007; 
    
    // Enable RX, TX, internal SCICLK; disable RX ERR, SLEEP, TXWAKE      
    SciaRegs.SCICTL1.all = 0x0003;   
    // Disable TX interrupt and Receiver-buffer/break interrupt   
    SciaRegs.SCICTL2.bit.TXINTENA = 0;
    SciaRegs.SCICTL2.bit.RXBKINTENA = 1;
    
    // Baudrate = 9600 
    SciaRegs.SCIHBAUD = 0x01;
    SciaRegs.SCILBAUD = 0xE7;
    
    SciaRegs.SCICCR.bit.LOOPBKENA = 0;
    
    // SCI FIFO initiate 
    // Reset Transmit FIFO 
    SciaRegs.SCIFFTX.all = 0xc000;
    // Clear Receive FIFO overflow flag, Receive FIFO is empty, Clear
    // interrupt flag, receive interrupt level = 8 
    SciaRegs.SCIFFRX.all = 0x0028;
    SciaRegs.SCIFFCT.all = 0x0000;
    
    SciaRegs.SCIPRI.all = 0x0010;
    
    // Relinquish SCI from Reset  
    SciaRegs.SCICTL1.bit.SWRESET = 1;     
    SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
    SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
    
    // Set SCI transmit mode 
    GpioDataRegs.GPDDAT.bit.GPIOD0 = SCI_TRANSMIT;
}

// Transmit a character from the SCI'
void Scia_Xmit(Uint16 a)
{
    SciaRegs.SCITXBUF=a;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?