嵌入式课设报告can总线与gps模块数据通信(编辑修改稿)内容摘要:

m,char *str) { int i,j=0。 int len=strlen(str)。 for(i=0。 ilen。 i++) { if(str[i]==39。 ,39。 )j++。 if(j==num)return i+1。 } return 0。 } static void UTC2BTC(date_time *GPS) { //*************************************************** //如果秒号先出 ,再出时间数据 ,则将时间数据 +1 秒 GPSsecond++。 //加一秒 if(GPSsecond59){ GPSsecond=0。 GPSminute++。 if(GPSminute59){ GPSminute=0。 GPShour++。 } } GPShour+=8。 if(GPShour23) { GPShour=24。 GPSday+=1。 if(GPSmonth==2 || GPSmonth==4 || GPSmonth==6 || GPSmonth==9 || GPSmonth==11 ){ if(GPSday30){ GPSday=1。 GPSmonth++。 } } else{ if(GPSday31){ GPSday=1。 GPSmonth++。 } } if(GPSyear % 4 == 0 ){ if(GPSday 29 amp。 amp。 GPSmonth ==2){ GPSday=1。 GPSmonth++。 } } else{ if(GPSday28 amp。 amp。 GPSmonth ==2){ GPSday=1。 GPSmonth++。 } } if(GPSmonth12){ GPSmonth=12。 GPSyear++。 } } } include include ../inc/ include ../inc/sys/ include inc/drv/ include include include ../ucosii/ include ../ucosii/ define FALSE 0 define TRUE 1 volatile int STOP=FALSE。 GPS_INFO gps_info。 int GET_GPS_OK=FALSE。 char GPS_BUF[1024],*rxmsg。 OS_EVENT *mbox。 define rULCON2 (*(volatile unsigned *)0x50008000)//p317 define rUCON2 (*(volatile unsigned *)0x50008004)//p318 define rUFCON2 (*(volatile unsigned *)0x50008008)//p320 define rUTRSTAT2 (*(volatile unsigned *)0x50008010)//p322 define rUERSTAT2 (*(volatile unsigned *)0x50008014)//p323 define rUFSTAT2 (*(volatile unsigned *)0x50008018)//p324 define rURXH2 (*(volatile unsigned *)0x50008024)//326 define rUBRDIV2 (*(volatile unsigned *)0x50008028)//327 /**/ /* modem input handler */ void show_gps_info(void * Id) { char txmsg。 INT8U err。 while(1){ rxmsg=OSMboxPend(mbox,0,amp。 err)。 gps_parse(rxmsg,amp。 gps_info)。 show_gps(1,amp。 gps_info)。 //1 为发送数据, 0 为接收数据。 OSTimeDly(50)。 } } /**/ /* modem input handler */ void receive(void * Id) { int i=0,counter=0。 char c。 char buf[200]。 GPS_INFO GPS。 Uart_Init(2,4800)。 OpenUartRev(2)。 hudelay(100)。 mbox=OSMboxCreate((void *)0)。 while (1) { while(1){ if(c=Uart_Getch(2)){ buf[i++] = c。 if(i=200){//防止 buf[]越界 i=0。 break。 } } if(c == 39。 \n39。 ){ buf[i]=0。 break。 } } if(buf[0] == 39。 $39。 ){ i=0。 OSMboxPost(mbox,(void *)buf)。 } OSTimeDly(1000)。 } } include../ucosii/ /* uC/OS interface */ include ../ucosii/add/ include ../inc/ include ../inc/sys/ include ../src/gui/ include include include ../inc/ include ../inc/ pragma import(__use_no_semihosting_swi)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。