📄 epower_28x_sci.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -