请帮我生成一个TMS320F28035串口初始化代码
时间: 2024-02-05 14:12:00 浏览: 115
好的,以下是一个基本的TMS320F28035串口初始化代码:
```c
#include "DSP2803x_Device.h"
#include "DSP2803x_Examples.h"
void InitScia(void){
//初始化SCI引脚
EALLOW;
GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0;
GpioCtrlRegs.GPAPUD.bit.GPIO29 = 0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3;
GpioCtrlRegs.GPAQSEL2.bit.GPIO29 = 3;
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1;
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1;
EDIS;
//设置SCI波特率为9600
SciaRegs.SCICCR.bit.STOPBITS = 0;
SciaRegs.SCICCR.bit.PARITYENA = 0;
SciaRegs.SCICCR.bit.PARITY = 0;
SciaRegs.SCICCR.bit.LOOPBKENA = 0;
SciaRegs.SCICCR.bit.ADDRIDLE_MODE = 0;
SciaRegs.SCICCR.bit.SCICHAR = 7;
//设置波特率发生器
SciaRegs.SCIHBAUD = 0x0000;
SciaRegs.SCILBAUD = 0x00C2;
//设置SCI控制寄存器
SciaRegs.SCICTL1.bit.RXENA = 1;
SciaRegs.SCICTL1.bit.TXENA = 1;
SciaRegs.SCICTL1.bit.SLEEP = 0;
SciaRegs.SCICTL1.bit.TXWAKE = 0;
SciaRegs.SCICTL1.bit.SWRESET = 0;
SciaRegs.SCICTL1.bit.RXERRINTENA = 0;
SciaRegs.SCICTL1.bit.TXINTENA = 0;
//清除接收缓冲区
SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;
//设置接收FIFO
SciaRegs.SCIFFRX.bit.RXFFIL = 1;
SciaRegs.SCIFFRX.bit.RXFFIENA = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
//设置发送FIFO
SciaRegs.SCIFFTX.bit.TXFFIL = 0;
SciaRegs.SCIFFTX.bit.TXFFIENA = 0;
SciaRegs.SCIFFTX.bit.SCIFFENA = 0;
SciaRegs.SCIFFTX.bit.TXFIFORESET = 0;
//使能SCI
SciaRegs.SCICTL1.bit.SWRESET = 1;
}
```
这个代码初始化了SCI-A模块,并将波特率设置为9600。如果你需要修改波特率,可以修改以下代码:
```c
SciaRegs.SCILBAUD = 0x00C2;
```
0x00C2是9600波特率对应的值,如果你需要其他波特率,可以通过以下公式计算:
SCI波特率 = LSPCLK / (SCI波特率设置值 × 8) - 1
其中,LSPCLK是CPU时钟频率的一半。
阅读全文