This program send an AT command to the HC05 module and shows the response into a terminal.
Dependencies: MODSERIAL
Fork of HC05_AT_mode by
main.cpp@0:7bb229e58814, 2012-05-31 (annotated)
- Committer:
- edodm85
- Date:
- Thu May 31 19:52:52 2012 +0000
- Revision:
- 0:7bb229e58814
- Child:
- 1:a11db105c379
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
edodm85 | 0:7bb229e58814 | 1 | /* |
edodm85 | 0:7bb229e58814 | 2 | * Author: Edoardo De Marchi |
edodm85 | 0:7bb229e58814 | 3 | * Date: 31-05-12 |
edodm85 | 0:7bb229e58814 | 4 | * Notes: AT command |
edodm85 | 0:7bb229e58814 | 5 | */ |
edodm85 | 0:7bb229e58814 | 6 | |
edodm85 | 0:7bb229e58814 | 7 | #include "mbed.h" |
edodm85 | 0:7bb229e58814 | 8 | #include "MODSERIAL.h" |
edodm85 | 0:7bb229e58814 | 9 | |
edodm85 | 0:7bb229e58814 | 10 | |
edodm85 | 0:7bb229e58814 | 11 | MODSERIAL pc(USBTX, USBRX); // tx, rx |
edodm85 | 0:7bb229e58814 | 12 | MODSERIAL blue(p9,p10); // HC05 |
edodm85 | 0:7bb229e58814 | 13 | DigitalOut led1(LED1); |
edodm85 | 0:7bb229e58814 | 14 | DigitalOut led4(LED4); |
edodm85 | 0:7bb229e58814 | 15 | |
edodm85 | 0:7bb229e58814 | 16 | |
edodm85 | 0:7bb229e58814 | 17 | void commandAT(char *v){ |
edodm85 | 0:7bb229e58814 | 18 | |
edodm85 | 0:7bb229e58814 | 19 | int i=0; |
edodm85 | 0:7bb229e58814 | 20 | |
edodm85 | 0:7bb229e58814 | 21 | while(v[i] != NULL){ |
edodm85 | 0:7bb229e58814 | 22 | blue.putc(v[i]); |
edodm85 | 0:7bb229e58814 | 23 | i++; |
edodm85 | 0:7bb229e58814 | 24 | } |
edodm85 | 0:7bb229e58814 | 25 | |
edodm85 | 0:7bb229e58814 | 26 | blue.printf("\r\n"); |
edodm85 | 0:7bb229e58814 | 27 | } |
edodm85 | 0:7bb229e58814 | 28 | |
edodm85 | 0:7bb229e58814 | 29 | |
edodm85 | 0:7bb229e58814 | 30 | // This function is called when a character goes into the RX buffer. |
edodm85 | 0:7bb229e58814 | 31 | void rxCallback(MODSERIAL_IRQ_INFO *q) { |
edodm85 | 0:7bb229e58814 | 32 | led4 = !led4; |
edodm85 | 0:7bb229e58814 | 33 | pc.putc(blue.getc()); |
edodm85 | 0:7bb229e58814 | 34 | } |
edodm85 | 0:7bb229e58814 | 35 | |
edodm85 | 0:7bb229e58814 | 36 | |
edodm85 | 0:7bb229e58814 | 37 | int main(){ |
edodm85 | 0:7bb229e58814 | 38 | |
edodm85 | 0:7bb229e58814 | 39 | blue.baud(38400); |
edodm85 | 0:7bb229e58814 | 40 | pc.baud(115200); |
edodm85 | 0:7bb229e58814 | 41 | |
edodm85 | 0:7bb229e58814 | 42 | char s[80]; |
edodm85 | 0:7bb229e58814 | 43 | |
edodm85 | 0:7bb229e58814 | 44 | while(1){ |
edodm85 | 0:7bb229e58814 | 45 | pc.printf("Command: "); |
edodm85 | 0:7bb229e58814 | 46 | pc.scanf("%s",s); |
edodm85 | 0:7bb229e58814 | 47 | |
edodm85 | 0:7bb229e58814 | 48 | wait_us(100); |
edodm85 | 0:7bb229e58814 | 49 | |
edodm85 | 0:7bb229e58814 | 50 | commandAT(s); |
edodm85 | 0:7bb229e58814 | 51 | wait_us(100); |
edodm85 | 0:7bb229e58814 | 52 | |
edodm85 | 0:7bb229e58814 | 53 | pc.printf("Response: "); |
edodm85 | 0:7bb229e58814 | 54 | |
edodm85 | 0:7bb229e58814 | 55 | blue.attach(&rxCallback, MODSERIAL::RxIrq); |
edodm85 | 0:7bb229e58814 | 56 | wait(1); |
edodm85 | 0:7bb229e58814 | 57 | } |
edodm85 | 0:7bb229e58814 | 58 | } |