Определение последовательного UART
Я новичок в Arduino..
Сейчас я пытаюсь создать GPRS-соединение через SIM-карту. Для этого мне нужно подключить последовательный порт UART.
Я не знаю, как определить Serial UART. Не могли бы вы мне с этим помочь?
@Chitraveer Akhil, 👍-2
Обсуждение2 ответа
В функции настройки вам нужно будет вызвать функцию Serial.begin()
.
Чтобы получить последовательный символ, необходимо вызвать функцию <code>Serial.available()</code> внутри оператора if.
Чтобы отправить символ, вы можете использовать функции Serial.write()
или Serial.print()
.
Ниже приведен простой пример программы, которая будет возвращать символы на ПК.
//-------------------------
// Простой последовательный цикл
//-------------------------
void setup()
{
// инициализируем последовательную связь:
Serial.begin(9600);
}
void loop()
{
byte inChar;
// проверяем, были ли отправлены данные с компьютера:
if (Serial.available())
{
// прочитать последний байт
inChar = Serial.read();
// отправить обратно символ
Serial.write(inChar);
}
}
В Arduino IDE есть множество «встроенных» примеров, которые используют различные последовательные функции. Их можно просматривать без подключения какого-либо оборудования. В IDE перейдите в Файл
> Примеры
, а оттуда в разделе Связь
вы найдете множество примеров для последовательного UART. Подробности этих примеров можно найти на сайте Учебник по Arduino.
Единственный аппаратный UART uno используется для пеограмирования и создания отладочного вывода. Если он подключен к модулю GPRS, то программирование будет невозможно, а отладочный вывод будет проблематичным., @Chris Stratton
Я видел много плат, использующих перемычки/переключатели/перемычки/щиты, которые вы отсоединяете, когда вам нужно перепрограммировать. Надеюсь, вы дойдете до стадии, когда ваше устройство заработает, и вам не придется перепрограммировать микросхему., @sa_leinad
Arduino имеет только один UART, который используется для загрузки программы и для последовательного терминала вывода на ваш компьютер. Хотя вы можете подключить его к другому последовательному устройству, это сделает отладку обременительной, так как 1) вы не сможете отправлять никакой отладочный вывод; и 2) вам нужно будет переключаться между вашим компьютером и GPRS, когда вы перестраиваете и загружаете свой код. Вам в значительной степени нужен второй UART, чтобы делать это как-то удобно.
Найдите модуль библиотеки под названием SoftwareSerial, который может имитировать UART на второй паре контактов, с некоторыми ограничениями: он ограничен скоростью связи 9600 бод; он не может передавать и получать данные одновременно; максимум один порт SoftwareSerial может принимать данные (или даже слушать) в любой момент времени; и он может мешать работе другого внутреннего оборудования, в частности системы прерываний и по крайней мере одного из таймеров. (Ссылка ведет на веб-сайт Arduino, документация которого не всегда самая последняя, но то, что там есть, даст вам представление).
Во многих случаях, и ваш, вероятно, один из них, это не останавливает шоу, просто то, о чем следует знать, когда ваш код становится более сложным. Пока вы можете управлять своим устройством, время от времени отправляя ему строку и получая другую в ответ, и ваша система не включает другие высокоскоростные устройства, которые должны обслуживаться быстро, когда они этого требуют, вы, вероятно, не заметите ограничений.
- Последовательная связь между несколькими устройствами (или ардуино)
- I2C связь между Arduino Uno и Nodemcu32-s (ESP32)
- Кодирование Arduino UNO UART на чистом языке C
- SIM800L не отвечает на AT-команды
- Как импортировать данные с SD-карты на Arduino на компьютер, используя последовательный/COM-порт Arduino?
- Проблема последовательной связи с общей землей SIM800L
- Альтернатива LCD-дисплеям UART/I2C?
- ESP01 и Arduino — путаница с последовательным портом
В гугле есть миллионы примеров того, как это сделать. Вы пробовали спросить?, @Majenko