网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 服务导航 >> 帮助中心 >> C5000 >> 文章正文
  通讯程序           ★★★ 【字体:
通讯程序
作者:61IC    文章来源:本站原创    点击数:    更新时间:2007-1-1    

 

问题如下:

void   UartSent( )             //发送服务程序
{
   char  var[]="MAO123456";     //定义一段需要发送的字符串
   static  int  i=0;
   if(i>strlen(var))   i=0;     //如果需要发送的字符都已经发送完
     *SCITXBUF=var[i++];        //依次发送定义的字符串中的各个字符
}

void interrupt T1PINT()                //T1 P   周期中断服务程序
{
     switch(*PIVR)
  {
    case 0x0027:   // 如果是定时器1周期中断定时器1的周期中断,则执行下面的程序
        { m=m+1;      
          if (m==50)                //计数50个周期后开始往PC机传数据
           {   m=0;   
        UartSent( );    }
             }     break;                              
default:           break;
   }
*T1CNT=0X00;            // 定时器1的计数器重新赋0
*EVAIFRA=*EVAIFRA&0X0080;   
       // 清除定时器1周期中断标志,否则以后的中断将被忽略
enable( );     
     // 允许总中断,因一进中断服务程序后总中断就自动关闭了   
}  

我的本意是每隔50个周期中断(T1P)(大约为4秒时间),DSP向PC机把定义的var[]一次性传上去,可现在调试发现情况是这样:PC机收到M,相隔4秒收A,再隔4秒收O……依次循环……
为什么会这样?如果想实现我的本意,程序该如何修改?

答案如下:

你每隔50个周期送一个字符,当然是每4秒收到一个了

你用得是查询发送,要判断发送完标志,确定发完后才能发下一个字符!否则由于速度太快每次只能发送一个字符!

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

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    没有相关文章
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61IC 湘ICP备05002478号