485通讯从机接收程序(带帧校验)

485通讯从机接收程序(带帧校验)

ID:37929133

大小:38.50 KB

页数:7页

时间:2019-06-03

485通讯从机接收程序(带帧校验)_第1页
485通讯从机接收程序(带帧校验)_第2页
485通讯从机接收程序(带帧校验)_第3页
485通讯从机接收程序(带帧校验)_第4页
485通讯从机接收程序(带帧校验)_第5页
资源描述:

《485通讯从机接收程序(带帧校验)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、///////////////////////////////////////////////////////////////////////////////////从机程序//01数据帧//02命令帧//03功能帧01确认02否认#include#include#include#include#include#include#definemyaddr0x01  /

2、/定义本机地址#definerx_485();asm("cbi0x13,2");//portd.2清零改为接收状态#definetx_485();asm("sbi0x13,2");//portd.2置位改为发送状态volatilestructconn{unsignedcharbuf[70];unsignedchardata[64];unsignedcharsrcadd;//源地址unsignedcharaimadd;//目的地址unsignedchartp;//帧类型intnum;inttmp;unsignedcharv

3、er;//验证码;unsignedcharerr;//错误码;  01:帧校验错}tx,rx;volatileunsignedcharcom;//命令constunsignedcharflash_str[]PROGMEM="0123456789";ISR(USART_RXC_vect){    rx.buf[rx.tmp]=UDR;  /*test  if(rx.tmp==0&&rx.buf[rx.tmp]=='t')  {    totx();    tx.num=16;    strcpy(tx.buf,"canih

4、elpyou");    tx.buf[15]=0x0D;    UCSRB

5、=(1<4)&&(rx.tmp==rx.buf[3

6、]+4)&&(rx.buf[rx.tmp]!=rx.ver))//验证错误  {    //当接收结束后,什么事情都不干,就等待接收。    rx.err=0x01;  };    if((rx.tmp>4)&&(rx.tmp==rx.buf[3]+5)&&(rx.buf[rx.tmp]==0xcc)&&rx.err==0)//正常结束  {    //帧类型分情况    //否认帧还是确认帧还是其它帧    TCCR2=0x00;    //PORTA+=1;    if(rx.buf[2]!=3)     {    

7、  //发送确认帧      tx.aimadd=rx.buf[1];      tx.srcadd=myaddr;      tx.tp=0x03;      tx.num=1;      tx.data[0]=01;      tx_init();      asm("sei");      tx_send();      com=23;      //处理接收到的数据      //延时一段时间,发送新数据     }    else     {      if(rx.buf[3]==0x02)//收到否认帧   

8、   {       tx_resend();      }     }     return;    }  rx.ver^=rx.buf[rx.tmp];  rx.tmp++;  timer2_init();//测试什么时候传送结束};ISR(TIMER2_COMP_vect){//发生此中断说明通讯没有正常结束UCSRB&=~(1<

9、.tp=0x03;  tx.num=1;  tx.data[0]=02;//否认帧  tx_init();  tx_send();  }//延一下时//发送确认帧还是否认帧,如果是确认帧则中止计时器1,如果是否认帧则要求进行重发,并且};ISR(USART_UDRE_vect){UDR=tx.buf[tx.tmp];

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。