Go Down

Topic: [SoftwareSeiral] y-a-il une limite de buffer? (Read 543 times) previous topic - next topic

pierrot10

Dec 27, 2014, 06:51 pm Last Edit: Dec 27, 2014, 06:55 pm by pierrot10
Bonjour,
J'ai un petit problème et je me demande si je n'envoie pas trop de caracrtere dans mon serial.

Je declare mon serial ainsi:

Code: [Select]
SoftwareSerial _cell(10,11);

(Je mets pas tout le code, je pense que ce que je mets est suffisent, si non dite le moi)

J'ai ces donnée a envoyé

Quote
char ckd[]=AT+HTTPPARA=URL,http://92.107.000.000/demo_sim908.php?g="
char frame[]="2,235949,0.000000,N,0.000000,E,0,0,99.98";
Si en suite je fais ceci


Code: [Select]
_cell.print(ckd);
 _cell.print(frame);


Ca fonctionne, mais si j'ajoute un caractere à 'frame',
Quote
char ckd[]=AT+HTTPPARA=URL,http://92.107.000.000/demo_sim908.php?g="
char frame[]="2,235949,0.000000,N,0.000000,E,0,0,99.981";
ca plante. La commande AT+HTTPPARA retourne une erreur comme quoi l'URL ne peut pas etre trouvée.

Je me demande si SoftwareSerial a une limite

J'ai lu ceci
Quote
This hardware allows the Atmega chip to receive serial communication even while working on other tasks, as long as there room in the 64 byte serial buffer.
Mais je ne suis pas certain que ca me concerne car dans mon cas, frame à 40 caractere et cmd+frame (sans le derniere cacartere ajouté) fait 56, donc je suis encore dans la norme.
Il ne suffit pas de tout savoir, la persévérance, c'est déjà presque tout!
You can not know everything, perseverance, it is almost everything!

guix

Bonjour,

Post ton code complet, ainsi qu'un descriptif du matériel que tu utilises.

A première vue ça ressemble à un problème de mémoire insuffisante. Pas d'avertissement rouge lors de la compilation?

La première chose à essayer est d'utiliser Serial au lieu de "_cell" pour debugger. Si le moniteur série de l'IDE arduino affiche le string correctement, c'est un problème avec ton "_cell" dont tu ne dis rien (ce dont je doute mais sait-on jamais). Sinon, tu devra utiliser moins de mémoire, par exemple en stockant ces strings dans la progmem.


infobarquee

bonjour,
dans le fichier SoftwareSerial tu as une ligne ou tu vas trouver 64
modifie en 128
ca aidera déjà

par contre il faudrait avec tout le code et savoir combien il prend en mémoire.
si tu n'as pas assez, ca peut faire planter aussi
AUCUNE AIDE PAR MP

guix

Le buffer sert seulement pour la réception, pas pour l'envoi, et en quoi ça aiderais de changer 64 en 128? Le seul changement c'est que ça utilisait encore plus de ram :smiley-confuse:

infobarquee

AUCUNE AIDE PAR MP

Go Up