ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_gpio.h
См. документацию.
1
17#ifndef HAL_GPIO_H
18#define HAL_GPIO_H
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include "hal_common.h"
25
26#ifndef GPIO_PORTA
27#define GPIO_PORTA 0U
28#endif
29#ifndef GPIO_PORTB
30#define GPIO_PORTB 1U
31#endif
32#ifndef GPIO_PORTC
33#define GPIO_PORTC 2U
34#endif
35#ifndef GPIO_PORTD
36#define GPIO_PORTD 3U
37#endif
38
39#ifndef GPIO_PORTPIN
40#define GPIO_PORTPIN(port,pin) \
41 ((((port) & 0xF) << 4) | ((pin) & 0xF))
42#endif
43#ifndef GPIO_PORTPIN_GET_PIN_NUM
44#define GPIO_PORTPIN_GET_PIN_NUM(portpin) ((portpin) & 0xF)
45#endif
46#ifndef GPIO_PORTPIN_GET_MASK
47#define GPIO_PORTPIN_GET_MASK(portpin) \
48 (1 << GPIO_PORTPIN_GET_PIN_NUM(portpin))
49#endif
50#ifndef GPIO_PORTPIN_GET_PORT_NUM
51#define GPIO_PORTPIN_GET_PORT_NUM(portpin) (((portpin) >> 4) & 0xF)
52#endif
53
145#define GPIO_SEC_INT_SEC_ACC_MASK 0x1
146#define GPIO_SEC_INT_PORT_NONSEC_MASK 0x2
167
173void GPIO_PinMode_HiZ(uint32_t pin);
174
182
189void GPIO_PinMode_GPIO(uint32_t pin, gpio_pin_direction_t direction);
190
197void GPIO_PinSet_PUPD(uint32_t pin, gpio_pin_pupd_t pupd);
198
206
213void GPIO_PinSet_Schmitt(uint32_t pin, uint32_t value);
214
221void GPIO_PinSet_SpeedRaise(uint32_t pin, uint32_t value);
222
229void GPIO_PinWrite(uint32_t pin, uint32_t bit);
230
236void GPIO_PinToggle(uint32_t pin);
237
246uint32_t GPIO_PinRead(uint32_t pin);
247
254void GPIO_PinIRQ_Enable(uint32_t pin, gpio_int_type_t int_type);
255
261void GPIO_PinIRQ_Disable(uint32_t pin);
262
271uint32_t GPIO_PinIRQ_GetStatus(uint32_t pin);
272
278void GPIO_PinIRQ_Clear(uint32_t pin);
297int32_t GPIO_GetInstance(GPIO_Type *port);
298
305void GPIO_PortMode_HiZ(GPIO_Type *port, uint32_t bit_mask);
306
314void GPIO_PortMode_Function(GPIO_Type *port, uint32_t bit_mask, gpio_pin_function_t func);
315
323void GPIO_PortMode_GPIO(GPIO_Type *port, uint32_t bit_mask, gpio_pin_direction_t direction);
324
332void GPIO_PortSet_PUPD(GPIO_Type *port, uint32_t bit_mask, gpio_pin_pupd_t pupd);
333
341void GPIO_PortSet_MaxCurrent(GPIO_Type *port, uint32_t bit_mask, gpio_pin_max_current_t current);
342
350void GPIO_PortSet_Schmitt(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value);
351
359void GPIO_PortSet_SpeedRaise(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value);
360
368void GPIO_PortWrite(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value);
369
376void GPIO_PortToggle(GPIO_Type *port, uint32_t bit_mask);
385uint32_t GPIO_PortRead(GPIO_Type *port, uint32_t bit_mask);
386
394void GPIO_PortIRQ_Enable(GPIO_Type *port, uint32_t bit_mask, uint32_t int_type);
395
402void GPIO_PortIRQ_Disable(GPIO_Type *port, uint32_t bit_mask);
403
412uint32_t GPIO_PortIRQ_GetStatus(GPIO_Type *port, uint32_t bit_mask);
413
420void GPIO_PortIRQ_Clear(GPIO_Type *port, uint32_t bit_mask);
421
430uint32_t GPIO_PortSecureIRQ_GetStatus(GPIO_Type *port);
431
437void GPIO_PortSecureIRQ_Clear(GPIO_Type *port);
438
445void GPIO_PortSecureIRQ_SetMask(GPIO_Type *port, uint32_t mask);
446
454uint32_t GPIO_PortSecureIRQ_GetInfo1(GPIO_Type *port);
455
463uint32_t GPIO_PortSecureIRQ_GetInfo2(GPIO_Type *port);
464
471void GPIO_PortSet_NonsecureMask(GPIO_Type *port, uint32_t mask);
474#ifdef __cplusplus
475}
476#endif
477
478#endif /* HAL_GPIO_H */
479
gpio_mode_t
Список режимов работы вывода GPIO.
Definition hal_gpio.h:62
gpio_pin_function_t
Список альтернативных функций IOCTR выводов устройств
Definition hal_gpio.h:74
@ GPIO_MODE_AF
Definition hal_gpio.h:65
@ GPIO_MODE_INVALID
Definition hal_gpio.h:66
@ GPIO_MODE_HI_Z
Definition hal_gpio.h:63
@ GPIO_MODE_GPIO
Definition hal_gpio.h:64
@ GPIO_ALT_FUNC_SDMMC_SMC
Definition hal_gpio.h:82
@ GPIO_ALT_FUNC_I2C_I2S
Definition hal_gpio.h:77
@ GPIO_ALT_FUNC_TRACE_JTAG_FBIST
Definition hal_gpio.h:75
@ GPIO_ALT_FUNC_CAN_GNSS_USB
Definition hal_gpio.h:80
@ GPIO_ALT_FUNC_SPI0_SPI1
Definition hal_gpio.h:78
@ GPIO_ALT_FUNC_UART
Definition hal_gpio.h:79
@ GPIO_ALT_FUNC_QSPI_SPI2
Definition hal_gpio.h:81
@ GPIO_ALT_FUNC_PWM_VTU
Definition hal_gpio.h:76
gpio_pin_max_current_t
Настройки максимального выходного тока вывода
Definition hal_gpio.h:121
@ GPIO_MAX_CURRENT_2mA
Definition hal_gpio.h:122
@ GPIO_MAX_CURRENT_12mA
Definition hal_gpio.h:125
@ GPIO_MAX_CURRENT_4mA
Definition hal_gpio.h:123
@ GPIO_MAX_CURRENT_8mA
Definition hal_gpio.h:124
gpio_mode_t GPIO_PinMode_Get(uint32_t pin)
Чтение режима работы вывода GPIO.
uint32_t GPIO_PortSecureIRQ_GetInfo1(GPIO_Type *port)
Чтение информации Info1 о прерывании по нарушению безопасности порта GPIO.
uint32_t GPIO_PortSecureIRQ_GetInfo2(GPIO_Type *port)
Чтение информации Info2 о прерывании по нарушению безопасности порта GPIO.
void GPIO_PinWrite(uint32_t pin, uint32_t bit)
Установка логического уровня вывода GPIO.
void GPIO_PinSet_SpeedRaise(uint32_t pin, uint32_t value)
Настройка скорости нарастания сигнала на выводе GPIO.
void GPIO_PortSet_SpeedRaise(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
Настройка скорости нарастания сигнала на выводах порта GPIO.
void GPIO_PortSet_NonsecureMask(GPIO_Type *port, uint32_t mask)
Установка разрешения для Non-secure обращений к порту GPIO.
void GPIO_PinSet_MaxCurrent(uint32_t pin, gpio_pin_max_current_t current)
Настройка максимального выходного тока вывода GPIO.
uint32_t GPIO_PinRead(uint32_t pin)
Чтение логического уровня вывода GPIO.
uint32_t GPIO_PortSecureIRQ_GetStatus(GPIO_Type *port)
Чтение статуса прерывания по нарушению безопасности порта GPIO.
void GPIO_PortSet_MaxCurrent(GPIO_Type *port, uint32_t bit_mask, gpio_pin_max_current_t current)
Настройка максимального выходного тока выводов порта GPIO.
void GPIO_PinMode_GPIO(uint32_t pin, gpio_pin_direction_t direction)
Установка вывода в режим GPIO.
void GPIO_PortMode_HiZ(GPIO_Type *port, uint32_t bit_mask)
Установка выводов порта в состояние Hi-Z.
void GPIO_PinIRQ_Disable(uint32_t pin)
Отключение прерывания на входном выводе GPIO.
void GPIO_PortSet_Schmitt(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
Включение триггера Шмидта на входных выводах порта GPIO.
void GPIO_PinIRQ_Clear(uint32_t pin)
Сброс прерывания на входном выводе GPIO.
void GPIO_PinMode_Function(uint32_t pin, gpio_pin_function_t func)
Установка вывода в режим альтернативной функции IOCTR.
void GPIO_PinIRQ_Enable(uint32_t pin, gpio_int_type_t int_type)
Включение прерывания на входном выводе GPIO.
void GPIO_PortWrite(GPIO_Type *port, uint32_t bit_mask, uint32_t bit_value)
Установка логического уровня выводов порта GPIO.
gpio_pin_pupd_t
Настройки внутренних резистивных подтяжек на выводах для режимов Push-Pull и Open-Drain.
Definition hal_gpio.h:107
@ GPIO_PULL_UP_OD
Definition hal_gpio.h:113
@ GPIO_PULL_NONE
Definition hal_gpio.h:108
@ GPIO_PULL_DOWN_OD
Definition hal_gpio.h:112
@ GPIO_PULL_NONE_OD
Definition hal_gpio.h:111
@ GPIO_PULL_DOWN
Definition hal_gpio.h:109
@ GPIO_PULL_UP
Definition hal_gpio.h:110
void GPIO_PortSecureIRQ_SetMask(GPIO_Type *port, uint32_t mask)
Установка разрешений прерываний по нарушению безопасности порта GPIO.
void GPIO_PortIRQ_Enable(GPIO_Type *port, uint32_t bit_mask, uint32_t int_type)
Включение прерываний на входных выводах порта GPIO.
uint32_t GPIO_PinIRQ_GetStatus(uint32_t pin)
Чтение статуса прерывания на входном выводе GPIO.
void GPIO_PortSet_PUPD(GPIO_Type *port, uint32_t bit_mask, gpio_pin_pupd_t pupd)
Настройка резистивной подтяжки выводов порта GPIO.
uint32_t GPIO_PortIRQ_GetStatus(GPIO_Type *port, uint32_t bit_mask)
Чтение статусов прерываний на входных выводах порта GPIO.
void GPIO_PortSecureIRQ_Clear(GPIO_Type *port)
Сброс прерывания по нарушению безопасности порта GPIO.
uint32_t GPIO_PortRead(GPIO_Type *port, uint32_t bit_mask)
Чтение логического уровня выводов порта GPIO.
void GPIO_PinToggle(uint32_t pin)
Инвертирование логического уровня вывода GPIO.
void GPIO_PortMode_GPIO(GPIO_Type *port, uint32_t bit_mask, gpio_pin_direction_t direction)
Установка выводов порта в режим GPIO.
void GPIO_PinSet_Schmitt(uint32_t pin, uint32_t value)
Включение триггера Шмидта на входном выводе GPIO.
void GPIO_PinMode_HiZ(uint32_t pin)
Установка вывода в состояние Hi-Z.
gpio_pin_direction_t
Направление вывода GPIO (вход или выход)
Definition hal_gpio.h:97
@ GPIO_DigitalInput
Definition hal_gpio.h:98
@ GPIO_DigitalOutput
Definition hal_gpio.h:99
int32_t GPIO_GetInstance(GPIO_Type *port)
Определение номера порта GPIO.
void GPIO_PortMode_Function(GPIO_Type *port, uint32_t bit_mask, gpio_pin_function_t func)
Установка выводов порта в режим альтернативной функции IOCTR.
void GPIO_PortIRQ_Disable(GPIO_Type *port, uint32_t bit_mask)
Отключение прерываний на входных выводах порта GPIO.
void GPIO_PortToggle(GPIO_Type *port, uint32_t bit_mask)
Инвертирование логического уровня выводов порта GPIO.
gpio_int_type_t
Список типов прерываний входных выводов GPIO.
Definition hal_gpio.h:133
@ GPIO_INT_LVL_LO
Definition hal_gpio.h:134
@ GPIO_INT_EDGE_FALL
Definition hal_gpio.h:136
@ GPIO_INT_LVL_HI
Definition hal_gpio.h:135
@ GPIO_INT_EDGE_RISE
Definition hal_gpio.h:137
void GPIO_PinSet_PUPD(uint32_t pin, gpio_pin_pupd_t pupd)
Настройка резистивной подтяжки вывода GPIO.
void GPIO_PortIRQ_Clear(GPIO_Type *port, uint32_t bit_mask)
Сброс прерываний на входных выводах порта GPIO.