Seriale Rx/Tx

Dependencies:   mbed

Committer:
pinofal
Date:
Tue May 03 12:39:29 2022 +0000
Revision:
3:d63922c90649
Seriale Rx/Tx

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pinofal 3:d63922c90649 1 #include "mbed.h"
pinofal 3:d63922c90649 2
pinofal 3:d63922c90649 3 DigitalOut led(LED1);
pinofal 3:d63922c90649 4 DigitalOut Din(PB_9);
pinofal 3:d63922c90649 5 Serial pc(USBTX, USBRX, 9600); // seriale di comunicazione con il PC. Associati a PA_11 e PA_12
pinofal 3:d63922c90649 6
pinofal 3:d63922c90649 7 // carattere in arrivo dal PC
pinofal 3:d63922c90649 8 volatile unsigned char cReadChar;
pinofal 3:d63922c90649 9
pinofal 3:d63922c90649 10
pinofal 3:d63922c90649 11 void RxInterrupt(void)
pinofal 3:d63922c90649 12 {
pinofal 3:d63922c90649 13 // ricevi caratteri su seriale, se disponibili
pinofal 3:d63922c90649 14 while((pc.readable()))
pinofal 3:d63922c90649 15 {
pinofal 3:d63922c90649 16 // leggi carattere e riscrivi carattere su UART
pinofal 3:d63922c90649 17 cReadChar = pc.getc();
pinofal 3:d63922c90649 18 pc.printf("\r\nRx [CHAR]: %c\n\r",cReadChar);
pinofal 3:d63922c90649 19 pc.printf("Rx [HEX]: %#x\n\r", cReadChar);
pinofal 3:d63922c90649 20 pc.printf("Rx [reverse BIN]: ");
pinofal 3:d63922c90649 21 for(int i = 0; i< 8; i++)
pinofal 3:d63922c90649 22 pc.printf("%d",((cReadChar>>i)&0x01));
pinofal 3:d63922c90649 23 pc.printf("\n\r");
pinofal 3:d63922c90649 24
pinofal 3:d63922c90649 25
pinofal 3:d63922c90649 26 }
pinofal 3:d63922c90649 27 }
pinofal 3:d63922c90649 28
pinofal 3:d63922c90649 29 //+++++++++
pinofal 3:d63922c90649 30 // MAIN
pinofal 3:d63922c90649 31 //+++++++++
pinofal 3:d63922c90649 32 int main()
pinofal 3:d63922c90649 33 {
pinofal 3:d63922c90649 34 pc.printf("\n\r*** Welcome TxRx ***\n\r");
pinofal 3:d63922c90649 35
pinofal 3:d63922c90649 36 // definisci callback di IRQ
pinofal 3:d63922c90649 37 pc.attach(&RxInterrupt,Serial::RxIrq);
pinofal 3:d63922c90649 38
pinofal 3:d63922c90649 39 // ciclo main
pinofal 3:d63922c90649 40 while(true)
pinofal 3:d63922c90649 41 {
pinofal 3:d63922c90649 42 led = !led; // Toggle LED
pinofal 3:d63922c90649 43 wait_ms(500);
pinofal 3:d63922c90649 44 }
pinofal 3:d63922c90649 45 }