Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
COMM-Protocol.cpp@3:59aca495ef45, 2022-05-03 (annotated)
- Committer:
- pinofal
- Date:
- Tue May 03 12:38:41 2022 +0000
- Revision:
- 3:59aca495ef45
Protocollo Base
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pinofal | 3:59aca495ef45 | 1 | #include "mbed.h" |
pinofal | 3:59aca495ef45 | 2 | |
pinofal | 3:59aca495ef45 | 3 | // dimensione del pacchetto di comunicazione tra PC e uC. esempio di 30 caratteri: 1/0 say goodbye to your sister |
pinofal | 3:59aca495ef45 | 4 | #define PACKETDIM 31 |
pinofal | 3:59aca495ef45 | 5 | |
pinofal | 3:59aca495ef45 | 6 | DigitalOut led(LED1); |
pinofal | 3:59aca495ef45 | 7 | DigitalOut Din(PB_9); |
pinofal | 3:59aca495ef45 | 8 | Serial pc(USBTX, USBRX, 9600); // seriale di comunicazione con il PC. Associati a PA_11 e PA_12 |
pinofal | 3:59aca495ef45 | 9 | |
pinofal | 3:59aca495ef45 | 10 | // Definizione periferica seriale |
pinofal | 3:59aca495ef45 | 11 | //Serial myBLE(PC_1, PC_0, 9600); //Tx, Rx, bps. per la configurazione bps = 38400. Di default HC05 comunica con bps = 9600 |
pinofal | 3:59aca495ef45 | 12 | |
pinofal | 3:59aca495ef45 | 13 | // indice per i cicli |
pinofal | 3:59aca495ef45 | 14 | int nIndex; |
pinofal | 3:59aca495ef45 | 15 | |
pinofal | 3:59aca495ef45 | 16 | // indice dell'array caRxPacket[] |
pinofal | 3:59aca495ef45 | 17 | volatile int nRxIndex; |
pinofal | 3:59aca495ef45 | 18 | // carattere in arrivo dal PC |
pinofal | 3:59aca495ef45 | 19 | volatile char caReadChar; |
pinofal | 3:59aca495ef45 | 20 | |
pinofal | 3:59aca495ef45 | 21 | // pacchetto ricevuto dal PC |
pinofal | 3:59aca495ef45 | 22 | char caRxPacket[PACKETDIM]; |
pinofal | 3:59aca495ef45 | 23 | int nRxPacketSize; |
pinofal | 3:59aca495ef45 | 24 | |
pinofal | 3:59aca495ef45 | 25 | void RxInterrupt(void) |
pinofal | 3:59aca495ef45 | 26 | { |
pinofal | 3:59aca495ef45 | 27 | // reset pacchetto ricevuto |
pinofal | 3:59aca495ef45 | 28 | nIndex=0; |
pinofal | 3:59aca495ef45 | 29 | for(nIndex=0;nIndex<PACKETDIM;nIndex++) |
pinofal | 3:59aca495ef45 | 30 | { |
pinofal | 3:59aca495ef45 | 31 | caRxPacket[nIndex]='\0'; |
pinofal | 3:59aca495ef45 | 32 | } |
pinofal | 3:59aca495ef45 | 33 | |
pinofal | 3:59aca495ef45 | 34 | // ricevi caratteri su seriale, se disponibili |
pinofal | 3:59aca495ef45 | 35 | while((pc.readable())) |
pinofal | 3:59aca495ef45 | 36 | { |
pinofal | 3:59aca495ef45 | 37 | pc.gets(caRxPacket,sizeof(caRxPacket)); |
pinofal | 3:59aca495ef45 | 38 | nRxPacketSize = strlen(caRxPacket); |
pinofal | 3:59aca495ef45 | 39 | //pc.printf("*** pc.readable = %2d \n\r",nRxPacketSize); |
pinofal | 3:59aca495ef45 | 40 | //pc.scanf("%s", &caRxPacket); |
pinofal | 3:59aca495ef45 | 41 | //+++pc.putc(pc.getc()); // read data from UART |
pinofal | 3:59aca495ef45 | 42 | |
pinofal | 3:59aca495ef45 | 43 | } |
pinofal | 3:59aca495ef45 | 44 | //pc.printf("%s",caRxPacket); |
pinofal | 3:59aca495ef45 | 45 | pc.printf("\n\rYou also say goodbye to yours tk\n\r"); |
pinofal | 3:59aca495ef45 | 46 | } |
pinofal | 3:59aca495ef45 | 47 | |
pinofal | 3:59aca495ef45 | 48 | int main() |
pinofal | 3:59aca495ef45 | 49 | { |
pinofal | 3:59aca495ef45 | 50 | pc.printf("\n\r*** Welcome ***\n\r"); |
pinofal | 3:59aca495ef45 | 51 | |
pinofal | 3:59aca495ef45 | 52 | pc.attach(&RxInterrupt,Serial::RxIrq); |
pinofal | 3:59aca495ef45 | 53 | |
pinofal | 3:59aca495ef45 | 54 | while(true) |
pinofal | 3:59aca495ef45 | 55 | { |
pinofal | 3:59aca495ef45 | 56 | led = !led; // Toggle LED |
pinofal | 3:59aca495ef45 | 57 | wait_ms(500); |
pinofal | 3:59aca495ef45 | 58 | } |
pinofal | 3:59aca495ef45 | 59 | } |