KETCube
Macros | Functions | Variables
ketCube_uart.c File Reference

This file contains definitions for the UART manager. More...

#include "stm32l0xx_hal.h"
#include "stm32l0xx_hal_uart.h"
#include "ketCube_uart.h"
#include "ketCube_gpio.h"

Macros

#define DEFINE_CALLBACK_FNC(cbname, cbfnc)
 

Functions

ketCube_cfg_DrvError_t ketCube_UART_RegisterHandle (ketCube_UART_ChannelNo_t channel, ketCube_UART_descriptor_t *descriptor)
 Register UART channel for exclusive access. More...
 
ketCube_cfg_DrvError_t ketCube_UART_UnRegisterHandle (ketCube_UART_ChannelNo_t channel)
 Unregister UART channel. More...
 
UART_HandleTypeDef * ketCube_UART_GetHandle (ketCube_UART_ChannelNo_t channel)
 Retrieve UART handle for given channel. More...
 
 DEFINE_CALLBACK_FNC (IRQCallback, fnIRQCallback)
 IRQ callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (ReceiveCallback, fnReceiveCallback)
 IRQ callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (TransmitCallback, fnTransmitCallback)
 TX complete callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (ErrorCallback, fnErrorCallback)
 Error callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (WakeupCallback, fnWakeupCallback)
 Wakeup callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (IoInitCallback, fnIoInit)
 IO ports init callback for given channel. More...
 
 DEFINE_CALLBACK_FNC (IoDeInitCallback, fnIoDeInit)
 IO ports deinit callback for given channel. More...
 
void ketCube_UART_IoInitAll (void)
 Initialize all registered descriptors (e.g. when going back from sleep) More...
 
void ketCube_UART_IoDeInitAll (void)
 Denitialize all registered descriptors (e.g. when going to sleep) More...
 
ketCube_cfg_DrvError_t ketCube_UART_SetupPin (ketCube_gpio_port_t port, ketCube_gpio_pin_t pin, uint8_t af)
 Setup UART PIN(s) More...
 
void ketCube_UART_DisableAll (void)
 Disable All UART Instances. More...
 
void ketCube_UART_EnableAll (void)
 Enable All Registered UART Instances. More...
 

Variables

static ketCube_UART_descriptor_tketCube_UART_descriptors [KETCUBE_UART_CHANNEL_COUNT]
 Array of registered descriptors. More...
 

Detailed Description

This file contains definitions for the UART manager.

Author
Martin Ubl
Version
0.1
Date
2018-03-07
Attention

© Copyright (c) 2018 University of West Bohemia in Pilsen All rights reserved.

Developed by: The SmartCampus Team Department of Technologies and Measurement www.smartcampus.cz | www.zcu.cz

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal with the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE.

Macro Definition Documentation

◆ DEFINE_CALLBACK_FNC

#define DEFINE_CALLBACK_FNC (   cbname,
  cbfnc 
)
Value:
void ketCube_UART_##cbname(ketCube_UART_ChannelNo_t channel)\
{\
if (ketCube_UART_descriptors[channel] == NULL || ketCube_UART_descriptors[channel]->cbfnc == NULL){\
return;\
}\
(ketCube_UART_descriptors[channel]->cbfnc )();\
}

Function Documentation

◆ DEFINE_CALLBACK_FNC() [1/7]

DEFINE_CALLBACK_FNC ( ErrorCallback  ,
fnErrorCallback   
)

Error callback for given channel.

◆ DEFINE_CALLBACK_FNC() [2/7]

DEFINE_CALLBACK_FNC ( IoDeInitCallback  ,
fnIoDeInit   
)

IO ports deinit callback for given channel.

◆ DEFINE_CALLBACK_FNC() [3/7]

DEFINE_CALLBACK_FNC ( IoInitCallback  ,
fnIoInit   
)

IO ports init callback for given channel.

◆ DEFINE_CALLBACK_FNC() [4/7]

DEFINE_CALLBACK_FNC ( IRQCallback  ,
fnIRQCallback   
)

IRQ callback for given channel.

◆ DEFINE_CALLBACK_FNC() [5/7]

DEFINE_CALLBACK_FNC ( ReceiveCallback  ,
fnReceiveCallback   
)

IRQ callback for given channel.

◆ DEFINE_CALLBACK_FNC() [6/7]

DEFINE_CALLBACK_FNC ( TransmitCallback  ,
fnTransmitCallback   
)

TX complete callback for given channel.

Parameters
channelUART channel

◆ DEFINE_CALLBACK_FNC() [7/7]

DEFINE_CALLBACK_FNC ( WakeupCallback  ,
fnWakeupCallback   
)

Wakeup callback for given channel.

Variable Documentation

◆ ketCube_UART_descriptors

ketCube_UART_descriptor_t* ketCube_UART_descriptors[KETCUBE_UART_CHANNEL_COUNT]
static
Initial value:
= {
NULL,
NULL,
NULL,
NULL,
NULL
}

Array of registered descriptors.

ketCube_UART_ChannelNo_t
ketCube_UART_ChannelNo_t
UART supported channels.
Definition: ketCube_uart.h:66
ketCube_UART_descriptors
static ketCube_UART_descriptor_t * ketCube_UART_descriptors[KETCUBE_UART_CHANNEL_COUNT]
Array of registered descriptors.
Definition: ketCube_uart.c:57