网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> DSP >> 代码示例 >> TI DSP代码示例 >> C2000 >> 文章正文
  一个基于DSP2407串行通信接口典型应用举例         ★★★ 【字体:
一个基于DSP2407串行通信接口典型应用举例
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-16    

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

     下面给出一个在两个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=6MCLKOUT=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 6UartRec( )   //如果PIVR=6,则发生了接收中断,执行接收服务程序

         case 7UartSent( )  //如果PIVR=7,则发生了发送中断,执行发送服务程序

     }

}

//当由于干扰而引起其它中断时,中断进入此程序直接返回主程序

void  interrupt  nothing()

{

     return

}

               欢迎点击进入:TI德州中文网   (国内唯一针对TI应用的中文技术网站)    文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    基于DSP2407产生带死区的6个…
    DSP2407平台下用C语言实现的…
    利用DSP2407控制马达代码
    DSP2407控制320*240大液晶显…
    基于DSP240x的串行EEPROM的接…
    基于DSP240x的串行EEPROM的接…
    TMS320LF2407与图形液晶显示…
    基于DSP240x PWM波形产生举例
    基于DSP2407 CAN控制器的程序…
    DSP2407头文件和命令文件示例…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号