
lab 5a
Dependencies: mbed mbed-rtos tsi_sensor SLCD
Diff: HC06_bluetooth.h
- Revision:
- 0:78b84e1ce9df
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HC06_bluetooth.h Tue Feb 18 21:16:23 2020 +0000 @@ -0,0 +1,154 @@ +#ifndef HC06_BLUETOOTH_H +#define HC06_BLUETOOTH_H + +Serial bt(PTE16, PTE17); + +char bt_c; +char bt_buffer[80]; +char bt_name[80]; +int bt_pin; +int bt_count; +int i; +int action; +int bt_baud[10]={0,1200,2400,4800,9600,19200,38400,57600,115200,230400}; +int bt_baud_select=4; + +int bt_baud_decode(int baud) +{ + int target_baud; + target_baud=0; + if(baud >= 1 && baud <= 9) + { + target_baud=baud; + } + else + { + for(int i = 1; i <=9, i++) + { + if(baud == bt_baud(i)) + { + target_baud=baud; + } + } + } + if(target_baud >0) + { + return(bt_baud(target_baud)); + } + else + { + return(-1); + } +} + +int bt_baud(int baud); +{ + int target_baud; + target_baud=bt_baud_decode(baud); + if(target_baud > 0) + { + bt.baud(bt_baud(target_baud)); + return(bt_baud(target_baud)); + } + else + { + return(-1); + } +} + +int bt_find_baud() +{ + + for(bt_baud_select=1; bt_baud_select<=9; bt_baud_select++) + { +// pc.printf("Trying case %1i: %i baud\n",bt_baud_select,bt_baud[bt_baud_select]); + bt.baud(bt_baud[bt_baud_select]); +// pc.printf("Sending \"AT\"\n"); + bt_count=0; + bt_buffer[0]=0; + bt_buffer[1]=0; + bt.printf("AT"); /*ask bluetooth for response, expect "OK" */ +// bt.printf("AT\r\n"); /*ask bluetooth for response, expect "OK" */ + + for( i=0; i<10000000; i++) + { + if(bt.readable()) + { + bt_buffer[bt_count]=bt.getc(); + pc.putc(bt_buffer[bt_count]); + if(bt_count==0 && bt_buffer[0]=='O') + {bt_count++;} + if(bt_count==1 && bt_buffer[1]=='K') + {bt_count++; break;} + } + } + if(bt_buffer[0]=='O' && bt_buffer[1]=='K') + { +// pc.printf("\nReceived \"OK\" at case %1i: %i baud\n",bt_baud_select,bt_baud[bt_baud_select]); + break; + } + else + { +// pc.printf("\nFailed to receive \"OK\" at case %1i: %i baud\n",bt_baud_select,bt_baud[bt_baud_select]); + } + } + if(bt_baud_select > 9) + { +// pc.printf("Unable to identify HC-06 Bluetooth baud rate.\nShutting down.\n"); + return(-1); + } + else + { + return(bt_baud[bt_baud_select]); + } +} + +int bt_default_baud(int baud); +{ + int target_baud; + target_baud=lcd_baud_decode(baud); + if(target_baud < 0) + { + return(-1); + } + bt_baud(bt_find_baud()); + bt.printf("AT+BAUD%1i",target_baud); + bt_baud(target_baud); + for( i=0; i<10000000; i++) + { + if(bt.readable()) + { + bt.getc(); + } + } + return(bt_baud[target_baud]); +} + +int bt_device_name(char bt_name[]) +{ + bt.printf("AT+NAME%s",bt_name); + for( i=0; i<10000000; i++) + { + if(bt.readable()) + { + bt.getc(); + } + } +} + +int bt_set_pin(int bt_pin) +{ + if(bt_pin < 0 || bt_pin > 9999) {return(-1);} + bt.printf("AT+PIN%04i",bt_pin); + for( i=0; i<10000000; i++) + { + if(bt.readable()) + { + bt.getc(); + } + } + +} + + +#endif //HC06_BLUETOOTH_H \ No newline at end of file