Top.Mail.Ru
Ответы

Как в ESP32 писать в регистры ввода-вывода?

Я загуглил этот вопрос, интернет мне выдает типа этого:

gpio_set_level(GPIO_NUM_12, 1);

Но это же по-неправильному! Сейчас объясню.

Когда я учился программировать ардуино, там было два способа отправить (или принять) сигнал от микроконтроллера вовне:

Первый, (ардуинский) способ типа того:

pinMode(10, OUTPUT);
digitalWrite(10, HIGH);

Второй, (сишный) способ типа этого:

PORTB = 0x67;

Вторым способом никто не пользуется, а первый способ - плохой: он в тысячи (не преувеличиваю) раз медленнее, во-первых, а во-вторых, он позволяет записать и (или) прочитать только одну ножку, а второй способ позволяет записать и (или) прочитать сразу много ножек. Только так возможно не просто "помигать светодиодом при нажатии на кнопку", а подключить дисплей, например, или микрофон, и вообще что-то нормальное (но пытаясь подключить камеру я понял, что ардуино слишком слабые, а потому нафиг они нужны, если ESP32 в кучу раз круче за те же деньги. Ещё круче только одноплатные компьютеры, но с ними другая история...

Так что я перешел на ESP32 (на готовую плату, а не на голый чип). Пишу программу в EspressifIDE.

Что такое gpio_set_level(GPIO_NUM_12, 1); среда разработки даже не знает (видимо это опять ардуинское), а мне хочется понять, как нормально на си взаимодействовать с ножками

Типа как запись PORTB = 0x67;

И чтение data = (PINC & 15) | (PIND & 240), но не на ардуино, а в ESP32.

Простите за сумбурное объяснение...

По дате
По рейтингу
Аватар пользователя
Мыслитель

Мы делаем так, для среды в которой ты программируешь открываем примеры и берём из примера.
У меня для ESP32 - Arduino IDE

подключается туда среда программирования в ней примеры.

вот ты сам пишешь, что сначала разрешить использование ноги, а потом записать. Всё тоже и мы делаем.
Если не работает - переходишь на другую ногу, по тому, что выход может сгореть от твоих опытов.

Аватар пользователя
Знаток

См решаю



Видео по теме