GSM和PIC16F877A之间的串行通信

时间:2017-06-10 05:11:42

标签: serial-port gsm uart microchip sim900

请帮助我尝试准备一个需要PIC16F877A和GSM sim900之间进行串行通信的项目,以便我可以从远程发送和接收短信,这是在MPLAB XC8中发送短信的代码的和平“

           UART_Write_Text("AT+CMGF=1");
         __delay_ms(500);
          UART_Write_Text("AT+CMGS=\"+25XXXXXXXXX\"\n\r");
          __delay_ms(500);
          UART_Write_Text("Fuse number 1 had blown up");
          __delay_ms(500);
          UART_Write(26);
        __delay_ms(6000);
         UART_Write_Text("AT+CMGF=1");
         __delay_ms(500);
          UART_Write_Text("AT+CMGS=\"+255XXXXXXX\"\n\r");
          __delay_ms(500);
          UART_Write_Text("Fuse number 2 had blown up");
          __delay_ms(600);
          UART_Write(0x1A);
        __delay_ms(6000);
         UART_Write_Text("ATD+25XXXXXXX;");
         __delay_ms(6000);`

你可以看到我试图检查问题是否是用于终止短信的ASCII字符26,但问题是PIC芯片无法与GSM通信,因为我试图使用不同的电压电平MAX232,我初始通过MAX232接口,如下所示,GSM interface with PIC16F877A through MAX232但没有发送,我试图交换串口引脚,没有max232仍然没有发送。然后我尝试用GSM SIM900A min更换GSM SIM900,它有三个端口选项,RS232,3V Tx和Rx,5V Tx和Rx,因为PIC16F877a它的逻辑电压是5v,所以我使用5V端口但仍然没有发送。但是,通过5v FTDI分线端口,GSM和PIC通过笔记本电脑的超级终端进行了良好的通信。

1 个答案:

答案 0 :(得分:0)

我担心你必须首先限制你的问题:硬件或软件。你有关系的架构吗?

另一方面,在您的代码中使用此功能:

UART_Write_Text("AT+CMGF=1");

您不应该使用 \ r \ n \ n \ r 完成该行,或 UART_Write_Text 为您完成吗?