2407串行通信接口典型应用举例

来源:本站
导读:目前正在解读《2407串行通信接口典型应用举例》的相关信息,《2407串行通信接口典型应用举例》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《2407串行通信接口典型应用举例》的详细说明。
简介:本文给出一个在两个DSP之间实现简单异步通信的通用程序。

//该程序实现2407的串口异步通信#include          "register.h"//禁止总中断子程序      void  inline  disable(){         asm(" setc INTM");         asm(" setc SXM");}//使能总中断子程序void           inline          enable(){asm(" clrc INTM");}main( ){         disable();                              //禁止所有中断*IFR=0xFFFF;                                 // 清除中断标志  *SCSR1=0x81FE;                  //CLKIN=6M,CLKOUT=24M*WDCR=0xE8;                       //不使能看门狗*SCICCR=0x7;                       //1个停止位,不使能奇偶校验,空闲线多处理//器模式,8位字符*SCICTL1=0x13;                  //#0013H 使能接收和发送,SLEEP=0 禁止休眠//方式 , 禁止接收错误中断,TXWAKE=0 即没//有选定的发送特征*SCICTL2=0x3;                   //使能接收和发送中断*SCIHBAUD=0x2;         *SCILBAUD=0x70;                //波特率=4800B/S*SCICTL1=0x33;                   //使SCI脱离复位状态*SCIPRI=0x60;                    //SCI中断(接收和发送中断)为低优先级中断*MCRA=0x3;         *PADATDIR=0x100;         *IMR=0x10;                             //使能UART中断-INT5          enable();                                   //使能总中断         *SCITXBUF=' ';          while(1)   ;}void   UartSent( )                   //发送服务程序{         const  char*  var="F2407 UART is fine!";//定义一段需要发送的字符串         static  int  i=0;         if(i>strlen(var))  return;         //如果需要发送的字符都已经发送完,则中断直接返回         *SCITXBUF=var[i++];         //依次发送定义的字符串中的各个字符         *IFR=0x0010;                      //清除IFR中相应的中断标志         enable();                                 //开总中断,因为一进入中断服务程序总中断就自动关闭了}  void   UartRec()                             //接收服务程序{                       static  int  receive[10],j=0;receive[j++] = *SCIRXBUF;//依次接收字符if(j>9) j = 0;*IFR= 0x0010;                     //清除IFR中相应的中断标志         enable();                                 //开总中断,因为一进入中断服务程序总中断就自动关闭了}void  interrupt  uarttr( )                    //中断服务程序{         switch (*PVIR)                       //根据中断向量寄存器PVIR的值区别是接收还是发送中断         {case 6:UartRec( );         //如果PIVR=6,则发生了接收中断,执行接收服务程序                  case 7:UartSent( );      //如果PIVR=7,则发生了发送中断,执行发送服务程序         }}//当由于干扰而引起其它中断时,中断进入此程序直接返回主程序void  interrupt  nothing(){         return;}

提醒:《2407串行通信接口典型应用举例》最后刷新时间 2024-03-14 01:02:29,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《2407串行通信接口典型应用举例》该内容的真实性请自行鉴别。