281x-SCI和PC间的通讯

281x-SCI和PC间的通讯// $          Date:   30/11/2009        整理:  eyes417      $

//###########################################################################

//

//   FILE :  281x-SCI_PC.c

//

//  TITLE:  281x-SCI和PC间的通讯  ---  查询方式,使用FIFO

//               PC发送至串口,DSP再回送至PC                                //

//

//                        ASSUMPTIONS:

//

//   As supplied, this project is configured for "boot to H0" operation.

//   Other then boot mode pin configuration, no other hardware configuration is required.

//

//###########################################################################

# include "DSP281x_Device.h"    // DSP281x Headerfile Include File

# include "DSP281x_Examples.h"   // DSP281x Examples Include File

void scia_echoback_init(void);

void scia_fifo_init(void);

void scia_xmit(int a);                    //串口发送--数据

void scia_msg(char *msg);                 //串口发送--字符串

Uint16 LoopCount;

void main(void)

{

Uint16 ReceivedChar;

char *msg;

// Step 1. Initialize System Control:

InitSysCtrl();

// Step 2. Initalize GPIO:

// InitGpio();  //配置IO口功能为SCIA和SCIB模式

EALLOW;

GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1;

GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1;

GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4 = 1;

GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5 = 1;

EDIS;

// Step 3. Clear all interrupts and initialize PIE vector table:

DINT;                   // Disable CPU interrupts

InitPieCtrl();         //初始化PIE控制寄存器

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable();    //初始化PIE中断向量表

// Step 4. Initialize all the Device Peripherals:

// InitPeripherals();    //初始化所有外设

// Step 5. User specific code:

scia_fifo_init();

scia_echoback_init();

//从PC上的串口调试助手输入要发送的数据至DSP

msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0";

scia_msg(msg);

for(;;)

{

msg = "\r\nEnter a character: \0";

scia_msg(msg);

// 查询方式--接收--使用FIFO

while(SciaRegs.SCIFFRX.bit.RXFIFST!=1) { }      // wait for XRDY =1 for empty state

//XRDY =1 (空状态)等待数据发送

// 接收数据

ReceivedChar = SciaRegs.SCIRXBUF.all;

// Echo character back

msg = "  You sent: \0";

scia_msg(msg);

scia_xmit(ReceivedChar);     //串口发送函数

LoopCount++;

}  //end for

}  //end main

//SCI-A初始化

void scia_echoback_init()

{

//通信控制寄存器,1个停止位,无奇偶校验,自测试禁止,空闲线模式,字符长度8位

SciaRegs.SCICCR.all =0x0007;

//禁止接收错误中断,禁止休眠,使能发送,接收

SciaRegs.SCICTL1.all =0x0003;

SciaRegs.SCICTL2.all =0x0003;

SciaRegs.SCICTL2.bit.TXINTENA =1;   //使能TXRDY中断

SciaRegs.SCICTL2.bit.RXBKINTENA =1; //接收缓冲器中断使能

//波特率设置 SCI-Band=LSPCLK/((BRR+1)*8)---9600K

SciaRegs.SCIHBAUD = 0x0001;

SciaRegs.SCILBAUD = 0x00E7;

SciaRegs.SCICTL1.all =0x0023;  // SCI初始化完成退出复位重启状态

}

//串口发送--变量

void scia_xmit(int a)

{

while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}

SciaRegs.SCITXBUF=a;

}

//串口发送--字符或字符串

void scia_msg(char * msg)

{

int16 i;

i = 0;

while(msg[i] != '\0')

{

scia_xmit(msg[i]);

i++;

}

}

// 初始化 SCI--FIFO

void scia_fifo_init()

{

SciaRegs.SCIFFTX.all=0xE040;  //允许接收,使能FIFO,清除TXFIFINT

SciaRegs.SCIFFRX.all=0x204f;  //使能FIFO接收,清除RXFFINT,16级FIFO

SciaRegs.SCIFFCT.all=0x0000;  //禁止波特率校验

}

//===========================================================================

// No more.

//===========================================================================

281x-SCI和PC间的通讯// $          Date:   30/11/2009        整理:  eyes417      $

//###########################################################################

//

//   FILE :  281x-SCI_PC.c

//

//  TITLE:  281x-SCI和PC间的通讯  ---  查询方式,使用FIFO

//               PC发送至串口,DSP再回送至PC                                //

//

//                        ASSUMPTIONS:

//

//   As supplied, this project is configured for "boot to H0" operation.

//   Other then boot mode pin configuration, no other hardware configuration is required.

//

//###########################################################################

# include "DSP281x_Device.h"    // DSP281x Headerfile Include File

# include "DSP281x_Examples.h"   // DSP281x Examples Include File

void scia_echoback_init(void);

void scia_fifo_init(void);

void scia_xmit(int a);                    //串口发送--数据

void scia_msg(char *msg);                 //串口发送--字符串

Uint16 LoopCount;

void main(void)

{

Uint16 ReceivedChar;

char *msg;

// Step 1. Initialize System Control:

InitSysCtrl();

// Step 2. Initalize GPIO:

// InitGpio();  //配置IO口功能为SCIA和SCIB模式

EALLOW;

GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4 = 1;

GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5 = 1;

GpioMuxRegs.GPGMUX.bit.SCITXDB_GPIOG4 = 1;

GpioMuxRegs.GPGMUX.bit.SCIRXDB_GPIOG5 = 1;

EDIS;

// Step 3. Clear all interrupts and initialize PIE vector table:

DINT;                   // Disable CPU interrupts

InitPieCtrl();         //初始化PIE控制寄存器

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable();    //初始化PIE中断向量表

// Step 4. Initialize all the Device Peripherals:

// InitPeripherals();    //初始化所有外设

// Step 5. User specific code:

scia_fifo_init();

scia_echoback_init();

//从PC上的串口调试助手输入要发送的数据至DSP

msg = "\r\nYou will enter a character, and the DSP will echo it back! \n\0";

scia_msg(msg);

for(;;)

{

msg = "\r\nEnter a character: \0";

scia_msg(msg);

// 查询方式--接收--使用FIFO

while(SciaRegs.SCIFFRX.bit.RXFIFST!=1) { }      // wait for XRDY =1 for empty state

//XRDY =1 (空状态)等待数据发送

// 接收数据

ReceivedChar = SciaRegs.SCIRXBUF.all;

// Echo character back

msg = "  You sent: \0";

scia_msg(msg);

scia_xmit(ReceivedChar);     //串口发送函数

LoopCount++;

}  //end for

}  //end main

//SCI-A初始化

void scia_echoback_init()

{

//通信控制寄存器,1个停止位,无奇偶校验,自测试禁止,空闲线模式,字符长度8位

SciaRegs.SCICCR.all =0x0007;

//禁止接收错误中断,禁止休眠,使能发送,接收

SciaRegs.SCICTL1.all =0x0003;

SciaRegs.SCICTL2.all =0x0003;

SciaRegs.SCICTL2.bit.TXINTENA =1;   //使能TXRDY中断

SciaRegs.SCICTL2.bit.RXBKINTENA =1; //接收缓冲器中断使能

//波特率设置 SCI-Band=LSPCLK/((BRR+1)*8)---9600K

SciaRegs.SCIHBAUD = 0x0001;

SciaRegs.SCILBAUD = 0x00E7;

SciaRegs.SCICTL1.all =0x0023;  // SCI初始化完成退出复位重启状态

}

//串口发送--变量

void scia_xmit(int a)

{

while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}

SciaRegs.SCITXBUF=a;

}

//串口发送--字符或字符串

void scia_msg(char * msg)

{

int16 i;

i = 0;

while(msg[i] != '\0')

{

scia_xmit(msg[i]);

i++;

}

}

// 初始化 SCI--FIFO

void scia_fifo_init()

{

SciaRegs.SCIFFTX.all=0xE040;  //允许接收,使能FIFO,清除TXFIFINT

SciaRegs.SCIFFRX.all=0x204f;  //使能FIFO接收,清除RXFFINT,16级FIFO

SciaRegs.SCIFFCT.all=0x0000;  //禁止波特率校验

}

//===========================================================================

// No more.

//===========================================================================


相关文章

  • 力士乐驱动器报警代码
  • 力士乐驱动器报警代码 DKC故障诊断 1 诊断信息F和诊断信息E的说明 错误诊断信息F F205 凸轮轴故障 F207 切换至未初始化运行模式 F208 UL电机类型已变 F209 PL装载参数默认值 F211 DISC-Error no. ...查看


  • 受电弓售后检测常见故障分析
  • 东莞诺丽科技有限公司 受电弓监控售后常见故障分析 1. 在受电弓主机完好与通讯线完全接触良好,而在网络状态中,TP一拦,显示界面为橙色状态时,先检查控制空开是否跳闸,如果空开正常,则检查通讯281线,打开后是否为 1脚 红色 2脚 白色 5 ...查看


  • 循环冗余检验CRC 算法原理
  • CRC 的校验原理 随着数据采集系统的功能日益强大,以及微型计算机的普及,在现代工业中,利用微机进行数据通讯的工业控制应用得也越来越广泛.特别是在大规模高精度数据采集系统中,对数据进行分析和计算将占用很大一部分单片机的资源,可以将采集到的数 ...查看


  • 碎步测量数据
  • 1 ,-22.226,-50.146,283.870, 2 ,-28.636,-41.700,283.805, 3 ,-22.917,-41.679,284.038, 4 ,-18.952,-41.839,284.010, 5 ,-21.5 ...查看


  • 泸州医学院护理专业学生满意度调查报告(5-25)
  • 泸州医学院护理专业学生满意度调查报告 [摘要]大学生对专业的满意度体现出了大学生在大学期间学习成果在社会上的价值.然而现代大学生对自己所学专业在一定程度上表现出不满意,甚至出现抵触现象,导致大学生对自己所学专业不满意的原因很多,有学生选择专 ...查看


  • 中国国际收支平衡表04-09
  • 中国国际收支平衡表--2004 中国国际收支平衡表--2004 年 -单位:千美元 项 一.经常项目 A.货物和服务 A.货物和服务 a.货物 a.货物 b.服务 b.服务 1.运输 2.旅游 3.通讯服务 4.建筑服务 5.保险服务 6. ...查看


  • 氨氮分析仪
  • AmtaxTM inter2氨氮在线分析仪 Amtaxinter2氨氮在线分析仪 仪器描述 AmtaxTM inter2氨氮在线分析仪是为测量水中(饮用水/地表水/工业生产过程用水/污水处理)的铵根离子(NH4+)浓度而设计的在线分析仪.仪 ...查看


  • 社科类核心期刊
  • 社科类核心期刊(★-重要核心期刊) B 1. ★编辑学报 2. 保险研究 3. 北京大学学报(哲社版) 4. 北京电影学院学报 5. 北京师范大学学报(人文社科版) 6. 北京体育大学学报 7. 比较法研究 8. 比较教育研究 9. 编辑学 ...查看


  • 全国281个城市空气质量排名公布 淮南市排名133位
  • 中安在线 发布日期:2013-4-1 8:37:17 http://hn.newhouse.com.cn/a/2013/04/01/[**************]17.shtml 昨日,中国人民大学环境学院等机构发布的<中国城市空气 ...查看


热门内容