interuption USART

Bonsoir, je recherche la méthode afin de faire fonctionner l'interruption UART.
Le projet étant de recevoir des informations via un module bluetooth j'ai trouvé sur le net :
ISR(USART_RX_vect) mais je n'arrive pas a comprendre comment le faire fonctionner. Quelqu'un pourrais m'aider?

merci d'avance.

edit: arduino Nano

La classe Serial utilise déjà une réception par interruptions.
Je ne vois pas ce que tu espères faire de mieux que Serial.

Je te conseille plutôt un tuto sur la réception série. Par exemple Ecouter le Port Série ou un keypad (applicable à 1 flux de données asynchrone ) - Tutoriels et cours - Arduino Forum

Merci pour ces réponse rapide. hbachetti mon but est d'utiliser la routine d’interruption pour ne pas faire devoir vérifier si on a reçu qqch

Serial.available() est là pour cela.

Si tu écris toi-même une routine d'interruption il te faudra un buffer, alimenté par l'ISR.
Et dans l'application il te faudra une routine read(), et éventuellement une routine available().
Afin de t'éviter de réinventer la roue :confused: et aussi de longues séances de test.

Je connais un seul cas où l'écriture d'une routine ISR spéciale est intéressante, le cas d'un protocole série.
Les caractères sont reçus dans la routine ISR.
Le checksum est calculé dans la routine ISR.
L'acquittement ACK ou NACK est renvoyé dans la routine ISR.
La trame est mise à disposition de l'application seulement si elle est OK.

Sous Linux les protocoles série du genre SLIP, PPP, etc. sont écrits ainsi.
On parle alors de line discipline. Il s'agit d'un pseudo-driver qui vient se plugger sur le driver série standard TTY à l'aide d'un appel IOCTL.

On utilise aussi une line discipline dans le cas où le driver TTY standard est trop lourd, car il effectue pas mal de traitements liés aux terminaux. On vient donc brancher un pseudo-driver minimaliste qui a des performances plus élevées.

Mais la classe Serial ARDUINO est trop simple pour justifier ce genre de chose.