KETCube
ketCube_uart.h
Go to the documentation of this file.
1 
45 /* Define to prevent recursive inclusion -------------------------------------*/
46 #ifndef __KETCUBE_UART_H
47 #define __KETCUBE_UART_H
48 
49 #include "ketCube_cfg.h"
50 #include "ketCube_gpio.h"
51 
59 #define KETCUBE_UART_NAME "uart_drv"
60 
61 
66 typedef enum {
72 
75 
76 typedef void (*ketCube_UART_SimpleCbFn_t) (void);
77 
81 typedef struct {
82  UART_HandleTypeDef *handle;
83  IRQn_Type irqNumber;
94 
97  ketCube_UART_descriptor_t * descriptor);
101  ketCube_gpio_pin_t pin,
102  uint8_t af);
103 
104 extern UART_HandleTypeDef *ketCube_UART_GetHandle(ketCube_UART_ChannelNo_t
105  channel);
106 
110  channel);
113 
116  channel);
117 
118 extern void ketCube_UART_IoInitAll(void);
119 extern void ketCube_UART_IoDeInitAll(void);
120 
121 extern void ketCube_UART_EnableAll(void);
122 extern void ketCube_UART_DisableAll(void);
123 
128 #endif /* __KETCUBE_UART_H */
ketCube_UART_IoInitAll
void ketCube_UART_IoInitAll(void)
Initialize all registered descriptors (e.g. when going back from sleep)
Definition: ketCube_uart.c:177
ketCube_UART_UnRegisterHandle
ketCube_cfg_DrvError_t ketCube_UART_UnRegisterHandle(ketCube_UART_ChannelNo_t channel)
Unregister UART channel.
Definition: ketCube_uart.c:103
ketCube_UART_descriptor_t::fnTransmitCallback
ketCube_UART_SimpleCbFn_t fnTransmitCallback
Definition: ketCube_uart.h:90
KETCUBE_UART_CHANNEL_5
@ KETCUBE_UART_CHANNEL_5
Definition: ketCube_uart.h:71
ketCube_UART_descriptor_t::irqNumber
IRQn_Type irqNumber
Definition: ketCube_uart.h:83
ketCube_UART_ChannelNo_t
ketCube_UART_ChannelNo_t
UART supported channels.
Definition: ketCube_uart.h:66
ketCube_gpio_port_t
ketCube_gpio_port_t
GPIO Ports.
Definition: ketCube_gpio.h:88
ketCube_UART_descriptor_t::handle
UART_HandleTypeDef * handle
Definition: ketCube_uart.h:82
KETCUBE_UART_CHANNEL_3
@ KETCUBE_UART_CHANNEL_3
Definition: ketCube_uart.h:69
ketCube_UART_descriptor_t::fnIoDeInit
ketCube_UART_SimpleCbFn_t fnIoDeInit
Definition: ketCube_uart.h:87
ketCube_UART_WakeupCallback
void ketCube_UART_WakeupCallback(ketCube_UART_ChannelNo_t channel)
KETCUBE_UART_CHANNEL_1
@ KETCUBE_UART_CHANNEL_1
Definition: ketCube_uart.h:67
KETCUBE_UART_CHANNEL_COUNT
@ KETCUBE_UART_CHANNEL_COUNT
Definition: ketCube_uart.h:73
KETCUBE_UART_CHANNEL_2
@ KETCUBE_UART_CHANNEL_2
Definition: ketCube_uart.h:68
ketCube_UART_descriptor_t::fnWakeupCallback
ketCube_UART_SimpleCbFn_t fnWakeupCallback
Definition: ketCube_uart.h:92
ketCube_UART_descriptor_t::fnIoInit
ketCube_UART_SimpleCbFn_t fnIoInit
Definition: ketCube_uart.h:86
ketCube_UART_IoDeInitCallback
void ketCube_UART_IoDeInitCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_SetupPin
ketCube_cfg_DrvError_t ketCube_UART_SetupPin(ketCube_gpio_port_t port, ketCube_gpio_pin_t pin, uint8_t af)
Setup UART PIN(s)
Definition: ketCube_uart.c:210
KETCUBE_UART_CHANNEL_4
@ KETCUBE_UART_CHANNEL_4
Definition: ketCube_uart.h:70
ketCube_UART_SimpleCbFn_t
void(* ketCube_UART_SimpleCbFn_t)(void)
Definition: ketCube_uart.h:76
ketCube_gpio.h
This file contains definitions for the ketCube GPIO driver.
ketCube_UART_descriptor_t::irqSubPriority
int irqSubPriority
Definition: ketCube_uart.h:85
ketCube_UART_ErrorCallback
void ketCube_UART_ErrorCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_IoDeInitAll
void ketCube_UART_IoDeInitAll(void)
Denitialize all registered descriptors (e.g. when going to sleep)
Definition: ketCube_uart.c:190
ketCube_UART_TransmitCallback
void ketCube_UART_TransmitCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_descriptor_t
UART descriptor structure.
Definition: ketCube_uart.h:81
ketCube_UART_GetHandle
UART_HandleTypeDef * ketCube_UART_GetHandle(ketCube_UART_ChannelNo_t channel)
Retrieve UART handle for given channel.
Definition: ketCube_uart.c:121
ketCube_UART_descriptor_t::irqPriority
int irqPriority
Definition: ketCube_uart.h:84
ketCube_UART_IRQCallback
void ketCube_UART_IRQCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_DisableAll
void ketCube_UART_DisableAll(void)
Disable All UART Instances.
Definition: ketCube_uart.c:229
ketCube_UART_descriptor_t::fnIRQCallback
ketCube_UART_SimpleCbFn_t fnIRQCallback
Definition: ketCube_uart.h:88
ketCube_gpio_pin_t
ketCube_gpio_pin_t
List of GPIO PINs.
Definition: ketCube_gpio.h:65
ketCube_cfg.h
This file contains definitions for the KETCube configuration.
ketCube_UART_IoInitCallback
void ketCube_UART_IoInitCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_descriptor_t::fnErrorCallback
ketCube_UART_SimpleCbFn_t fnErrorCallback
Definition: ketCube_uart.h:91
ketCube_UART_ReceiveCallback
void ketCube_UART_ReceiveCallback(ketCube_UART_ChannelNo_t channel)
ketCube_UART_EnableAll
void ketCube_UART_EnableAll(void)
Enable All Registered UART Instances.
Definition: ketCube_uart.c:243
ketCube_cfg_DrvError_t
ketCube_cfg_DrvError_t
Error code type.
Definition: ketCube_cfg.h:108
ketCube_UART_descriptor_t::fnReceiveCallback
ketCube_UART_SimpleCbFn_t fnReceiveCallback
Definition: ketCube_uart.h:89
ketCube_UART_RegisterHandle
ketCube_cfg_DrvError_t ketCube_UART_RegisterHandle(ketCube_UART_ChannelNo_t channel, ketCube_UART_descriptor_t *descriptor)
Register UART channel for exclusive access.
Definition: ketCube_uart.c:72