Serial.print Vs Serial.write

0 views
Skip to first unread message

Jessia Adachi

unread,
Aug 5, 2024, 5:11:58 AM8/5/24
to ciabhakasflum
Iknow that the function "HAL_UART_Transmit(&huart,Data, size, 100)" works simalarly as serial.write. Do someone know how to make your own "serial.print"? if Cube IDE has a similair function, it would be also good for me.

En nuestro blog de Joober hemos estado hablando de la comunicacin serie . Sin embargo es necesario profundizar en el tema si deseamos un control de muchos de los aspectos que no tocamos en los otros post. Una de las cosas que nos podemos preguntar es que diferencia hay entre el Serial.print() o Serial.println() y el Serial.write().


Lo primero que hay que saber es que existe un cdigo de caracteres basado en el alfabeto latino llamado ASCII en el que un nmero decimal del 0 al 255 se corresponde con un carcter. Por ejemplo, el nmero 87 se corresponde a la letra W.


Para ver las diferencias, lo mejor es probar a ver que sucede en los distintos casos. Para ello, introduciremos dentro de los parntesis de la funcin Serial.write y Serial.print, valores, caracteres y cadenas de texto. Esto de introducir algo dentro de una funcin se denomina tcnicamente introducir un argumento.


La diferencia clave es que el Serial.write() manda un nico valor en formato ASCII . En cambio, el Serial.Print() divide el 84, por un 8 y un 4. Primero manda el 8 en formato ASCII, luego el 4 en su equivalente tambin en ASCII. Cuando llega al monitor serie, reconvierte cada uno de los datos en ASCII a decimal formando el valor 84. Por lo tanto, al enviar un valor entero con el Serial.write() lo que enviaremos ser un nico valor en formato ASCII.


Acabamos de ver que el Serial.write, transforma los argumentos a su equivalente en ASCII o los mantiene en caso de los Strings o caracteres. Sin embargo, lo que hace el serial.print() o Serial.println() es:


Finalmente la forma en que guardamos una variable, puede inducir a error. Una cosa es escribir algo dentro del parntesis (el argumento) y la otra es la forma que almacenamos el dato. Es decir, imaginemos lo siguiente:


Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La informacin de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qu secciones de la web encuentras ms interesantes y tiles. Para ms informacin, consulta nuestra poltica de Cookies y nuestra poltica de privacidad.


I have a problem with the function Serial.write() I was testing my connection with python, and I can send numbers, words, or letters, but when I try to send the value of variable the function Serial. write gives me an error. So could you tell me what is happening?


If you want to send string means you directly enter the string in serial.write(). while giving the string directly into the serial.write() then it will take that string as const char* not as a string type

3a8082e126
Reply all
Reply to author
Forward
0 new messages