这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 2407,sci,nbsp,nbsp,rs232 2407 sci &

共2条 1/1 1 跳转至

2407,sci,nbsp,nbsp,rs232 2407 sci  rs232 通信程序

院士
2006-09-17 18:14:16     打赏
2407,sci,nbsp,nbsp,rs232 2407 sci  rs232 通信程序



关键词: rs232     通信     程序    

院士
2006-12-22 22:43:00     打赏
2楼
问 小弟从这里学到了不少知识就把自己编的小程序拿来共享啊
请各位大虾以及和小弟一样的虾米过目啊
好用,我已经调过了,嘿嘿
#include "2407c.h"
//系统初始化
#pragma CODE_SECTION(Init,".flash");     
void Init()
{
*SCSR1=0X83FE;
*WDCR=0X0E8;
asm(" SETC INTM");
asm(" CLRC OVM");
asm(" CLRC CNF");
asm(" CLRC SXM");
*IMR=0X0000;
*IFR=0X0FFFF;
}
//SCI初始化
#pragma CODE_SECTION(InitSci,".flash");    
void InitSci()
{
*MCRA=(*MCRA)|0X3;
*SCICCR=0X7;
*SCICTL1=0X0013;
*SCICTL2=0X0003;
*SCIHBAUD=0X2;
*SCILBAUD=0X07;//波特率4800
*SCICTL1=0X33;
*SCIPRI=0X60;
*IMR=(*IMR)|0X10;
asm(" CLRC INTM");
}
//
#pragma CODE_SECTION(Send,".flash");
void Send(char *var)
{
int i;
for(i=0;i<=strlen(var);i++)
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;*SCICTL2=(*SCICTL2)&0X0C0;
&nbsp;&nbsp;&nbsp;&nbsp;while((*SCICTL2)!=0X0C0);
&nbsp;&nbsp;&nbsp;*SCITXBUF=var[i];
&nbsp;&nbsp;}
}
#pragma CODE_SETION(Uartrec,".flash");
void Uartrec()
{
&nbsp;&nbsp;static char receive[10],j=0;
&nbsp;&nbsp;receive[j++]=*SCIRXBUF;
&nbsp;&nbsp;if(j>9) j=0;
&nbsp;&nbsp;*IFR=0X0010;
&nbsp;&nbsp;&nbsp;asm(" CLRC INTM");
}

//
main()
{
Init();
InitSci();
Send("ni hao");
while(1);


}
#pragma CODE_SECTION(Uarttr,".gisr");
void interrupt Uarttr()
{
&nbsp;&nbsp;switch(*PVIR)
&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;case6:Uartrec();break;
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;default:break;
&nbsp;&nbsp;}
&nbsp;&nbsp;}
&nbsp;&nbsp;
#pragma CODE_SECTION(nothing,".gisr");
void interrupt nothing()
{
return;
} 1: 看不懂,看不懂。可能是语法还没有学会吧。 2: 每个子程序前的#pragma CODE_SECTION是什么意思是把下面的程序放到#pragma CODE_SECTION后面说明的存储器空间里吗?
这是在哪本书看到的啊 3: 对#pragma是伪指令可以把程序或者变量放到你定义的段中 4: 晕晕 5: 我得sciDSP一通信就死机我用sci 接收信号可是接收处设置断点,DSP总是到不了断点,我停止运行程序后,会系统复位,或者让退出环境,如果取消断点就会提醒不能取消,真是奇怪了。原来做的那块板子没有问题的,现在做的这块由于太小是不是信号干扰?
sci接收信号线和复位信号线靠的较近。
大家看看啥问题呀,着急,调了很多天了,没有进展。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]