Giúp mình hàm getc() của CCS.
Cho mình hỏi về hàm getc() của CCS. Mọi người cho mình hỏi hàm này nó sẽ đọc dữ liệu từ cổng UART như thế nào ? Thí dụ mình truyền cái câu này:
+CMGR: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin Mình cứ tưởng là nó sẽ in ra terminal là: R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Test nhan tin Nhưng mà mình lại thấy kết quả nó in ra Terminal là: R: "REC UNREAD","+84934306492","","15/03/24,22:30:43+28" Mình không hiểu lý do tại sao phần " Test nhan tin" tại sao nó lại bị mất. Nếu mình muốn lấy tới: "Test tin nhắn" luôn thì mình phải dùng hàm gì của CCS để lấy hết. CODE: #INT_RDA void rda_isr(void) { c=getc(); if(c=='+') c1=c; if(c=='C') c2=c; if(c=='M') c3=c; if(c=='G') c4=c; if(c=='R') c5=c; if(c1=='+' && c2=='C' && c3=='M' && c4=='G' && c5=='R') { putc(c); } } |
Phần tin nhắn có cấu trúc là:
<CR><LF>+CMGR: "REC READ","+XXXXXXXXXXXX",,"02/03/18,09:54:28+40"<CR><LF> //There is SMS text<CR><LF> không biết khi gặp ký tự kết thúc câu thì các giá trị c1 kia có reset giá trị không? mình dùng cách đếm dấu " đến 6 thì lấy |
Múi giờ GMT. Hiện tại là 09:50 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam