📄 dsp28_sci.c
字号:
//
// TMDX ALPHA RELEASE
// Intended for product evaluation purposes
//
//###########################################################################
//
// FILE: DSP28_Sci.c
//
// TITLE: DSP28 SCI Initialization & Support Functions.
//
//###########################################################################
//
// Ver | dd mmm yyyy | Who | Description of changes
// =====|=============|======|===============================================
// 0.55| 06 May 2002 | L.H. | EzDSP Alpha Release
// 0.56| 20 May 2002 | L.H. | No change
// 0.57| 27 May 2002 | L.H. | No change
//###########################################################################
#include "DSP28_Device.h"
//---------------------------------------------------------------------------
// InitSPI:
//---------------------------------------------------------------------------
// This function initializes the SPI(s) to a known state.
//
void InitSci(void)
{
// 配置SCI配置寄存器
SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0; // 空闲线模式
SciaRegs.SCICCR.bit.LOOPBKENA=0; // 禁止自测试模式
SciaRegs.SCICCR.bit.PARITY=0; // 奇偶校验位 ----奇校验
SciaRegs.SCICCR.bit.PARITYENA=0; // 禁止奇偶校验
SciaRegs.SCICCR.bit.SCICHAR=7; // 8位字符长度
SciaRegs.SCICCR.bit.STOPBITS=0; // 一个停止位
// 配置SCI控制寄存器1
SciaRegs.SCICTL1.bit.RXENA=1; // 使能接收操作
SciaRegs.SCICTL1.bit.TXENA=1; // 使能发送操作
SciaRegs.SCICTL1.bit.RXERRINTENA=0; // 禁止接收错误中断
SciaRegs.SCICTL1.bit.SLEEP=0; // 禁止睡眠模式
SciaRegs.SCICTL1.bit.SWRESET=0; // 软件复位
SciaRegs.SCICTL1.bit.TXWAKE=0; //
// 配置控制寄存器2
SciaRegs.SCICTL2.bit.TXINTENA=1; // 使能发送中断
SciaRegs.SCICTL2.bit.RXBKINTENA=1; // 使能接收中断
// 配置波特率寄存器,波特率取为9600,波特率计算方法:LSPCLK/(8*BRR+1)
SciaRegs.SCIHBAUD=487>>8; // 高波特率字节取值,取高8位 487=111100111
SciaRegs.SCILBAUD=487&0x00FF; // 低波特率字节取值,取低8位
// 设置堆栈寄存器
SciaRegs.SCIFFTX.bit.SCIFFENA=1; // 使能堆栈功能
SciaRegs.SCIFFTX.bit.TXFFIENA=1; // 使能发送堆栈的中断
SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1; // 将发送堆栈从复位状态释放
SciaRegs.SCIFFTX.bit.TXINTCLR=1; // 清发送堆栈标志位
// SciaRegs.SCIFFTX.all=0xE060; // 1位SCIRST位置1(不复位SCI模块),使能堆栈FIFO功能
// 使能发送堆栈中断,清FIFO标志位,并将FIFO从复位状态
// 释放
SciaRegs.SCIFFRX.bit.RXFFIENA=1; // 使能接收堆栈中断
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; // 清接收中断标志位
SciaRegs.SCIFFRX.bit.RXFIFORESET=1; // 将接收堆栈从复位状态释放
SciaRegs.SCIFFRX.bit.RXOVF_CLR=1; // 清接收溢出中断标志位
SciaRegs.SCIFFRX.bit.RXFFIL=5; // 设置接收堆栈中断级别为5
// SciaRegs.SCIFFRX.all=0x6065;
// 将SCI模块从复位状态释放
SciaRegs.SCICTL1.bit.SWRESET=1;
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -