Ace xem hộ mình cái code này có bị sai phẩn nào k. Mình làm từ hôm qua, tới h mà nó vẫn k chạy đc như ý.
Khi có tin nhắn tới thì sim900a nó gửi lệnh xuống như thế này:
+CMTI: "SM",1
Vấn đề là khi con sim900a nó gửi lệnh trên xuống thì con pic nó không nhận ra. Nên k gửi lệnh đọc tin nhắn ra cho con sim900a. Trong khi mình thử kết nối con pic với con ft232r với chương trìn terminal của máy tính và gửi thử lệnh:
+CMTI: "SM",1
Thì con pic lại nhận ra đc và gửi lệnh đọc tin nhắn lên cho chương trình terminal.
CODE:
void main() {
TRISD = 0;
UART1_Init(9600);
UART2_Init(9600);
UART1_Write_Text("ATE0\r"); //tat echo
Delay_ms(200);
UART1_Write_Text("AT+IPR=9600\r");//Baud 9600
Delay_ms(200);
UART1_Write_Text("AT+CMGF=1\r"); //dinh dang sms dang text mode
Delay_ms(200);
UART1_Write_Text("AT+CMGD=1,4\r"); // xoa tat ca cac sms
Delay_ms(200);
while(1)
{
while(UART1_Read()!=0x2b)// Khi phat hien co dau + thi dung vong lap
{
UART1_Read();
}
UART1_Write_Text("AT+CMGR=1\r"); // Yeu cau sim900a doc tin nhan ra
}
Nhờ mọi người chỉ giúp cái lệnh +CMTI: "SM",1 từ con sim900 gửi xuống và lệnh +CMTI: "SM",1 từ chương trình terminal gửi cho con pic nó có khác gì nhau k? Terminal gửi thì nó nhận ra có kí tự dấu + trong chuỗi để gửi lệnh đọc tin nhắn ra. Trong khi lắp sim900a thực tế vào thì sim900a nó gửi lệnh +CMTI: "SM",1 pic nó lại k phát hiện ra và gửi lệnh đọc tin nhắn ra. Thanks mọi người.
Khi có tin nhắn tới thì sim900a nó gửi lệnh xuống như thế này:
+CMTI: "SM",1
Vấn đề là khi con sim900a nó gửi lệnh trên xuống thì con pic nó không nhận ra. Nên k gửi lệnh đọc tin nhắn ra cho con sim900a. Trong khi mình thử kết nối con pic với con ft232r với chương trìn terminal của máy tính và gửi thử lệnh:
+CMTI: "SM",1
Thì con pic lại nhận ra đc và gửi lệnh đọc tin nhắn lên cho chương trình terminal.
CODE:
void main() {
TRISD = 0;
UART1_Init(9600);
UART2_Init(9600);
UART1_Write_Text("ATE0\r"); //tat echo
Delay_ms(200);
UART1_Write_Text("AT+IPR=9600\r");//Baud 9600
Delay_ms(200);
UART1_Write_Text("AT+CMGF=1\r"); //dinh dang sms dang text mode
Delay_ms(200);
UART1_Write_Text("AT+CMGD=1,4\r"); // xoa tat ca cac sms
Delay_ms(200);
while(1)
{
while(UART1_Read()!=0x2b)// Khi phat hien co dau + thi dung vong lap
{
UART1_Read();
}
UART1_Write_Text("AT+CMGR=1\r"); // Yeu cau sim900a doc tin nhan ra
}
Nhờ mọi người chỉ giúp cái lệnh +CMTI: "SM",1 từ con sim900 gửi xuống và lệnh +CMTI: "SM",1 từ chương trình terminal gửi cho con pic nó có khác gì nhau k? Terminal gửi thì nó nhận ra có kí tự dấu + trong chuỗi để gửi lệnh đọc tin nhắn ra. Trong khi lắp sim900a thực tế vào thì sim900a nó gửi lệnh +CMTI: "SM",1 pic nó lại k phát hiện ra và gửi lệnh đọc tin nhắn ra. Thanks mọi người.
Comment