Добавлено API для UART и TMR
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
|
||||
//-- Includes ------------------------------------------------------------------
|
||||
#include "gpio.h"
|
||||
#include "periph_config.h"
|
||||
|
||||
//-- Defines -------------------------------------------------------------------
|
||||
|
||||
@@ -18,18 +18,20 @@ void gpio_init(void)
|
||||
{
|
||||
RCU_AHBClkCmd(RCU_AHBClk_GPIOA, ENABLE);
|
||||
RCU_AHBRstCmd(RCU_AHBRst_GPIOA, ENABLE);
|
||||
RCU_AHBClkCmd(RCU_AHBClk_GPIOB, ENABLE);
|
||||
RCU_AHBRstCmd(RCU_AHBRst_GPIOB, ENABLE);
|
||||
|
||||
/* Сброс пинов */
|
||||
GPIO_DeInit(GPIOA);
|
||||
GPIO_DeInit(GPIOB);
|
||||
|
||||
// Инициализируем порт A
|
||||
// Инициализация порта A
|
||||
for (int i = 0; i < sizeof(gpioa_config) / sizeof(gpioa_config[0]); i++)
|
||||
{
|
||||
GPIO_Init(GPIOA, &gpioa_config[i]);
|
||||
}
|
||||
|
||||
// Инициализируем порт B
|
||||
// Инициализация порта B
|
||||
for (int i = 0; i < sizeof(gpiob_config) / sizeof(gpiob_config[0]); i++)
|
||||
{
|
||||
GPIO_Init(GPIOB, &gpiob_config[i]);
|
||||
@@ -66,3 +68,28 @@ void gpio_init(void)
|
||||
// gpio_init.Pin = GPIO_OUT_OD_PB_PINS;
|
||||
// GPIO_Init(GPIOB, &gpio_init);
|
||||
}
|
||||
|
||||
|
||||
GPIO_Init_TypeDef *gpio_get_init(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)
|
||||
{
|
||||
uint8_t pin_index = __builtin_ctz(GPIO_Pin);
|
||||
|
||||
if (GPIOx == GPIOA)
|
||||
{
|
||||
// Проверяем границы массива
|
||||
if (pin_index < sizeof(gpioa_config) / sizeof(gpioa_config[0]))
|
||||
{
|
||||
return &gpioa_config[pin_index];
|
||||
}
|
||||
}
|
||||
else if (GPIOx == GPIOB)
|
||||
{
|
||||
// У тебя была опечатка: возвращал gpioa_config вместо gpiob_config
|
||||
if (pin_index < sizeof(gpiob_config) / sizeof(gpiob_config[0]))
|
||||
{
|
||||
return &gpiob_config[pin_index];
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user