在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 3838|回复: 1

[原创] 看看这 怎么收不全 数据???

[复制链接]
发表于 2005-12-1 14:01:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 cjsb37 于 2013-4-29 09:19 编辑

unsigned int receive[10];
unsigned int ii;
unsigned int i;
main( )
{
asm( " setc INTM");
asm( " setc SXM");
         
*IFR=0x0FFFF;// Çå³ýÖжϱêÖ¾   
*SCSR1=0x00FF;         //CLKIN=10M£¬CLKOUT=40M
*WDCR=0x0E8;           //ʹÄÜ¿´ÃŹ·   0x0E8-²»Ê¹ÄÜ¿´ÃŹ·
*SCICCR=0x7;           //1¸öֹͣ룬²»Ê¹ÄÜÆæżУÑ飬¿ÕÏÐÏ߶ദÀíÆ÷ģʽ£¬8λ×Ö·û
*SCICTL1=0x11;         //#0011H ʹÄܽÓÊÕºÍ ½ûÖ¹·¢ËÍ£¬SLEEP=0 ½ûÖ¹ÐÝÃß·½Ê½ £¬ ½ûÖ¹½ÓÊÕ´íÎóÖжϣ¬TXWAKE=0 ¼´Ã»ÓÐѶ¨µÄ·¢ËÍÌØÕ÷
*SCICTL2=0x2;          //ʹÄܽÓÊÕÖжÏ,½ûÖ¹·¢ËÍÖжÏ
*SCIHBAUD=0x2;
*SCILBAUD=0x08;       //²¨ÌØÂÊ=9600
*SCICTL1=0x31;          //ʹSCIÍÑÀ븴λ״̬,ʹÄܽÓÊÕ ½ûÖ¹·¢ËÍ£¡
*SCIPRI=0x60;           //SCIÖжÏ(½ÓÊպͷ¢ËÍÖжÏ)ΪµÍÓÅÏȼ¶ÖжÏ
*MCRA=0x3;              //SCI  TX RXÓÐЧ  ÅäÖÃΪרÓÃÒý½Å
*PADATDIR=0x100;
*IMR=0x10;    //ʹÄÜUARTµÍÓÅÏȼ¶ÖжÏ-INT5
asm(" clrc INTM");    //ʹÄÜ×ÜÖжÏ
while(1);
}
void   UartSent( )                   //·¢ËÍ·þÎñ³ÌÐò
{
         const  char*  var="F2407 UART is fine!";//¶¨ÒåÒ»¶ÎÐèÒª·¢Ë͵Ä×Ö·û´®
         static  int  i=0;
for (i=0;;)
{
         if(i>strlen(var))  return;         //Èç¹ûÐèÒª·¢Ë͵Ä×Ö·û¶¼ÒѾ­·¢ËÍÍ꣬ÔòÖжÏÖ±½Ó·µ»Ø
         *SCITXBUF=var[i++];         //ÒÀ´Î·¢ËͶ¨ÒåµÄ×Ö·û´®Öеĸ÷¸ö×Ö·û
}
         *IFR=0x0010;                      //Çå³ýIFRÖÐÏàÓ¦µÄÖжϱêÖ¾
}   
void   UartRec()                             //½ÓÊÕ·þÎñ³ÌÐò
{       ii=0;
receive[ii++] = *SCIRXBUF;//ÒÀ´Î½ÓÊÕ×Ö·û
}
void  interrupt uart ()                   //ÖжϷþÎñ³ÌÐò
{
asm(" setc INTM");
*IFR=0x010;//´®¿Ú²¿·ÖÊôÓÚµÚÎ弶ÖжÏ
         switch (*PVIR)     //¸ù¾ÝÖжÏÏòÁ¿¼Ä´æÆ÷PVIRµÄÖµÇø±ðÊǽÓÊÕ»¹ÊÇ·¢ËÍÖжÏ
         {
case 6:UartRec( );  //Èç¹&ucircIVR=6£¬Ôò·¢ÉúÁ˽ÓÊÕÖжϣ¬Ö´ÐнÓÊÕ·þÎñ³ÌÐò
        case 7:UartSent( );   //Èç¹&ucircIVR=7£¬Ôò·¢ÉúÁË·¢ËÍÖжϣ¬Ö´Ðз¢ËÍ·þÎñ³ÌÐò
         }
         asm(" clrc INTM");   
}
//µ±ÓÉÓÚ¸ÉÈŶøÒýÆðÆäËüÖжÏʱ£¬ÖжϽøÈë´Ë³ÌÐòÖ±½Ó·µ»ØÖ÷³ÌÐò
void  interrupt  nothing()
{
   return;
}






 楼主| 发表于 2005-12-1 14:06:53 | 显示全部楼层

看看这 怎么收不全 数据???

void   UartRec()                             //½ÓÊÕ·þÎñ³ÌÐò
{       ii=0;
receive[ii++] = *SCIRXBUF;//ÒÀ´Î½ÓÊÕ×Ö·û
}
发一串 下来
这里只能收到  一个字节?
怎么回事?
DSP 的中断  是 进入 收的函数里  把数据都收完 才出中断???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-9-30 02:24 , Processed in 0.015511 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表