GSM与PIC16F877A之间的串行通信
seial communication between GSM and PIC16F877A
请帮助我尝试准备一个项目,该项目需要 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 端口但仍然没有发送。但 GSM 和 PIC 都可以通过 5v FTDI 分线端口与笔记本电脑的超级终端通信。
恐怕你必须首先限制你的问题:硬件或软件。你有你的连接模式吗?
另一方面,在您的代码中您使用了这个函数:
UART_Write_Text("AT+CMGF=1");
你不应该用 \r\n 或 \n\r 或 UART_Write_Text适合你吗?
请帮助我尝试准备一个项目,该项目需要 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 端口但仍然没有发送。但 GSM 和 PIC 都可以通过 5v FTDI 分线端口与笔记本电脑的超级终端通信。
恐怕你必须首先限制你的问题:硬件或软件。你有你的连接模式吗?
另一方面,在您的代码中您使用了这个函数:
UART_Write_Text("AT+CMGF=1");
你不应该用 \r\n 或 \n\r 或 UART_Write_Text适合你吗?