单片机与上位机通信协议的制定

单片机与上位机通信协议的制定

ID:13691358

大小:48.00 KB

页数:6页

时间:2018-07-23

单片机与上位机通信协议的制定_第1页
单片机与上位机通信协议的制定_第2页
单片机与上位机通信协议的制定_第3页
单片机与上位机通信协议的制定_第4页
单片机与上位机通信协议的制定_第5页
资源描述:

《单片机与上位机通信协议的制定》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机与上位机通信协议的制定单片机和上位机的串口通信协议分为上行协议和下行协议,要分别制定!上行协议,即由单片机向上位机发送数据。下行协议,即由上位机向单片机发送数据。 而通信协议又要分固定长度和不定长度两种本文所介绍的协议属于简单的固定字长的通信协议! 下行协议由四个字节构成 起始字PRE命令字ORD值VAL结束字END附注1byte1byte1byte1byte BBHAAH(ORD_SATA)  单片机状态转换命令标识  01HEEH模式1:空闲  02HEEH模式2:温度采集  03HEEH模式3:温

2、度采集向上位机传送采集值  04HEEH模式4:PWM测试BBHDDH(ORD_PWM)valueEEHPWM占空比值修改指令BBHFFH(ORD_TEM)valueEEH目标温度控制指令 上表是简单的上位机对单片机的控制指令下述函数是C#中封装的串口通信类中的发送函数的封装       publicvoidSerSendCommu(byteorderDef,bytedata)//参数1为命令字,参数二为要发送的数                                                

3、           //据,需要时可直接调用       {           Byte[]BSendTemp=newByte[SEND_LENTH];           BSendTemp[0]=PRE;           BSendTemp[1]=orderDef;           BSendTemp[2]=data;           BSendTemp[3]=END;           this.serialPort1.Write(BSendTemp,0,SEND_LENTH);   

4、    }下位机中用中断方式接收字符,本文用的是GCC语言,下面是串口接收数据中断ISR(USART_RXC_vect)//串口接收中断{ unsignedcharstatus,data; status=UCSRA;    //**首先读取UCSRA的值,再读取UDR值,顺序不能颠倒,否则读取UDR后的UCSRA的                                                //值即会改变**   data=UDR; if(!Uart_RecvFlag)//判断缓存中的数据是

5、否读完,读完则接收指令 {  if((status&((1<

6、(1<

7、(1<

8、RT_END_STX)       Uart_RecvFlag=1;       break;   }  } } }在单片机主循环程序的最前部分进行指令译码 if(Uart_RecvFlag)//接收到命令  {      switch(rx_buffer[1])   {    case0xAA://单片机状态命令控制;      ucWorkStatue=rx_buffer[2];//指令数据         break;    case0xDD://PWM值修改指令      OCR2=rx_buffer

9、[2];          break;    case0xFF://初始温度设定      break;      }   Uart_RecvFlag=0;  }//随后进行执行指令  switch(ucWorkStatue)  {   case1://空闲模式          break;   case2://测量模式,但不输出         break;   case3://测量模式,由串口输出           break;   case4://PWM输出测试        break;    

10、default:     break;  }这样就可以利用串口对单片机进行在线命令控制了;上行协议的制定!和下行协议基本一致!在AVR单片机程序中定义了串口通信输出缓冲区,缓冲区的字长正好为协议的长度;//串口发送缓冲区变量声明volatileunsignedchartx_buffer[TX_BUFFER_SIZE];//定义串口发送缓冲区volatileunsignedchartx_wr_inde

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

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

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