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

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

+20 -13
View File
@@ -65,7 +65,13 @@ const HAL_PinsTypeDef digitalPinToGpioPinArray[] =
// etermines the address of the port by the board pin number to which this pin belongs on the MCU
GPIO_TypeDef* digitalPinToPort(uint32_t digPinNumber)
{
GPIO_TypeDef* gpioNum = 0;
GPIO_TypeDef* gpioNum = NULL;
if (digPinNumber >= pinCommonQty())
{
ErrorMsgHandler("digitalPinToPort(): pin number exceeds the total number of pins");
return NULL;
}
// port 2 - led and button
if (digPinNumber == LED_BUILTIN || digPinNumber == BTN_BUILTIN)
gpioNum = GPIO_2;
@@ -83,20 +89,21 @@ GPIO_TypeDef* digitalPinToPort(uint32_t digPinNumber)
// determines the pin address inside the port by the board pin number
HAL_PinsTypeDef digitalPinToBitMask(uint32_t digPinNumber)
{
if (digPinNumber < pinCommonQty())
if (digPinNumber >= pinCommonQty())
{
HAL_PinsTypeDef mask;
// if spi is on default pin NSS_IN is needed for spi, board pin is replaced to pin NSS_OUT
if ((digPinNumber == 10) && spi1NssPinIsBlocked)
mask = SPI1_NSS_OUT_PIN;
else if ((digPinNumber == 9) && spi0NssPinIsBlocked)
mask = SPI0_NSS_OUT_PIN;
else
mask = digitalPinToGpioPinArray[digPinNumber];
return mask;
ErrorMsgHandler("digitalPinToBitMask(): pin number exceeds the total number of pins");
return NC;
}
else
return NC;
HAL_PinsTypeDef mask;
// if spi is on default pin NSS_IN is needed for spi, board pin is replaced to pin NSS_OUT
if ((digPinNumber == 10) && spi1NssPinIsBlocked)
mask = SPI1_NSS_OUT_PIN;
else if ((digPinNumber == 9) && spi0NssPinIsBlocked)
mask = SPI0_NSS_OUT_PIN;
else
mask = digitalPinToGpioPinArray[digPinNumber];
return mask;
}
uint16_t pinCommonQty(void)