PIC E SIM340

13 Anni 1 Mese fa - 13 Anni 1 Mese fa #26 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC E SIM340

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 1 Mese fa #27 da davix10
Risposta da davix10 al topic Re: PIC E SIM340
Ok grazie per la risposta ora è chiaro ma come potrei fare per creare una stringa dalla ricezione dei dati sull'USART per poi confrontarla?

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • davix10
  • Senior Member
  • Senior Member
Di più
13 Anni 1 Mese fa #28 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC E SIM340
...questo puo' essere un buon esercizio! :)

Credo che una stringa, ovvero un messaggio di risposta dal modulo sia un ritorno a capo, ovvero il carattere ASCII numero 13.
Ogni carattere che leggi che non sia un ritorno a capo lo metti in un array e poi incrementi l'indice dell'array in maniera da scrivere il prossimo carattere in una nuova cella dell'array.
Quando ricevi il ritorno a capo aggiungi il carattere '/0' all'ultimo elemento della stringa e fai il confronto con il messaggio che vuoi...

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 1 Mese fa - 13 Anni 1 Mese fa #29 da davix10
Risposta da davix10 al topic Re: PIC E SIM340
Ma il ritorno a capo non dovrebbe essere solo alla fine? Con il comando WriteUSART (data); lui mi scrive OK e non solo O o solo K.

Io ho provato così:
unsigned char corretto [3]={'O','K','\0'};
data[0] = ReadUSART();

WriteUSART (data[0]);
data[1] = '\0';

if (strcmppgm2ram(corretto,data)==0)
Ultima Modifica 13 Anni 1 Mese fa da davix10.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • davix10
  • Senior Member
  • Senior Member
Di più
13 Anni 1 Mese fa #30 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: PIC E SIM340
Ciao,

Il Carriage return e' solo alla fine ma tu non sai quando arriverà. In generale se sei in ascolto di un messaggio e non sai quale sia, non sai quando arriverà il carattere ASCII 13.

WriteUSART se non ricordo male invia solo un byte. Dargli in pasto un array e' errato, e dovresti probabilmente avere una warning di tipo sospetto passato alla funzione. Non escludo che scrivere WriteUSART (data); non invii ne' O ne' K ma l'indirizzo dell'array, o meglio una parte di esso (1 byte).

L'esempio che hai riportato non funziona. Controlla i passi che ti avevo suggerito e quelli che fai.
Il buffer potresti implementarlo anche in maniera diversa ma il principio sara' lo stesso.
Non pensare in C ma nella logica che c'e' dietro, ovvero implementa un algoritmo.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login