LPC23XX串口通信协议_第1页
LPC23XX串口通信协议_第2页
LPC23XX串口通信协议_第3页
LPC23XX串口通信协议_第4页
LPC23XX串口通信协议_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、lpc23xx串口通信有要工程的同志可以找我!/*串口接收部分函数*/void configuration(uint8 revchar) if (revchar = ) /* 协议头 */ config_buffer0 = ; config_len = 1; else if (revchar = ) /* 协议结束 */ config_bufferconfig_len=; cmd_len=config_len+1; config_len=0; else config_bufferconfig_len=revchar; config_len+; /*串口中断函数*/void _irq uart3

2、irq(void) uint8 iir = 0; uint8 temp = 0; while (iir=u3iir)&0x01) = 0) switch (iir & 0x0e) case 0x02:break; case 0x04: temp = u3rbr; uart3_bufferuart3_len = temp; uart3_len+; if (uart3_len uart3_size) uart3_len = 0; configuration(temp); break; case 0x06:break; case 0x0c:break; default:break; vicvecta

3、ddr = 0; /*主函数*/#include config.h/*变量声明*/uint8 obu_id5;uint8 gps_send_gap;uint8 apn_len,port_len,ip_len;char port5;char ip16;char apn32;extern uint8 config_len;extern uint8 set_len;extern uint8 config_buffer80;extern uint8 gps_buffergps_data_size;/*函数声明*/extern void uart3putstring(uint8 *data,uint16

4、 nbyte);extern void eepromw(uint8 *mcu_address,uint32 e2prom_address,uint32 count);extern void eepromr(uint8 *mcu_address,uint32 e2prom_address,uint32 count);/* function: obuidcovert description: 车台编号转换 calls: uart3putstring,eepromw; input: 无 output: 无 */void obuidcovert (char * str)uint8 i;for(i=0;

5、*str!=0;i+) obu_idi=(*str+)-0)4;obu_idi+=(*str+)-0);/* function: tsetprocess description: 测试函数 calls: uart3putstring,eepromw; input: 无 output: 无 */void tsetprocess(void) char temp20=0; uint8 i,j,len,write_flag; write_flag=0; if(memcmp(config_buffer,(uint8 *)obuid,6)=0) uart3putstring(uint8 *)rn,2);

6、uart3putstring(uint8 *)config_buffer,set_len); sscanf(char *)config_buffer,%*dd%, temp); len=strlen(temp); if(len10) write_flag=1; uart3putstring(uint8 *)rn-车台id号设置失败-rn-请重新设置-rn, strlen(rn-车台id号设置失败-rn-请重新设置-rn); else if(len=10) for(i=0;i9)|(tempi32)|(len=0) write_flag=1; uart3putstring(uint8 *)rn-

7、apn设置失败-rn-请重新设置-rn, strlen(rn-apn设置失败-rn-请重新设置-rn); if(write_flag=0) apn_len=len; uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)apn,apn_len); eepromw(&apn_len,apn_len_addr,1); eepromw(uint8 *)apn,apn_addr,apn_len); uart3putstring(uint8 *)rn-apn设置成功-rn,strlen(rn-apn设置成功-rn); write_flag=0; mem

8、set(config_buffer,0,sizeof(config_buffer); else if (memcmp(config_buffer,(uint8 *)port&ip:,9)=0) uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); sscanf(char *)config_buffer,%*:%, port); sscanf(char *)config_buffer,%*,%, ip); len=strlen(port); if(len5)|(len=0) write_flag=

9、1; uart3putstring(uint8 *)rn-端口设置失败-rn-请重新设置-rn, strlen(rn-端口设置失败-rn-请重新设置-rn); else if(len0) for(i=0;i9)|(porti15)|(len=0) write_flag=1; uart3putstring(uint8 *)rn-ip设置失败-rn-请重新设置-rn, strlen(rn-ip设置失败-rn-请重新设置-rn); else if(len0) for(i=0;i9)|(ipi3) write_flag=1; uart3putstring(uint8 *)rn-ip设置失败-rn-请重

10、新设置-rn, strlen(rn-ip设置失败-rn-请重新设置-rn); if(write_flag=0) ip_len=len; eepromw(&ip_len,ip_len_addr,1); eepromw(uint8 *)ip,ip_addr,ip_len); uart3putstring(uint8 *)ip,len); uart3putstring(uint8 *)rn-ip设置成功-rn,strlen(rn-ip设置成功-rn); write_flag=0; memset(config_buffer,0,sizeof(config_buffer); else if (memcm

11、p(config_buffer,(uint8 *)gpsgap:,8)=0) io1clr = usl_led; uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); uart3putstring(uint8 *)rn,2); sscanf(char *)config_buffer,%*:%s, temp); len=strlen(temp); gps_send_gap=atol(temp); if(len5) write_flag=1; uart3putstring(uint8 *)rn-间隔

12、设置失败-rn-请重新设置-rn, strlen(rn-间隔设置失败-rn-请重新设置-rn); else if(len0) for(i=0;i9)|(tempi0) write_flag=1; uart3putstring(uint8 *)rn-间隔设置失败-rn-请重新设置-rn, strlen(rn-间隔设置失败-rn-请重新设置-rn); if(write_flag=0) gps_send_gap=atoi(temp); eepromw(&gps_send_gap,gps_gap_addr,1); uart3putstring(uint8 *)temp,strlen(temp); ua

13、rt3putstring(uint8 *)rn-间隔设置成功-rn,strlen(rn-间隔设置成功-rn); write_flag=0; memset(config_buffer,0,sizeof(config_buffer); else if (memcmp(config_buffer,(uint8 *)check,7)=0) uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); uart3putstring(uint8 *)rn-车台配置信息如下-rn,28); eepromr(uint8

14、 *)temp,obu_ascii_addr,10); uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)obuid ,8); uart3putstring(uint8 *)temp,10); uart3putstring(uint8 *)rn,3); eepromr(&apn_len,apn_len_addr,1); eepromr(&ip_len,ip_len_addr,1); eepromr(&port_len,port_len_addr,1); eepromr(uint8 *)apn,apn_addr,apn_len); uart

15、3putstring(uint8 *)apn ,8); uart3putstring(uint8 *)apn,apn_len); uart3putstring(uint8 *)rn,3); eepromr(uint8 *)temp,port_addr,port_len); uart3putstring(uint8 *)port ,8); uart3putstring(uint8 *)temp,port_len); uart3putstring(uint8 *)rn,3); eepromr(uint8 *)temp,ip_addr,ip_len); uart3putstring(uint8 *)

16、ip ,8); uart3putstring(uint8 *)temp,ip_len); uart3putstring(uint8 *)rn,3); eepromr(uint8 *)temp,gps_gap_addr,1); uart3putstring(uint8 *)gpsgap ,8); i=(uint8)temp0; sprintf(temp,%ds,i); uart3putstring(uint8 *)temp,strlen(temp); uart3putstring(uint8 *)rn,3); memset(config_buffer,0,sizeof(config_buffer

17、); else if (memcmp(config_buffer,(uint8 *)gpstest,9)=0) i=0; uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); uart3putstring(uint8 *)rn,2); while(i1000) i+; if(gps_buffer18=a) uart3putstring(uint8 *)rngps工作正常rn,strlen(rngps工作正常rn); continue; else uart3putstring(uint8 *)rn

18、gps工作不正常rn,strlen(gps工作不正常rn); break; memset(config_buffer,0,sizeof(config_buffer); else if (memcmp(config_buffer,(uint8 *)gsmtest,9)=0) io1set = sl_led; uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); uart3putstring(uint8 *)rn,2); memset(config_buffer,0,sizeof(config_bu

19、ffer); else if (memcmp(config_buffer,(uint8 *)rftest,8)=0) io1clr = sl_led; uart3putstring(uint8 *)rn,2); uart3putstring(uint8 *)config_buffer,set_len); uart3putstring(uint8 *)rn,2); memset(config_buffer,0,sizeof(config_buffer); else if (memcmp(config_buffer,(uint8 *)epromtest,12)=0) ; else if (memc

20、mp(config_buffer,(uint8 *)chargetest,12)=0) ; else ; memset(temp,0,sizeof(temp); memset(config_buffer,0,sizeof(config_buffer);通过关键字判断协议格式2.1 车台配置2.1.1 车台id设置指令 obuid7201300001例如:发送obuid7201300001,obuid后面为车台id号,固定10位,回复设置车载终端id成功或者设置车载终端id失败2.1.2 apn设置指令apn:xxxxx例如:发送apn:cmnet,设置apn为cmnet,回复apn设置成功或者

21、apn设置失败,apn为冒号之后的数据,注意apn最大长度为32字符,输入时切换到英文输入法半角状态。2.1.3 端口和ip设置指令 port&ip:xxxx,xx.xx.xxx.xx例如:发送port&ip:9950,58.61.218.86,可设置端口为9950,ip为58.61.218.86,回复端口和ip设置成功或者端口和ip设置失败,端口和ip地址为冒号号之后的数据,注意:端口最大长度为5,ip最大长度为15,输入时切换到英文输入法半角状态。2.1.4 gps上传间隔设置指令 gpsgap:xxxxxs例如:发送gpsgap:10s,设置为间隔10s上传,回复gps上传间隔设置成功或

22、者gps上传间隔设置失败,设置间隔时间为冒号之后的数据,最大长度为5位,最大时间间隔为65535,单位为s。2.2 车台配置查询指令 check例如:发送check,回复值如下:mode xxxxxxxxx 车台型号;obuid 720130001 车台id号;apn cmnet 车台apn;port 9950 车台端口;ip 58.61.218.86 车台ip;gpsgap 10s gps上传间隔;发送check指令得到的回复与车台配置信息相对应。3 gps模块测试3.1 gps模块测试指令 gpstest例如:发送gpstest,回复值如下:a. 发送指令gpstest,返回gps工作正常或者gps工作不正常 ; b. 正常定位gps灯为常亮;4 gsm模块测试4.1 gsm模块测试指令 gsmtest例如:发送g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论