From 1289095ab0d582579dcf1921dfc981d5a411e158 Mon Sep 17 00:00:00 2001 From: KLASSENTS Date: Mon, 4 Aug 2025 11:37:13 +0700 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D1=8C=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D1=83?= =?UTF-8?q?=D1=80=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=20=D1=81=20=D0=BF=D1=80=D0=B8=D1=82=D1=8F=D0=B6?= =?UTF-8?q?=D0=BA=D0=BE=D0=B9=20=D0=BA=20=D0=B7=D0=B5=D0=BC=D0=BB=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- cores/arduino/wiring_constants.h | 14 ++++++++------ cores/arduino/wiring_digital.c | 4 ++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 74a6b83..1db3f64 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ ## Особенности использования пакета в ArduinoIDE ### Цифровые выводы -В отличие от стандартного функционала Arduino на платах, входящих в состав пакета, невозможно управлять притяжками цифрового вывода, настроенного на вход, с помощью функции `void digitalWrite(uint32_t PinNumber, uint32_t Val)`. Для включения притяжки к питанию необходимо воспользоваться функцией `void pinMode(PinNumber, INPUT_PULLUP)`. +В отличие от стандартного функционала Arduino на платах, входящих в состав пакета, невозможно управлять притяжками цифрового вывода, настроенного на вход, с помощью функции `void digitalWrite(uint32_t PinNumber, uint32_t Val)`. Для включения притяжки к питанию необходимо воспользоваться функцией `pinMode(PinNumber, INPUT_PULLUP)`. +Доступна возможность конфигурирования цифрового вывода на вход с притяжкой к земле, для этого необходимо использовать макрос `INPUT_PULLDOWN` - `pinMode(PinNumber, INPUT_PULLDOWN)`. Для инвертирования состояния цифровых выводов доступна функция `void digitalToggle(uint32_t PinNumber)`. ### Аналоговые выводы diff --git a/cores/arduino/wiring_constants.h b/cores/arduino/wiring_constants.h index f46dc93..32d59ea 100644 --- a/cores/arduino/wiring_constants.h +++ b/cores/arduino/wiring_constants.h @@ -23,12 +23,14 @@ #include #include "wiring_private.h" -#define HIGH 0x1 -#define LOW 0x0 -#define INPUT 0x0 -#define OUTPUT 0x1 -#define INPUT_PULLUP 0x2 -#define NC 0xFFFFFFFF // Not connected +#define HIGH 0x1 +#define LOW 0x0 + +#define INPUT 0x0 +#define OUTPUT 0x1 +#define INPUT_PULLUP 0x2 +#define INPUT_PULLDOWN 0x3 +#define NC 0xFFFFFFFF // Not connected #define PI 3.1415926535897932384626433832795 #define HALF_PI 1.5707963267948966192313216916398 diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c index 4547e95..a815a7a 100644 --- a/cores/arduino/wiring_digital.c +++ b/cores/arduino/wiring_digital.c @@ -56,6 +56,10 @@ void pinMode(uint32_t PinNumber, uint32_t PinMode) GPIO_InitStruct.Mode = HAL_GPIO_MODE_GPIO_INPUT; GPIO_InitStruct.Pull = HAL_GPIO_PULL_UP; break; + case INPUT_PULLDOWN: + GPIO_InitStruct.Mode = HAL_GPIO_MODE_GPIO_INPUT; + GPIO_InitStruct.Pull = HAL_GPIO_PULL_DOWN; + break; case OUTPUT: GPIO_InitStruct.Mode = HAL_GPIO_MODE_GPIO_OUTPUT; GPIO_InitStruct.Pull = HAL_GPIO_PULL_NONE;