Debug Serial para programa resetar o buffer quando houver tamanhos errados na mensagem

Dependencies:   pulga-lorawan-drv PingPong-P2P-ClickButtonToWork-SX1272

Committer:
pancotinho
Date:
Fri Mar 19 20:26:32 2021 +0000
Revision:
7:37dc9ce68914
Parent:
6:c305f2aa79a4
Child:
8:856f7a8cc20c
changes for serial comm

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cdupaty 0:9859cc8476f2 1 #include "mbed.h"
pancotinho 7:37dc9ce68914 2 #include "serial.h"
pancotinho 7:37dc9ce68914 3 #include "lora.h"
cdupaty 0:9859cc8476f2 4
cdupaty 2:4eef0eca4d26 5 ///////////////////////////////////////
cdupaty 2:4eef0eca4d26 6 // Globals variables
cdupaty 2:4eef0eca4d26 7 ///////////////////////////////////////
marcoantonioara 3:cbe3f441353e 8
pancotinho 7:37dc9ce68914 9 //declaracoes gerais
pancotinho 7:37dc9ce68914 10
marcoantonioara 3:cbe3f441353e 11 InterruptIn dio0(P0_12);
marcoantonioara 3:cbe3f441353e 12 DigitalIn button1(P1_11);
marcoantonioara 3:cbe3f441353e 13
marcoantonioara 3:cbe3f441353e 14 EventQueue queue;
marcoantonioara 3:cbe3f441353e 15
pancotinho 7:37dc9ce68914 16 void serial_post_to_queue(void);
pancotinho 7:37dc9ce68914 17
marcoantonioara 3:cbe3f441353e 18
pancotinho 7:37dc9ce68914 19 void serial_rx(){
pancotinho 7:37dc9ce68914 20 if(pc.readable()){
pancotinho 7:37dc9ce68914 21 pc.printf("rx: %c\n", pc.getc());
pancotinho 7:37dc9ce68914 22 }
pancotinho 7:37dc9ce68914 23 pc.attach(&serial_post_to_queue, RawSerial::RxIrq);
pancotinho 7:37dc9ce68914 24 return;
pancotinho 7:37dc9ce68914 25 }
pancotinho 7:37dc9ce68914 26
pancotinho 7:37dc9ce68914 27 void serial_post_to_queue(void){
pancotinho 7:37dc9ce68914 28 //disable serial rx interrupt
pancotinho 7:37dc9ce68914 29 pc.attach(NULL, RawSerial::RxIrq);
pancotinho 7:37dc9ce68914 30 //enqueue the serial rx reception as a normal task
pancotinho 7:37dc9ce68914 31 queue.call(SerialRx);
pancotinho 7:37dc9ce68914 32 return;
pancotinho 7:37dc9ce68914 33 }
marcoantonioara 3:cbe3f441353e 34
marcoantonioara 3:cbe3f441353e 35
marcoantonioara 5:ef21a65a3450 36 int main(void) {
pancotinho 7:37dc9ce68914 37
marcoantonioara 5:ef21a65a3450 38 ///////////////////////////////////////
marcoantonioara 5:ef21a65a3450 39 // Configuration
marcoantonioara 5:ef21a65a3450 40 ///////////////////////////////////////
pancotinho 7:37dc9ce68914 41
marcoantonioara 3:cbe3f441353e 42
pancotinho 7:37dc9ce68914 43 pc.printf("init\n");
pancotinho 7:37dc9ce68914 44 pc.baud(9600);
pancotinho 7:37dc9ce68914 45 pc.printf("config9600\n");
pancotinho 7:37dc9ce68914 46 //enable serial rx interrupt
pancotinho 7:37dc9ce68914 47 pc.attach(&serial_post_to_queue, RawSerial::RxIrq);
marcoantonioara 5:ef21a65a3450 48
marcoantonioara 5:ef21a65a3450 49 //____Configuration Lora
marcoantonioara 3:cbe3f441353e 50 Thread eventThread;
marcoantonioara 3:cbe3f441353e 51 eventThread.start(callback(&queue, &EventQueue::dispatch_forever));
marcoantonioara 3:cbe3f441353e 52
marcoantonioara 5:ef21a65a3450 53 dio0.rise(queue.event(&print_packet)); //configure interrupt rotine ro recieve packet
marcoantonioara 3:cbe3f441353e 54 setup(); //configura sx1272
marcoantonioara 5:ef21a65a3450 55
marcoantonioara 5:ef21a65a3450 56
marcoantonioara 3:cbe3f441353e 57 sx1272.writeRegister(REG_OP_MODE,133); //leitura continua
marcoantonioara 5:ef21a65a3450 58 sx1272.writeRegister(REG_IRQ_FLAGS_MASK,187);//configure interrupt mask to interrupt only when a packet receive and packet envied
afzalsamira 6:c305f2aa79a4 59
marcoantonioara 3:cbe3f441353e 60
marcoantonioara 5:ef21a65a3450 61
marcoantonioara 5:ef21a65a3450 62
marcoantonioara 5:ef21a65a3450 63 while(1){
afzalsamira 6:c305f2aa79a4 64
marcoantonioara 5:ef21a65a3450 65 if (!button1){
pancotinho 7:37dc9ce68914 66
afzalsamira 6:c305f2aa79a4 67 printf("SENDING PING\n");
pancotinho 7:37dc9ce68914 68 send_data(PING);
marcoantonioara 5:ef21a65a3450 69 }
marcoantonioara 5:ef21a65a3450 70
marcoantonioara 3:cbe3f441353e 71 wait_ms(50);
marcoantonioara 3:cbe3f441353e 72 }
marcoantonioara 3:cbe3f441353e 73
marcoantonioara 3:cbe3f441353e 74 }