добавлена проверка - не превышает ли номер вывода из аргумента функции общее кол-во выводов

This commit is contained in:
klassents committed 2025-02-21 15:43:13 +07:00
1 parent 5b2e2eb1d5
commit fbaa4b931a
11 files changed
+171 -96

No files matched your search

+1 -7
View File
@@ -95,13 +95,7 @@ static const uint8_t A7 = PIN_A7;
// determines the address of the port by the board pin number to which this pin belongs on the MCU
GPIO_TypeDef* digitalPinToPort(uint32_t digPinNumber);
// determines the pin address inside the port by the board pin number
static inline HAL_PinsTypeDef digitalPinToBitMask(uint32_t digitalPinNumber)
{
if (digitalPinNumber >= P2_6)
return (HAL_PinsTypeDef)(1 << ((digitalPinNumber+6) & 0xF));
else
return (HAL_PinsTypeDef)(1 << (digitalPinNumber & 0xF));
}
HAL_PinsTypeDef digitalPinToBitMask(uint32_t digitalPinNumber);
// total number of pins available for initialization
static inline uint16_t pinCommonQty(void)
{
+21
View File
@@ -23,6 +23,12 @@
GPIO_TypeDef *digitalPinToPort(uint32_t digitalPinNumber)
{
if (digitalPinNumber >= pinCommonQty())
{
ErrorMsgHandler("digitalPinToPort(): pin number exceeds the total number of pins");
return NULL;
}
if (digitalPinNumber <= P0_15)
return GPIO_0;
else if ((digitalPinNumber >= P1_0) && (digitalPinNumber <= P1_15))
@@ -33,6 +39,21 @@ GPIO_TypeDef *digitalPinToPort(uint32_t digitalPinNumber)
return NULL;
}
// determines the pin address inside the port by the board pin number
HAL_PinsTypeDef digitalPinToBitMask(uint32_t digitalPinNumber)
{
if (digitalPinNumber >= PINS_COMMON_QTY)
{
ErrorMsgHandler("digitalPinToBitMask(): pin number exceeds the total number of pins");
return NC;
}
if (digitalPinNumber >= P2_6)
return (HAL_PinsTypeDef)(1 << ((digitalPinNumber+6) & 0xF));
else
return (HAL_PinsTypeDef)(1 << (digitalPinNumber & 0xF));
}
// the function returns a reference to the OUTPUT address of the GPIO register
volatile uint32_t *portOutputRegister(GPIO_TypeDef *GPIO_x)
{