Контакты RX и TX на esp32

Привет, ребята, я новичок в этой области, мне очень нужна ваша помощь, я хочу подключить модуль GSM (SIM808) к плате ESP32, используя контакты TX и RX, чтобы контакты были помечены RX и TX, без номера контакта, как на другие, как я могу объявить их в коде. Я уже протестировал код на Arduino Uno на контактах 0 и 1 (RX и TX), и он работает нормально, вот плата, которую я использую: Я уже пробовал использовать контакты 16 и 17, но не помогло. Мне нужно попробовать использовать контакты 40 и 41, как показано на рисунке ниже.

, 👍0

Обсуждение

«Не сработало» не очень описательно. Пожалуйста, покажите свой код и как вы подключили модуль. Возможно, будет полезно знать, что ESP32 имеет очень гибкую конфигурацию последовательного порта, и последовательный ввод-вывод может быть сопоставлен с большинством контактов GPIO., @StarCat

Tx и Rx используются последовательным портом для вашего последовательного монитора. В отличие от Arduino Uno, у которого есть только один последовательный порт, у ESP32 их 3. Вы можете использовать TxD2 (GPIO17) и RxD2 (GPIO16) для подключения к вашему модулю SIM808. Вы используете порт с Serial2.begin(115200)., @hcheung


2 ответа


Лучший ответ:

0

Прежде всего, спасибо за предоставленные рекомендации и поддержку. Для новичка в мире Arduino и встраиваемых систем это было чрезвычайно полезно.

Основная проблема, с которой я столкнулся, заключалась в том, что я не знал, как объявить контакты TX и RX в моем коде на C++, особенно когда эти контакты не были помечены номерами GPIO, как другие на моей плате ESP32. После небольшого исследования и прочтения ваших комментариев я узнал, что эти контакты можно просто объявить, используя их номера GPIO, которые указаны на схеме платы.

Например, чтобы использовать RX0 и TX0, их необходимо объявить как 3 и 1 соответственно. Вот пример:

 #define RXD 3  //RXD
    #define TXD 1  //TXD
    
    HardwareSerial SIM808(2);

void setup()
{
  //
  //
   SIM808.begin(9600, SERIAL_8N1, RXD, TXD);
}

Мне удалось заставить модуль SIM808 работать с помощью этого метода, но я заметил, что система не всегда работает согласованно. Иногда выполнение команд занимает много времени, и мне придется это учитывать.

Я просто хотел выразить благодарность за теплый прием и полезные советы, которые я здесь получил. Это был мой первый пост, и я боялся задать «тупой вопрос». но сообщество оказало только поддержку.

Поскольку я продолжаю узнавать и исследовать больше о встраиваемых системах, я уверен, что вернусь с новыми вопросами и, надеюсь, со временем, со своими ответами!

,

это очень плохой совет. Вы хотите использовать SoftwareSerial на последовательных выводах оборудования? и этот последовательный порт уже подключен к USB-чипу, который обменивается данными с компьютером. Вы можете использовать Serial2 на контактах RX2/TX2. Serail2 уже существует как объект и инициализирован для контактов. (как уже упоминалось в комментарии под Q), @Juraj

Не используйте SoftwareSerial на устройстве, имеющем достаточно аппаратных последовательных портов для выполнения этой работы., @StarCat

Можете ли вы предоставить дополнительную информацию о SoftwareSerial и HardwareSerial, чтобы помочь мне лучше понять, а также у меня заканчиваются контакты в моем проекте, есть ли какое-либо решение, позволяющее уменьшить количество контактов или использовать одни и те же контакты для нескольких целей?, @Hach Rbh

Хач Рбх, https://en.wikipedia.org/wiki/Bit_banging, @Juraj


-2

На этом сайте очень хорошо объясняется процедура. https://microcontrollerslab.com/esp32-uart-communication-pins-example/

,

Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится., @sempaiscuba

Это ответ только для ссылок, который не одобряется Stack Exchanges, поскольку ссылка может выйти из строя в будущем. Пожалуйста, отвечайте на вопросы ответами, которые *самостоятельны*, возможно, подкреплены ссылкой в качестве дополнительной информации. Хотя теоретически это может ответить на вопрос, [было бы предпочтительно](http://meta.stackoverflow.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. Не стесняйтесь добавлять более полный ответ, который непосредственно отвечает на вопрос., @Nick Gammon