Hjelp meg til Filter streng i UART + Codevision

F

firefoxvn

Guest
Hei, jeg vil filtrere streng som svar fra SIMCOM. Jeg har strengen: xxxxxxxx +12345678 xxxxxx. Strengen "+12345678" er at jeg ønsker. Jeg følgende måte: - Sjekk rx_counter = 0 - Lag array har 10 røye, array [0] starter fra "+" - Hvis (array = UDR) == CR, program break; - Sjekk om rx_counter == 0, kopi! strengen til en annen array har 10 tegn - Send det til LCD eller TX linje. Her er koden min:
Code:
 # define MAXCHAR 40 # define CR 13 røye int_buff [MAXCHAR]; void check_SMS () / / Sjekk SMS sender saken {usignert int i ;/ / Create int var røye innhold [10] ;/ / skape array har 10 tegn i = 0 ;/ / set i = 0 int_buff [0] = '+' ;/ / opprette array int_buff [0] starter fra "+" while ((i0)) / / {if ((int_buff [i + +] = UDR) == CR) break ;/ / Programmet stopper når UDR = int_buff = CR, er å skrive CR-tasten og lik 13 i ASCII. delay_ms (500);} if (rx_counter == 0) / / hvis rx_counter = 0, sendestyrke er ferdig {strcpy (innhold, og int_buff [i]) ;/ / Kopiere data fra int_buff til innhold setter (innhold); lcd_gotoxy (0 , 0); lcd_puts (innhold) ;/ / skriv ut det til LCD delay_ms (500);}
Men det fungerte ikke, jeg forstår ikke koden min var feil, eller måten jeg tror var feil. Hjelp meg med å fikse koden, takk. Takk for lesing og beklager for engelsk min. Jeg er utlending.
 
vel y ikke prøve denne metoden! her er hvordan jeg kontrollerer en samtale eller sms, og hvis samtalen så extaract nummeret ... det er bare en del av et testprogram sin for u å ha en idé og dens arbeid
Code:
 i = 0; for (; ;) {abcce: usart_buff [i] = USART0_Receive (); if (usart_buff [i] == '+') {usart_buff [i] = USART0_Receive (); if (usart_buff [i] == 'C') {usart_buff [i] = USART0_Receive (); if (usart_buff [i] == 'L') {do {usart_buff [i] = USART0_Receive ();} while (usart_buff [i] = ':'!); USART0_Receive (); / / USART0_Receive (); USART0_Receive (); / / do {i = 7; for (int d = 0; d
 

Welcome to EDABoard.com

Sponsor

Back
Top