Последовательная связь между GSM и 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, который используется для завершения SMS-сообщения, но проблема в том, что микросхема PIC не может связаться с GSM, из-за различных уровней напряжения, которые я пытался использовать MAX232, я Первоначально сделал интерфейс через MAX232, как показано ниже, интерфейс GSM с PIC16F877A через MAX232, но ничего не отправлено, я попытался поменять местами последовательные контакты без max232, но ничего не отправлено. затем я попытался сменить GSM SIM900 на GSM SIM900A min, который имеет три варианта портов: RS232, 3V Tx и Rx, 5V Tx и Rx, поскольку PIC16F877a имеет логическое напряжение 5В, поэтому я использовал порт 5В, но по-прежнему ничего не отправлял. но и GSM, и PIC нормально взаимодействуют с гипертерминалом ноутбука через 5-вольтовый порт FTDI.
1 ответ
Я боюсь, что вы должны сначала ограничить свою проблему: аппаратное или программное обеспечение. У вас есть схема ваших соединений?
С другой стороны, в вашем коде вы используете эту функцию:
UART_Write_Text("AT+CMGF=1");
Разве вы не должны заканчивать эту строку с помощью \ r \ n или \ n \ r, или UART_Write_Text сделает это за вас?