Kart+xxxxx // Radar_RTOS
Dependencies: Radar_RTOS mbed
Fork of Radar_RTOS by
UART_Radar.cpp
00001 #include "UART_Radar.h" 00002 #include "mbed.h" 00003 #include <string.h> 00004 Serial carte(PA_9, PA_10); //emission --- tx, rx 00005 00006 00007 void USART1_puts(char *text){ 00008 while(*text != '\0'){ 00009 00010 if(carte.writeable()){ 00011 carte.putc(*text); 00012 text++; 00013 } 00014 00015 } 00016 } 00017 00018 00019 void format(char *msg, char *msg_formated){ 00020 int somme=5; 00021 int i=0; 00022 msg_formated[0]=2; 00023 //pc.printf("\n\r"); 00024 while(msg[i]!=0){ 00025 somme= somme + msg[i]; 00026 msg_formated[i+1]=msg[i]; 00027 i++; 00028 } 00029 if(somme>255){ 00030 somme++; 00031 } 00032 somme=somme%256; 00033 msg_formated[i+1]=~somme; 00034 msg_formated[i+2]=3; 00035 msg_formated[i+3]=0; 00036 00037 //A supprimer 00038 /*i=0; 00039 while(msg_formated[i]!=0){ 00040 printf("[%d] ", msg_formated[i]); 00041 i++; 00042 }*/ 00043 } 00044 00045 00046 void send(char *data){ 00047 char trame[52]=""; 00048 format(data, trame); 00049 USART1_puts(trame); 00050 } 00051 00052 int receive(char *frame){ 00053 int I; 00054 unsigned int sommeBuffer; 00055 char r; 00056 Timer timeout; 00057 timeout.start(); 00058 while(1){ 00059 if(timeout.read_ms() > 100) return 2; 00060 if(carte.readable()){ 00061 r = carte.getc(); 00062 00063 switch(r){ 00064 case 2: //Start 00065 I=0; 00066 sommeBuffer=2; 00067 break; 00068 00069 case 3: //Stop 00070 frame[I]=0; 00071 sommeBuffer+=3; 00072 00073 if(sommeBuffer>255){ 00074 sommeBuffer++; 00075 } 00076 sommeBuffer=~sommeBuffer; 00077 sommeBuffer=sommeBuffer%256; 00078 00079 if(sommeBuffer==0){ //Les sommes concordent, les données sont valides 00080 frame[I-1]=0; 00081 return 0; 00082 }else{ //Message invalidé par la somme 00083 return 1; 00084 } 00085 00086 default : 00087 frame[I]=r; 00088 sommeBuffer+=r; 00089 I++; 00090 break; 00091 } 00092 } 00093 } 00094 } 00095 00096 int controle(char *frame){ 00097 if (*frame == 6) return 0; 00098 else return 1; 00099 }
Generated on Mon Jul 18 2022 05:46:16 by 1.7.2