Seriale Rx/Tx
Dependencies: mbed
COMM-RxTx.cpp@3:d63922c90649, 2022-05-03 (annotated)
- Committer:
- pinofal
- Date:
- Tue May 03 12:39:29 2022 +0000
- Revision:
- 3:d63922c90649
Seriale Rx/Tx
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |