Le Raspberry Pi Pico dispose d'un certain nombre de broches qui peuvent être configurées pour la communication UART (Universal Asynchronous Receiver/Transmitter). 

L'UART est un protocole de communication série qui permet l'échange de données entre le Raspberry Pi Pico et d'autres périphériques.


  


La méthode write() permet d'envoyer une chaîne d’octets.


La chaîne d’octets (ou séquence d'octet), type  bytes en MicroPython, est indiquée par le préfixe "b".

Attention, la chaîne d'octet s'affiche avec les symboles du code ASCII s'ils correspondent aux octets stockés. Exemple de représentation par MicroPython de la chaîne d'octets en décimal :

    • 72 101 108 108 111 33  sera représentée par  b'Hello!'                     (codes ASCII de 32 à 127)                                                
    • 108 121 99 195 169 101 sera représentée par  b'lyc\xc3\xa9e'            (UTF-8 permet de représenter le "é" sur 2 octets avec 0xC3 0xA9 soit 195 169 en décimal)


Pour envoyer un octet

"b", le caractère d'échappement "\" puis "x" suivi de la valeur en hexadécimal (0 à FF).

 25510 = FF16  --->  uart1.write(b'\xFF')


Pour envoyer plusieurs octets : 

255 2 65 soit en hexadécimal 0xFF 0x02 0x041 --->  uart1.write(b'\xFF\x02\x41')    (pas de 0 devant les x)


Pour envoyer plusieurs octets à partir d'un tableau d'entiers :

       On utilise la fonction bytes().

       listeEntiers = [255, 2, 65]    ou  listeEntiers = [0xFF, 0x2, 0X41]  ou  listeEntiers = [0b11111111, 0b00000010, 0b01000001]

       chaineOctets= bytes(listeEntiers)

       uart1.write(chaineOctets)

       ou uart1.write(bytes([255, 2, 65] ))        


Pour envoyer le code UTF-8 (= ASCII de 0 à 127) de chaque caractère d'une chaîne de caractère :

       uart1.write(b'Hello!')

       ou uart1.write(bytes("Hello", "utf-8"))   avec la fonction bytes()                

ou uart1.write("Hello!".encode("utf-8"))   avec la méthode encode() 

   


Raspberry Pi Pico MicroPython UART communication série

Programme pour envoué des octets (byte en anglais) sur la broche 4 (repère UART1  shield Grove)


from machine import UART, Pin
from time import *

uart1 = UART(1, baudrate=9600, tx=Pin(4), rx=Pin(5))

while True:
    #envoi d'un octet
    uart1.write(b'\xFF')
 
    #envoi de plusieurs octets
    uart1.write(b'\xFF\x02\x41')
    
    listeEntiers = [255, 2, 65]    #ou  listeEntiers = [0xFF, 0x2, 0X41]  ou  listeEntiers = [0b11111111, 0b00000010, 0b01000001] 
    chaineOctets= bytes(listeEntiers)
    uart1.write(chaineOctets)

    #envoi de plusieurs octets correspondant au code UTF-8 des caractères d'une chaîne  
    uart1.write(bytes([255, 2, 65] ))
    
    uart1.write(b'Hello!')
    
    uart1.write(bytes("Hello", "utf-8"))  
    
    uart1.write("Hello!".encode("utf-8")) 
 


























Créé avec HelpNDoc Personal Edition: Outil de création d'aide complet