void scia_fifo_init(int ibaud)
{
   SciaRegs.SCICCR.all =0x0007;    // 1 stop bit,  No loopback
                                   // No parity,8 char bits,
                                   // async mode, idle-line protocol
   SciaRegs.SCICTL1.all =0x0003;   // enable TX, RX, internal SCICLK,
                                   // Disable RX ERR, SLEEP, TXWAKE
   SciaRegs.SCICTL2.bit.TXINTENA =1;
   SciaRegs.SCICTL2.bit.RXBKINTENA =1;

   if(ibaud==9600)
   {
     SciaRegs.SCIHBAUD    =0x0001;//9600
     SciaRegs.SCILBAUD    =0x00e7;
   }

   if(ibaud==19200)
   {
      SciaRegs.SCIHBAUD    =0x0000;
      SciaRegs.SCILBAUD    =0x00f3;
   }

   if(ibaud==38400)
   {
      SciaRegs.SCIHBAUD    =0x0000;
      SciaRegs.SCILBAUD    =0x0079;
   }

   SciaRegs.SCICCR.bit.LOOPBKENA =0; // Enable loop back
   SciaRegs.SCIFFTX.all=0xC028;
   SciaRegs.SCIFFRX.all=0x0021;//
   SciaRegs.SCIFFCT.all=0x00;

   SciaRegs.SCICTL1.all =0x0023;     // Relinquish SCI from Reset
   SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
   SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
}

unsigned char r232data[3]={0,0,0};
int int232cnt=0;

void scia_xmit(int a)
{
    while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
    SciaRegs.SCITXBUF=a;

}

interrupt void sciaRxFifoIsr(void)
{

	   unsigned short ReceivedChar=SciaRegs.SCIRXBUF.all;	 // Read data
	   //
	r232data[int232cnt%3]=ReceivedChar;

	int232cnt++;

    if((r232data[0]==0X42)&&(r232data[1]==0X42)&&(int232cnt%3==0))
	{
	        //lslData = *(unsigned short*)(0x80000+0xb);//bit0 输出1的值,bit1 输出2的值
		    EALLOW;
			GpioMuxRegs.GPEMUX.bit.XNMI_XINT13_GPIOE2 = 0;  //   IO 输入 拉低
			GpioMuxRegs.GPEDIR.bit.GPIOE2 = 1;    	//B6输出
			GpioDataRegs.GPEDAT.bit.GPIOE2 = (r232data[2]&0x2)>>1;
		//	GpioMuxRegs.GPBQUAL.all=0x0000;	// Input qualifier disabled
			EDIS;

			//
			EALLOW;
			GpioMuxRegs.GPBMUX.bit.T3PWM_GPIOB6=0;  //   IO 输入 拉低
			GpioMuxRegs.GPBDIR.bit.GPIOB6=1;    	//E2输出
			GpioDataRegs.GPBDAT.bit.GPIOB6 = r232data[2]&0x1;
		//	GpioMuxRegs.GPBQUAL.all=0x0000;	// Input qualifier disabled
			EDIS;
			scia_xmit(0x41);
			scia_xmit(0x41);
	}

	SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;  // Clear Overflow flag
	SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; 	// Clear Interrupt flag
	PieCtrlRegs.PIEACK.all|=0x100;  	// Issue PIE ack

}
void main(void)
{		

	int ch=0;

	InitSysCtrl();//设置外部时钟和系统时钟
    /////////for sci-b////////////////////
       EALLOW;
	   GpioMuxRegs.GPFMUX.all=0x0030;	// Select GPIOs to be Scia pins
	                                    // Port F MUX - x000 0000 0011 0000
	 //  GpioMuxRegs.GPGMUX.all=0x0030;	// Select GPIOs to be Scib pins
	                                    // Port G MUX - x000 0000 0011 0000
	   EDIS;
    ///////////////////////////////////
	DINT;

	InitGpio();  // 2812原配,未改动

	InitPieCtrl();

	// Disable CPU interrupts and clear all CPU interrupt flags:
	IER = 0x0000;
	IFR = 0x0000;

	InitPieVectTable();
    EALLOW;  // This is needed to write to EALLOW protected registers
  //  PieVectTable.TINT0 = &cpu_timer0_isr;
    PieVectTable.RXAINT = &sciaRxFifoIsr;
    EDIS; 

	scia_fifo_init(9600);
///*
	PieCtrlRegs.PIECRTL.bit.ENPIE = 1;   // Enable the PIE block
	PieCtrlRegs.PIEIER9.bit.INTx1=1;     // PIE Group 9, INT1
	 //  PieCtrlRegs.PIEIER9.bit.INTx2=1;     // PIE Group 9, INT2
	 //  PieCtrlRegs.PIEIER9.bit.INTx3=1;     // PIE Group 9, INT3
	  // PieCtrlRegs.PIEIER9.bit.INTx4=1;     // PIE Group 9, INT4
	   IER |= 0x100;	// Enable CPU INT
	   EINT;
	   ERTM;
	   //*/
	// 将中断处理函数和InitFlash函数拷贝到RAM中运行,FLASH中运行时MemCopy和InitFlash必须有效
	MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
	InitFlash();

	// 对外部器件初始化必需放在InitFlash后

	// 初始化timer0
//	InitCpuTimers();
 //  	ConfigCpuTimer(&CpuTimer0, 150, 0xffffffff);

	// 初始化

	while (1)
	{
         ;
	}

} 	

DSP_TMS32F2812的串口操作的更多相关文章

  1. C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

    原文地址:http://blog.csdn.net/wuyazhe/article/details/5627253 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要 ...

  2. C# 串口操作 ---- 系列文章

    C# 串口操作系列(5)--通讯库雏形 通讯库雏形的建立. 串口通讯介绍的高级篇,介绍更高级的抽象,为扩展为通用的客户端通讯库做铺垫,扩展性的考虑,能支持任意类型的流设备. ... 2010-08-0 ...

  3. c#实现串口操作 SerialPort

    命名空间:using System.IO.Ports;该类提供了同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问. 操作类声明: SerialPort sp = ...

  4. C# 串口操作系列(5)--通讯库雏形

    C# 串口操作系列(5)--通讯库雏形 标签: 通讯c#数据分析byteclassstring 2010-08-09 00:07 21378人阅读 评论(73) 收藏 举报  分类: 通讯类库设计(4 ...

  5. C# 串口操作系列(4) -- 协议篇,文本协议数据解析

    C# 串口操作系列(4) -- 协议篇,文本协议数据解析 标签: c#uiobjectstringbyte 2010-06-09 01:50 19739人阅读 评论(26) 收藏 举报  分类: 通讯 ...

  6. 【转】C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。

    C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 ...

  7. V-rep学习笔记:串口操作

    VREP Regular API提供了串口操作的相关函数,可以对串口进行打开.关闭和读写: 下面使用一款淘宝上常见的AHRS(Attitude and heading reference system ...

  8. Linux下串口操作之数据拼接

    串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器 ...

  9. 【C#】串口操作实用类

    做工业通 信有很长时间了,特别是串口(232/485),有VB/VC/C各种版本的串口操作代码,这些代码也经过了多年的现场考验,应该说是比较健壮的代码,但 是目前却没有C#相对成熟的串口操作代码,最近 ...

随机推荐

  1. Node.js:上传文件,服务端如何获取文件上传进度

    内容概述 multer是常用的Express文件上传中间件.服务端如何获取文件上传的进度,是使用的过程中,很常见的一个问题.在SF上也有同学问了类似问题<nodejs multer有没有查看文件 ...

  2. 【Java框架型项目从入门到装逼】第十五节 - jdbc模糊查询实现(附带详细调试过程)

    上一节,我们实现了用户列表查询,已经按条件精确查询: if(student.getUsername() != null && !"".equals(student. ...

  3. spring之注解详解

    一.类级别注解 通用:@Component("id") Controller层:@Controller("id") Service层:@Service(&quo ...

  4. make和makefile简明基础

    0.make.makefile是什么? makefile定义了一系列的规则,来规定哪些部分先编译,哪些部分后编译,写好makefile以后,只需一个make命令就可以让整个工程完全自动编译,所以简单的 ...

  5. BZOJ 4455: [Zjoi2016]小星星 [容斥原理 树形DP]

    4455: [Zjoi2016]小星星 题意:一个图删掉一些边形成一棵树,告诉你图和树的样子,求让图上的点和树上的点对应起来有多少方案 看了很多题解又想了一段时间,感觉题解都没有很深入,现在大致有了自 ...

  6. BZOJ 3729: Gty的游戏 [伪ETT 博弈论]【学习笔记】

    题意: 给定一棵有根树,每个节点有一些石子,每次可以将不多于k的石子移动到父节点 修改一个点的石子数,插入一个点,询问某棵子树是否先手必胜 显然是一个阶梯Nim 每次最多取k个,找规律或者观察式子易发 ...

  7. HDU D Tree [点分治]

    传送门 题意:找路径积$\mod 1e6+3 = k$的字典序最小点对 作为一个点分治蒟蒻,写这道题花了两节课.... 显然只要开一个桶$c[i]$记录当前路径积为$i$的最小点 然后处理一个子树时一 ...

  8. 配置 github 上的程序

    最近学习的node.vue的单页模式,看到github (地址:https://github.com/bailicangdu/node-elm)上面有大神做了一个几十页的系统,心想怎么弄到本地研究下 ...

  9. Linux下配置SNAT上网

    局域网有一台主机A,没有公网的IP, 也就是没有办法直接连到互联网上下载东西,同时内网有另外一台主机B,有公网接入.这个时候为了让A连接到互联网,我把B设置成NAT主机,A的网关指向B.准确的来说,现 ...

  10. unbuntu 系统登录华南师范大学校园网的方法

    最近刚装了unbuntu 系统,刚开始网络连接遇到了点小问题,原来是校园网不知道怎么认证,于是向好基友请教了下,得出快捷的方法如下: 下载学校网络的认证客户端,记住位置,一般都是默认下载地址是 Dow ...