Взаимодействие A9G с Arduino для тестирования AT-команд
Я пытаюсь подключиться к плате A9G Pudding GSM через Arduino. Я намерен использовать встроенный чип UART для упрощения преобразования TTL-UART между ПК и A9G.
Я инициировал программный последовательный экземпляр и использую его для передачи данных в/из A9G и Arduino.
Вот мой код. Однако, все, что я получаю, это тарабарщина. Я проверил свои соединения, ссылка, кажется, существует, но кодировка не совпадает. Я общаюсь с A9G на 115200, а мой эмулируемый серийный номер — на 9600.
Может ли это быть проблемой?
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600); // Мониторинг скорости передачи данных
mySerial.begin(57600); // Установить обнаруженную скорость передачи данных
Serial.println("A9G Module Communication Test");
// Отправить AT-команду с возвратом каретки и переводом строки
mySerial.print("AT\r\n");
delay(1000); // Ждать ответа
}
void loop() {
// Проверьте, доступны ли данные из модуля A9G
if (mySerial.available()) {
// Считываем данные из модуля A9G
while (mySerial.available()) {
char c = mySerial.read();
Serial.write(c); // Отправляем его в последовательный монитор
}
}
// Проверьте, доступны ли данные из последовательного монитора
if (Serial.available()) {
// Считываем данные из последовательного монитора
while (Serial.available()) {
char c = Serial.read();
mySerial.write(c); // Отправляем его в модуль A9G
}
}
}
Вот вывод на последовательном мониторе.
@Mwasela, 👍0
1 ответ
▲ -1
Вы можете редактировать свой код следующим образом.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600); // Контролируем скорость передачи данных для соответствия A9G
mySerial.begin(115200); // Установить скорость передачи данных A9G
Serial.println("A9G Module Communication Test");
// Отправить AT-команду с возвратом каретки и переводом строки
mySerial.print("AT\r\n");
delay(1000); // Ждать ответа
}
void loop() {
// Проверьте, доступны ли данные из модуля A9G
if (mySerial.available()) {
// Считываем данные из модуля A9G
while (mySerial.available()) {
char c = mySerial.read();
Serial.write(c); // Отправляем его в последовательный монитор
}
}
// Проверьте, доступны ли данные из последовательного монитора
if (Serial.available()) {
// Считываем данные из последовательного монитора
while (Serial.available()) {
char c = Serial.read();
mySerial.write(c); // Отправляем его в модуль A9G
}
}
}
,
@tepalia
Смотрите также:
- SIM800L не отвечает на AT-команды
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- GSM SIM900A Содержимое SMS не отображается
- HLW8032 UART отправляет случайные данные (регистры часто переполняются)
- Модуль SIM800L просто повторяет данные, отправленные через последовательный порт.
- Проблема последовательной связи с общей землей SIM800L
- Как связаться с GPS SIM900a без serial monitor
- Связь UART - серийный номер всегда пуст