ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
#include "hal_common.h"

См. исходные тексты.

Макросы

#define GPIO_PORTA   0U
 
#define GPIO_PORTB   1U
 
#define GPIO_PORTC   2U
 
#define GPIO_PORTD   3U
 
#define GPIO_PORTPIN(port, pin)    ((((port) & 0xF) << 4) | ((pin) & 0xF))
 
#define GPIO_PORTPIN_GET_PIN_NUM(portpin)   ((portpin) & 0xF)
 
#define GPIO_PORTPIN_GET_MASK(portpin)    (1 << GPIO_PORTPIN_GET_PIN_NUM(portpin))
 
#define GPIO_PORTPIN_GET_PORT_NUM(portpin)   (((portpin) >> 4) & 0xF)
 
Secure прерывания порта GPIO
#define GPIO_SEC_INT_SEC_ACC_MASK   0x1
 
#define GPIO_SEC_INT_PORT_NONSEC_MASK   0x2
 

Перечисления

Режимы работы выводов GPIO
enum  gpio_mode_t
 Список режимов работы вывода GPIO. Подробнее...
 
enum  gpio_pin_function_t
 Список альтернативных функций IOCTR выводов устройств Подробнее...
 
Характеристики внешних выводов GPIO
enum  gpio_pin_direction_t
 Направление вывода GPIO (вход или выход) Подробнее...
 
enum  gpio_pin_pupd_t
 Настройки внутренних резистивных подтяжек на выводах для режимов Push-Pull и Open-Drain. Подробнее...
 
enum  gpio_pin_max_current_t
 Настройки максимального выходного тока вывода Подробнее...
 
enum  gpio_int_type_t
 Список типов прерываний входных выводов GPIO. Подробнее...
 

Функции

HAL функции для работы с конкретным выводом GPIO по Secure адресам
gpio_mode_t GPIO_PinMode_Get (uint32_t pin)
 Чтение режима работы вывода GPIO.
 
void GPIO_PinMode_HiZ (uint32_t pin)
 Установка вывода в состояние Hi-Z.
 
void GPIO_PinMode_Function (uint32_t pin, gpio_pin_function_t func)
 Установка вывода в режим альтернативной функции IOCTR.
 
void GPIO_PinMode_GPIO (uint32_t pin, gpio_pin_direction_t direction)
 Установка вывода в режим GPIO.
 
void GPIO_PinSet_PUPD (uint32_t pin, gpio_pin_pupd_t pupd)
 Настройка резистивной подтяжки вывода GPIO.
 
void GPIO_PinSet_MaxCurrent (uint32_t pin, gpio_pin_max_current_t current)
 Настройка максимального выходного тока вывода GPIO.
 
void GPIO_PinSet_Schmitt (uint32_t pin, uint32_t value)
 Включение триггера Шмидта на входном выводе GPIO.
 
void GPIO_PinSet_SpeedRaise (uint32_t pin, uint32_t value)
 Настройка скорости нарастания сигнала на выводе GPIO.
 
void GPIO_PinWrite (uint32_t pin, uint32_t bit)
 Установка логического уровня вывода GPIO.
 
void GPIO_PinToggle (uint32_t pin)
 Инвертирование логического уровня вывода GPIO.
 
uint32_t GPIO_PinRead (uint32_t pin)
 Чтение логического уровня вывода GPIO.
 
void GPIO_PinIRQ_Enable (uint32_t pin, gpio_int_type_t int_type)
 Включение прерывания на входном выводе GPIO.
 
void GPIO_PinIRQ_Disable (uint32_t pin)
 Отключение прерывания на входном выводе GPIO.
 
uint32_t GPIO_PinIRQ_GetStatus (uint32_t pin)
 Чтение статуса прерывания на входном выводе GPIO.
 
void GPIO_PinIRQ_Clear (uint32_t pin)
 Сброс прерывания на входном выводе GPIO.
 
HAL функции для работы с конкретным портом GPIO по маске выводов
int32_t GPIO_GetInstance (GPIO_Type *port)
 Определение номера порта GPIO.
 
void GPIO_PortMode_HiZ (GPIO_Type *port, uint32_t bit_mask)
 Установка выводов порта в состояние Hi-Z.
 
void GPIO_PortMode_Function (GPIO_Type *port, uint32_t bit_mask, gpio_pin_function_t func)
 Установка выводов порта в режим альтернативной функции IOCTR.
 
void GPIO_PortMode_GPIO (GPIO_Type *port, uint32_t bit_mask, gpio_pin_direction_t direction)
 Установка выводов порта в режим GPIO.
 
void GPIO_PortSet_PUPD (GPIO_Type *port, uint32_t bit_mask, gpio_pin_pupd_t pupd)
 Настройка резистивной подтяжки выводов порта GPIO.
 
void GPIO_PortSet_MaxCurrent (GPIO_Type *port, uint32_t bit_mask, gpio_pin_max_current_t current)
 Настройка максимального выходного тока выводов порта GPIO.
 
void GPIO_PortSet_Schmitt (GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
 Включение триггера Шмидта на входных выводах порта GPIO.
 
void GPIO_PortSet_SpeedRaise (GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
 Настройка скорости нарастания сигнала на выводах порта GPIO.
 
void GPIO_PortWrite (GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
 Установка логического уровня выводов порта GPIO.
 
void GPIO_PortToggle (GPIO_Type *port, uint32_t bit_mask)
 Инвертирование логического уровня выводов порта GPIO.
 
uint32_t GPIO_PortRead (GPIO_Type *port, uint32_t bit_mask)
 Чтение логического уровня выводов порта GPIO.
 
void GPIO_PortIRQ_Enable (GPIO_Type *port, uint32_t bit_mask, uint32_t int_type)
 Включение прерываний на входных выводах порта GPIO.
 
void GPIO_PortIRQ_Disable (GPIO_Type *port, uint32_t bit_mask)
 Отключение прерываний на входных выводах порта GPIO.
 
uint32_t GPIO_PortIRQ_GetStatus (GPIO_Type *port, uint32_t bit_mask)
 Чтение статусов прерываний на входных выводах порта GPIO.
 
void GPIO_PortIRQ_Clear (GPIO_Type *port, uint32_t bit_mask)
 Сброс прерываний на входных выводах порта GPIO.
 
uint32_t GPIO_PortSecureIRQ_GetStatus (GPIO_Type *port)
 Чтение статуса прерывания по нарушению безопасности порта GPIO.
 
void GPIO_PortSecureIRQ_Clear (GPIO_Type *port)
 Сброс прерывания по нарушению безопасности порта GPIO.
 
void GPIO_PortSecureIRQ_SetMask (GPIO_Type *port, uint32_t mask)
 Установка разрешений прерываний по нарушению безопасности порта GPIO.
 
uint32_t GPIO_PortSecureIRQ_GetInfo1 (GPIO_Type *port)
 Чтение информации Info1 о прерывании по нарушению безопасности порта GPIO.
 
uint32_t GPIO_PortSecureIRQ_GetInfo2 (GPIO_Type *port)
 Чтение информации Info2 о прерывании по нарушению безопасности порта GPIO.
 
void GPIO_PortSet_NonsecureMask (GPIO_Type *port, uint32_t mask)
 Установка разрешения для Non-secure обращений к порту GPIO.
 

Макросы

◆ GPIO_SEC_INT_PORT_NONSEC_MASK

#define GPIO_SEC_INT_PORT_NONSEC_MASK   0x2

Маска прерывания PORT_NONSEC

◆ GPIO_SEC_INT_SEC_ACC_MASK

#define GPIO_SEC_INT_SEC_ACC_MASK   0x1

Маска прерывания SEC_ACC

Перечисления

◆ gpio_int_type_t

Список типов прерываний входных выводов GPIO.

Элементы перечислений
GPIO_INT_LVL_LO 

Прерывание по низкому логическому уровню на входном выводе

GPIO_INT_LVL_HI 

Прерывание по высокому логическому уровню на входном выводе

GPIO_INT_EDGE_FALL 

Прерывание по спадающему фронту логического уровня на входном выводе

GPIO_INT_EDGE_RISE 

Прерывание по восходящему фронту логического уровня на входном выводе

◆ gpio_pin_direction_t

Направление вывода GPIO (вход или выход)

Элементы перечислений
GPIO_DigitalInput 

Направление работы вывода - вход

GPIO_DigitalOutput 

Направление работы вывода - выход

◆ gpio_pin_max_current_t

Настройки максимального выходного тока вывода

Элементы перечислений
GPIO_MAX_CURRENT_2mA 

Максимальный выходной ток вывода 2мА

GPIO_MAX_CURRENT_4mA 

Максимальный выходной ток вывода 4мА

GPIO_MAX_CURRENT_8mA 

Максимальный выходной ток вывода 8мА

GPIO_MAX_CURRENT_12mA 

Максимальный выходной ток вывода 12мА

◆ gpio_pin_pupd_t

Настройки внутренних резистивных подтяжек на выводах для режимов Push-Pull и Open-Drain.

Элементы перечислений
GPIO_PULL_NONE 

Без резистивных подтяжек на выводе

GPIO_PULL_DOWN 

Резистивная подтяжка на минус питания на выводе

GPIO_PULL_UP 

Резистивная подтяжка на плюс питания на выводе

GPIO_PULL_NONE_OD 

Без резистивных подтяжек и режим Open-Drain на выводе

GPIO_PULL_DOWN_OD 

Резистивная подтяжка на минус питания и режим Open-Drain на выводе

GPIO_PULL_UP_OD 

Резистивная подтяжка на плюс питания и режим Open-Drain на выводе

Функции

◆ GPIO_GetInstance()

int32_t GPIO_GetInstance ( GPIO_Type * port)

Определение номера порта GPIO.

Аргументы
portБазовый адрес порта GPIO
Возвращаемые значения
-1Порт GPIO не определен
0Порт GPIOA
1Порт GPIOB
2Порт GPIOC
3Порт GPIOD

◆ GPIO_PinIRQ_Clear()

void GPIO_PinIRQ_Clear ( uint32_t pin)

Сброс прерывания на входном выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO

◆ GPIO_PinIRQ_Disable()

void GPIO_PinIRQ_Disable ( uint32_t pin)

Отключение прерывания на входном выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO

◆ GPIO_PinIRQ_Enable()

void GPIO_PinIRQ_Enable ( uint32_t pin,
gpio_int_type_t int_type )

Включение прерывания на входном выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
int_typeТип прерывания

◆ GPIO_PinIRQ_GetStatus()

uint32_t GPIO_PinIRQ_GetStatus ( uint32_t pin)

Чтение статуса прерывания на входном выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
Возвращаемые значения
0- прерывание отсутствует
1- прерывание присутствует

◆ GPIO_PinMode_Function()

void GPIO_PinMode_Function ( uint32_t pin,
gpio_pin_function_t func )

Установка вывода в режим альтернативной функции IOCTR.

Аргументы
pinНомер вывода из карты выводов GPIO
funcНомер альтернативной функции вывода

◆ GPIO_PinMode_Get()

gpio_mode_t GPIO_PinMode_Get ( uint32_t pin)

Чтение режима работы вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
Возвращаемые значения
GPIO_MODE_HI_Z
GPIO_MODE_GPIO
GPIO_MODE_AF
GPIO_MODE_INVALID

◆ GPIO_PinMode_GPIO()

void GPIO_PinMode_GPIO ( uint32_t pin,
gpio_pin_direction_t direction )

Установка вывода в режим GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
directionНаправление вывода

◆ GPIO_PinMode_HiZ()

void GPIO_PinMode_HiZ ( uint32_t pin)

Установка вывода в состояние Hi-Z.

Аргументы
pinНомер вывода из карты выводов GPIO

◆ GPIO_PinRead()

uint32_t GPIO_PinRead ( uint32_t pin)

Чтение логического уровня вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
Возвращаемые значения
0- низкий логический уровень
1- высокий логический уровень

◆ GPIO_PinSet_MaxCurrent()

void GPIO_PinSet_MaxCurrent ( uint32_t pin,
gpio_pin_max_current_t current )

Настройка максимального выходного тока вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
currentНомер максимального тока из списка доступных значений

◆ GPIO_PinSet_PUPD()

void GPIO_PinSet_PUPD ( uint32_t pin,
gpio_pin_pupd_t pupd )

Настройка резистивной подтяжки вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
pupdТип внешней подтяжки вывода

◆ GPIO_PinSet_Schmitt()

void GPIO_PinSet_Schmitt ( uint32_t pin,
uint32_t value )

Включение триггера Шмидта на входном выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
valueЗначения: 0 - отключен, 1 - включен

◆ GPIO_PinSet_SpeedRaise()

void GPIO_PinSet_SpeedRaise ( uint32_t pin,
uint32_t value )

Настройка скорости нарастания сигнала на выводе GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
valueЗначения: 0 - fast, 1 - slow

◆ GPIO_PinToggle()

void GPIO_PinToggle ( uint32_t pin)

Инвертирование логического уровня вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO

◆ GPIO_PinWrite()

void GPIO_PinWrite ( uint32_t pin,
uint32_t bit )

Установка логического уровня вывода GPIO.

Аргументы
pinНомер вывода из карты выводов GPIO
bitЗначения: 0 - низкий логический уровень, 1 - высокий логический уровень

◆ GPIO_PortIRQ_Clear()

void GPIO_PortIRQ_Clear ( GPIO_Type * port,
uint32_t bit_mask )

Сброс прерываний на входных выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов

◆ GPIO_PortIRQ_Disable()

void GPIO_PortIRQ_Disable ( GPIO_Type * port,
uint32_t bit_mask )

Отключение прерываний на входных выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов

◆ GPIO_PortIRQ_Enable()

void GPIO_PortIRQ_Enable ( GPIO_Type * port,
uint32_t bit_mask,
uint32_t int_type )

Включение прерываний на входных выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
int_typeТип прерывания из списка

◆ GPIO_PortIRQ_GetStatus()

uint32_t GPIO_PortIRQ_GetStatus ( GPIO_Type * port,
uint32_t bit_mask )

Чтение статусов прерываний на входных выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
Возвращает
32-битная маска, каждый бит которой означает либо прерывание отсутствует (0), либо прерывание присутствует (1)

◆ GPIO_PortMode_Function()

void GPIO_PortMode_Function ( GPIO_Type * port,
uint32_t bit_mask,
gpio_pin_function_t func )

Установка выводов порта в режим альтернативной функции IOCTR.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
funcНомер альтернативной функции вывода

◆ GPIO_PortMode_GPIO()

void GPIO_PortMode_GPIO ( GPIO_Type * port,
uint32_t bit_mask,
gpio_pin_direction_t direction )

Установка выводов порта в режим GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
directionНаправление вывода

◆ GPIO_PortMode_HiZ()

void GPIO_PortMode_HiZ ( GPIO_Type * port,
uint32_t bit_mask )

Установка выводов порта в состояние Hi-Z.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов

◆ GPIO_PortRead()

uint32_t GPIO_PortRead ( GPIO_Type * port,
uint32_t bit_mask )

Чтение логического уровня выводов порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
Возвращает
32-битная маска, каждый бит которой означает либо низкий логический уровень вывода (0), либо высокий логический уровень (1)

◆ GPIO_PortSecureIRQ_Clear()

void GPIO_PortSecureIRQ_Clear ( GPIO_Type * port)

Сброс прерывания по нарушению безопасности порта GPIO.

Аргументы
portБазовый адрес порта GPIO

◆ GPIO_PortSecureIRQ_GetInfo1()

uint32_t GPIO_PortSecureIRQ_GetInfo1 ( GPIO_Type * port)

Чтение информации Info1 о прерывании по нарушению безопасности порта GPIO.

Аргументы
portБазовый адрес порта GPIO
Возвращает
Данные информации размером 32 бита

◆ GPIO_PortSecureIRQ_GetInfo2()

uint32_t GPIO_PortSecureIRQ_GetInfo2 ( GPIO_Type * port)

Чтение информации Info2 о прерывании по нарушению безопасности порта GPIO.

Аргументы
portБазовый адрес порта GPIO
Возвращает
Данные информации размером 32 бита

◆ GPIO_PortSecureIRQ_GetStatus()

uint32_t GPIO_PortSecureIRQ_GetStatus ( GPIO_Type * port)

Чтение статуса прерывания по нарушению безопасности порта GPIO.

Аргументы
portБазовый адрес порта GPIO
Возвращаемые значения
0- прерывание отсутствует
1- прерывание присутствует

◆ GPIO_PortSecureIRQ_SetMask()

void GPIO_PortSecureIRQ_SetMask ( GPIO_Type * port,
uint32_t mask )

Установка разрешений прерываний по нарушению безопасности порта GPIO.

Аргументы
portБазовый адрес порта GPIO
maskМаска разрешения прерываний (SEC_ACC_MASK и PORT_NONSEC_MASK)

◆ GPIO_PortSet_MaxCurrent()

void GPIO_PortSet_MaxCurrent ( GPIO_Type * port,
uint32_t bit_mask,
gpio_pin_max_current_t current )

Настройка максимального выходного тока выводов порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
currentНомер максимального тока из списка доступных значений

◆ GPIO_PortSet_NonsecureMask()

void GPIO_PortSet_NonsecureMask ( GPIO_Type * port,
uint32_t mask )

Установка разрешения для Non-secure обращений к порту GPIO.

Аргументы
portБазовый адрес порта GPIO
maskМаска битов разрешения доступа (0 - secure, 1 - non-secure)

◆ GPIO_PortSet_PUPD()

void GPIO_PortSet_PUPD ( GPIO_Type * port,
uint32_t bit_mask,
gpio_pin_pupd_t pupd )

Настройка резистивной подтяжки выводов порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
pupdТип внешней подтяжки вывода

◆ GPIO_PortSet_Schmitt()

void GPIO_PortSet_Schmitt ( GPIO_Type * port,
uint32_t bit_mask,
uint32_t bit_value )

Включение триггера Шмидта на входных выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
bit_valueЗначения по маске битов: 0 - отключен, 1 - включен

◆ GPIO_PortSet_SpeedRaise()

void GPIO_PortSet_SpeedRaise ( GPIO_Type * port,
uint32_t bit_mask,
uint32_t bit_value )

Настройка скорости нарастания сигнала на выводах порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
bit_valueЗначения по маске битов: 0 - fast, 1 - slow

◆ GPIO_PortToggle()

void GPIO_PortToggle ( GPIO_Type * port,
uint32_t bit_mask )

Инвертирование логического уровня выводов порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов

◆ GPIO_PortWrite()

void GPIO_PortWrite ( GPIO_Type * port,
uint32_t bit_mask,
uint32_t bit_value )

Установка логического уровня выводов порта GPIO.

Аргументы
portБазовый адрес порта GPIO
bit_maskБитовая маска выбранных выводов
bit_valueЗначения по маске битов: 0 - низкий логический уровень, 1 - высокий логический уровень