mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-21 11:54:15 +01:00
Updated all function comments to doxygen style.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@22 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
c7a439daa5
commit
3cd296ceb4
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* @file pios_board.h
|
* @file pios_board.h
|
||||||
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2009.
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2009.
|
||||||
* @brief Defines board hardware for the OpenPilot hardware.
|
* @brief Defines board hardware for the OpenPilot Version 0.1 hardware.
|
||||||
* @see The GNU Public License (GPL) Version 3
|
* @see The GNU Public License (GPL) Version 3
|
||||||
*
|
*
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@ -35,19 +35,18 @@
|
|||||||
//------------------------
|
//------------------------
|
||||||
// DMA Channels Used
|
// DMA Channels Used
|
||||||
//------------------------
|
//------------------------
|
||||||
/* Channel 1 - */
|
/* Channel 1 - */
|
||||||
/* Channel 2 - SPI1 (SPI_SD_RX) */
|
/* Channel 2 - SPI1 (SPI_SD_RX) */
|
||||||
/* Channel 3 - SPI1 (SPI_SD_TX) */
|
/* Channel 3 - SPI1 (SPI_SD_TX) */
|
||||||
/* Channel 4 - */
|
/* Channel 4 - */
|
||||||
/* Channel 5 - */
|
/* Channel 5 - */
|
||||||
/* Channel 6 - */
|
/* Channel 6 - */
|
||||||
/* Channel 7 - */
|
/* Channel 7 - */
|
||||||
/* Channel 8 - */
|
/* Channel 8 - */
|
||||||
|
/* Channel 9 - */
|
||||||
/* Channel 9 - */
|
/* Channel 10 - */
|
||||||
/* Channel 10 - */
|
/* Channel 11 - */
|
||||||
/* Channel 11 - */
|
/* Channel 12 - */
|
||||||
/* Channel 12 - */
|
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
// Leds Definition
|
// Leds Definition
|
||||||
@ -152,7 +151,7 @@
|
|||||||
#define RECEIVER6_TIM_PORT TIM1
|
#define RECEIVER6_TIM_PORT TIM1
|
||||||
#define RECEIVER6_CH TIM_Channel_2 // TIM1_CH2
|
#define RECEIVER6_CH TIM_Channel_2 // TIM1_CH2
|
||||||
|
|
||||||
/* Not used in v1.2 HW
|
/* Not used in v0.1 HW
|
||||||
#define RECEIVER7_GPIO_PORT GPIOB
|
#define RECEIVER7_GPIO_PORT GPIOB
|
||||||
#define RECEIVER7_PIN GPIO_Pin_4 // PB4
|
#define RECEIVER7_PIN GPIO_Pin_4 // PB4
|
||||||
#define RECEIVER7_TIM_PORT TIM3
|
#define RECEIVER7_TIM_PORT TIM3
|
||||||
|
@ -43,11 +43,15 @@ static unsigned int prev_primask;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : IRQDisable
|
* Function Name : IRQDisable
|
||||||
* Description : Disables all interrupts (nested)
|
* Description :
|
||||||
* Input : None
|
* Input : None
|
||||||
* Output : None
|
* Output : None
|
||||||
* Return : Zero on no error
|
* Return : Zero on no error
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* Disables all interrupts (nested)
|
||||||
|
* \return < 0 On errors
|
||||||
|
*/
|
||||||
int IRQDisable(void)
|
int IRQDisable(void)
|
||||||
{
|
{
|
||||||
/* Get current priority if nested level == 0 */
|
/* Get current priority if nested level == 0 */
|
||||||
@ -73,11 +77,9 @@ int IRQDisable(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : IRQEnable
|
* Enables all interrupts (nested)
|
||||||
* Description : Enables all interrupts (nested)
|
* \return < 0 on errors
|
||||||
* Input : None
|
* \return -1 on nesting errors (IRQDisable() hasn't been called before)
|
||||||
* Output : None
|
|
||||||
* Return : Zero on no error, -1 on nesting error
|
|
||||||
*/
|
*/
|
||||||
int IRQEnable(void)
|
int IRQEnable(void)
|
||||||
{
|
{
|
||||||
|
@ -34,17 +34,13 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Local Variables */
|
/* Local Variables */
|
||||||
GPIO_TypeDef* LED_GPIO_PORT[NUM_LED] = {LED1_GPIO_PORT, LED2_GPIO_PORT};
|
static GPIO_TypeDef* LED_GPIO_PORT[NUM_LED] = {LED1_GPIO_PORT, LED2_GPIO_PORT};
|
||||||
const uint16_t LED_GPIO_PIN[NUM_LED] = {LED1_GPIO_PIN, LED2_GPIO_PIN};
|
static const uint16_t LED_GPIO_PIN[NUM_LED] = {LED1_GPIO_PIN, LED2_GPIO_PIN};
|
||||||
const uint32_t LED_GPIO_CLK[NUM_LED] = {LED1_GPIO_CLK, LED2_GPIO_CLK};
|
static const uint32_t LED_GPIO_CLK[NUM_LED] = {LED1_GPIO_CLK, LED2_GPIO_CLK};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : LED_INIT
|
* Initialises all the LED's
|
||||||
* Description : Initialises all the LED's
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void LED_INIT(void)
|
void LED_INIT(void)
|
||||||
{
|
{
|
||||||
@ -61,39 +57,30 @@ void LED_INIT(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : LED_ON
|
* Turn on LED
|
||||||
* Description : Turn on LED
|
* \param[in] LED LED Name (LED1, LED2)
|
||||||
* Input : LED Number
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void LED_ON(LedTypeDef LEDNum)
|
void LED_ON(LedTypeDef LED)
|
||||||
{
|
{
|
||||||
LED_GPIO_PORT[LEDNum]->BSRR = LED_GPIO_PIN[LEDNum];
|
LED_GPIO_PORT[LED]->BSRR = LED_GPIO_PIN[LED];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : LED_OFF
|
* Turn off LED
|
||||||
* Description : Turn off LED
|
* \param[in] LED LED Name (LED1, LED2)
|
||||||
* Input : LED Number
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void LED_OFF(LedTypeDef LEDNum)
|
void LED_OFF(LedTypeDef LED)
|
||||||
{
|
{
|
||||||
LED_GPIO_PORT[LEDNum]->BRR = LED_GPIO_PIN[LEDNum];
|
LED_GPIO_PORT[LED]->BRR = LED_GPIO_PIN[LED];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : LED_TOGGLE
|
* Toggle LED on/off
|
||||||
* Description : Turn on/off LED
|
* \param[in] LED LED Name (LED1, LED2)
|
||||||
* Input : LED Number
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void LED_TOGGLE(LedTypeDef LEDNum)
|
void LED_TOGGLE(LedTypeDef LED)
|
||||||
{
|
{
|
||||||
LED_GPIO_PORT[LEDNum]->ODR ^= LED_GPIO_PIN[LEDNum];
|
LED_GPIO_PORT[LED]->ODR ^= LED_GPIO_PIN[LED];
|
||||||
}
|
}
|
||||||
|
@ -31,8 +31,8 @@ typedef enum {LED1 = 0, LED2 = 1} LedTypeDef;
|
|||||||
|
|
||||||
/* Public Functions */
|
/* Public Functions */
|
||||||
extern void LED_INIT(void);
|
extern void LED_INIT(void);
|
||||||
extern void LED_ON(LedTypeDef LEDNum);
|
extern void LED_ON(LedTypeDef LED);
|
||||||
extern void LED_OFF(LedTypeDef LEDNum);
|
extern void LED_OFF(LedTypeDef LED);
|
||||||
extern void LED_TOGGLE(LedTypeDef LEDNum);
|
extern void LED_TOGGLE(LedTypeDef LED);
|
||||||
|
|
||||||
#endif /* PIOS_LED_H */
|
#endif /* PIOS_LED_H */
|
||||||
|
@ -38,30 +38,22 @@ SettingsTypeDef Settings;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : LoadSettings
|
* Populate System global Settings into Structs using MinIni, defaults are also set here.
|
||||||
* Description : Populate System global Vars into Structs using MinIni,
|
|
||||||
* : defaults are also set here. Only function in the file
|
|
||||||
* : and where all our system data is handled.
|
|
||||||
* : Called from the end of SysInit()
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
/* Value Reading: ini_getl("Section", "Key", (DefaultValue), IniFile); */
|
/* Value Reading: ini_getl("Section", "Key", (DefaultValue), IniFile); */
|
||||||
/* String Reading: ini_gets("Section", "Key", "DefaultValue", StrBuffer, sizearray(StrBuffer), IniFile); */
|
/* String Reading: ini_gets("Section", "Key", "DefaultValue", StrBuffer, sizearray(StrBuffer), IniFile); */
|
||||||
|
|
||||||
void LoadSettings(void)
|
void LoadSettings(void)
|
||||||
{
|
{
|
||||||
char StrBuffer[100];
|
char StrBuffer[100];
|
||||||
long Result;
|
long Result;
|
||||||
|
|
||||||
/* Section: GPS */
|
/* Section: GPS */
|
||||||
Settings.GPS.Baudrate = (uint32_t) ini_getl("GPS", "Baudrate", GPS_BAUDRATE, SETTINGS_FILE);
|
Settings.GPS.Baudrate = (uint32_t) ini_getl("GPS", "Baudrate", GPS_BAUDRATE, SETTINGS_FILE);
|
||||||
|
|
||||||
/* Section: Telemetry */
|
/* Section: Telemetry */
|
||||||
Settings.Telem.Baudrate = (uint32_t) ini_getl("Telemetry", "Baudrate", TELEM_BAUDRATE, SETTINGS_FILE);
|
Settings.Telem.Baudrate = (uint32_t) ini_getl("Telemetry", "Baudrate", TELEM_BAUDRATE, SETTINGS_FILE);
|
||||||
|
|
||||||
/* Section: Auxillary_UART */
|
/* Section: Auxillary_UART */
|
||||||
Settings.AuxUART.Enabled = (bool) ini_getl("Auxillary_UART", "Enabled", AUXUART_ENABLED, SETTINGS_FILE);
|
Settings.AuxUART.Enabled = (bool) ini_getl("Auxillary_UART", "Enabled", AUXUART_ENABLED, SETTINGS_FILE);
|
||||||
Settings.AuxUART.Baudrate = (uint32_t) ini_getl("Auxillary_UART", "Baudrate", AUXUART_BAUDRATE, SETTINGS_FILE);
|
Settings.AuxUART.Baudrate = (uint32_t) ini_getl("Auxillary_UART", "Baudrate", AUXUART_BAUDRATE, SETTINGS_FILE);
|
||||||
}
|
}
|
||||||
|
@ -35,17 +35,13 @@ void NVIC_Configuration(void);
|
|||||||
|
|
||||||
|
|
||||||
/* Local Variables */
|
/* Local Variables */
|
||||||
FATFS Fatfs[_DRIVES]; // File system object for each logical drive */
|
/* File system object for each logical drive */
|
||||||
|
static FATFS Fatfs[_DRIVES];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : SysInit
|
* Initializes all system peripherals
|
||||||
* Description : Brings up the System and Initializes peripherals
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
//TODO: Get these in the right order, settings need to be loaded ASAP
|
|
||||||
void SysInit(void)
|
void SysInit(void)
|
||||||
{
|
{
|
||||||
/* Setup STM32 system (RCC, clock, PLL and Flash configuration) - CMSIS Function */
|
/* Setup STM32 system (RCC, clock, PLL and Flash configuration) - CMSIS Function */
|
||||||
@ -67,17 +63,14 @@ void SysInit(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Call LoadSettings which populates System Vars */
|
/* Call LoadSettings which populates System Vars */
|
||||||
|
/* Settings can not be loaded before this point */
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : GPIO_Configuration
|
* Configures base level GPIO ports.
|
||||||
* Description : Configures base level GPIO ports.
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void GPIO_Configuration(void)
|
void GPIO_Configuration(void)
|
||||||
{
|
{
|
||||||
@ -86,11 +79,7 @@ void GPIO_Configuration(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function Name : NVIC_Configuration
|
* Configures Vector Table base location and SysTick
|
||||||
* Description : Configures Vector Table base location and SysTick
|
|
||||||
* Input : None
|
|
||||||
* Output : None
|
|
||||||
* Return : None
|
|
||||||
*/
|
*/
|
||||||
void NVIC_Configuration(void)
|
void NVIC_Configuration(void)
|
||||||
{
|
{
|
||||||
|
@ -46,9 +46,7 @@ static volatile u8 tx_buffer_size[UART_NUM];
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Initialise the GPS and TELEM onboard UARTs
|
* Initialise the GPS and TELEM onboard UARTs
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void UARTInit(void)
|
void UARTInit(void)
|
||||||
{
|
{
|
||||||
@ -141,9 +139,7 @@ void UARTInit(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Enables AUX UART at the expense of servo inputs
|
* Enables AUX UART at the expense of servo inputs
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void EnableAuxUART(void)
|
void EnableAuxUART(void)
|
||||||
{
|
{
|
||||||
@ -152,9 +148,7 @@ void EnableAuxUART(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Disables AUX UART reclaims two servo inputs
|
* Disables AUX UART reclaims two servo inputs
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void DisableAuxUART(void)
|
void DisableAuxUART(void)
|
||||||
{
|
{
|
||||||
@ -163,11 +157,9 @@ void DisableAuxUART(void)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* Changes the baud rate of the USART peripherial without re-initialising.
|
* Changes the baud rate of the USART peripherial without re-initialising.
|
||||||
* \param[in] USARTx UART Number
|
* \param[in] USARTx UART name (GPS, TELEM, AUX)
|
||||||
* \param[in] Baud Requested baud rate
|
* \param[in] Baud Requested baud rate
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
void UARTChangeBaud(USART_TypeDef* USARTx, uint32_t Baud)
|
void UARTChangeBaud(USART_TypeDef* USARTx, uint32_t Baud)
|
||||||
{
|
{
|
||||||
@ -175,29 +167,29 @@ void UARTChangeBaud(USART_TypeDef* USARTx, uint32_t Baud)
|
|||||||
/* Configure the USART Baud Rate */
|
/* Configure the USART Baud Rate */
|
||||||
/* Adapted from stm32f01x_usart.c */
|
/* Adapted from stm32f01x_usart.c */
|
||||||
|
|
||||||
uint32_t tmpreg = 0x00, apbclock = 0x00;
|
uint32_t TmpReg = 0x00, ApbClock = 0x00;
|
||||||
uint32_t integerdivider = 0x00;
|
uint32_t IntegerDivider = 0x00;
|
||||||
uint32_t fractionaldivider = 0x00;
|
uint32_t FractionalDivider = 0x00;
|
||||||
uint32_t usartxbase = (uint32_t)USARTx;
|
uint32_t USARTxBase = (uint32_t)USARTx;
|
||||||
RCC_ClocksTypeDef RCC_ClocksStatus;
|
RCC_ClocksTypeDef RCC_ClocksStatus;
|
||||||
|
|
||||||
RCC_GetClocksFreq(&RCC_ClocksStatus);
|
RCC_GetClocksFreq(&RCC_ClocksStatus);
|
||||||
if (usartxbase == USART1_BASE) {
|
if (USARTxBase == USART1_BASE) {
|
||||||
apbclock = RCC_ClocksStatus.PCLK2_Frequency;
|
ApbClock = RCC_ClocksStatus.PCLK2_Frequency;
|
||||||
} else {
|
} else {
|
||||||
apbclock = RCC_ClocksStatus.PCLK1_Frequency;
|
ApbClock = RCC_ClocksStatus.PCLK1_Frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Determine the integer part */
|
/* Determine the integer part */
|
||||||
integerdivider = ((0x19 * apbclock) / (0x04 * (Baud)));
|
IntegerDivider = ((0x19 * ApbClock) / (0x04 * (Baud)));
|
||||||
tmpreg = (integerdivider / 0x64) << 0x04;
|
TmpReg = (IntegerDivider / 0x64) << 0x04;
|
||||||
|
|
||||||
/* Determine the fractional part */
|
/* Determine the fractional part */
|
||||||
fractionaldivider = integerdivider - (0x64 * (tmpreg >> 0x04));
|
FractionalDivider = IntegerDivider - (0x64 * (TmpReg >> 0x04));
|
||||||
tmpreg |= ((((fractionaldivider * 0x10) + 0x32) / 0x64)) & ((uint8_t)0x0F);
|
TmpReg |= ((((FractionalDivider * 0x10) + 0x32) / 0x64)) & ((uint8_t)0x0F);
|
||||||
|
|
||||||
/* Write to USART BRR */
|
/* Write to USART BRR */
|
||||||
USARTx->BRR = (uint16_t)tmpreg;
|
USARTx->BRR = (uint16_t)TmpReg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -205,13 +197,13 @@ void UARTChangeBaud(USART_TypeDef* USARTx, uint32_t Baud)
|
|||||||
/* WORK IN PROGRESS BELOW */
|
/* WORK IN PROGRESS BELOW */
|
||||||
/*----------------------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! returns number of free bytes in receive buffer
|
* Returns number of free bytes in receive buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return uart number of free bytes
|
* \return uart number of free bytes
|
||||||
//! \return 1: uart available
|
* \return 1: uart available
|
||||||
//! \return 0: uart not available
|
* \return 0: uart not available
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTRxBufferFree(UARTNumTypeDef uart)
|
int UARTRxBufferFree(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -221,13 +213,13 @@ int UARTRxBufferFree(UARTNumTypeDef uart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! returns number of used bytes in receive buffer
|
* Returns number of used bytes in receive buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return > 0: number of used bytes
|
* \return > 0: number of used bytes
|
||||||
//! \return 0 if uart not available
|
* \return 0 if uart not available
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTRxBufferUsed(UARTNumTypeDef uart)
|
int UARTRxBufferUsed(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -237,17 +229,16 @@ int UARTRxBufferUsed(UARTNumTypeDef uart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! gets a byte from the receive buffer
|
* Gets a byte from the receive buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if no new byte available
|
* \return -2 if no new byte available
|
||||||
//! \return >= 0: number of received bytes
|
* \return >= 0: number of received bytes
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTRxBufferGet(UARTNumTypeDef uart)
|
int UARTRxBufferGet(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
/* UART not available */
|
/* UART not available */
|
||||||
return -1;
|
return -1;
|
||||||
@ -259,7 +250,7 @@ int UARTRxBufferGet(UARTNumTypeDef uart)
|
|||||||
|
|
||||||
/* get byte - this operation should be atomic! */
|
/* get byte - this operation should be atomic! */
|
||||||
IRQDisable();
|
IRQDisable();
|
||||||
u8 b = rx_buffer[uart][rx_buffer_tail[uart]];
|
uint8_t b = rx_buffer[uart][rx_buffer_tail[uart]];
|
||||||
if(++rx_buffer_tail[uart] >= UART_RX_BUFFER_SIZE) {
|
if(++rx_buffer_tail[uart] >= UART_RX_BUFFER_SIZE) {
|
||||||
rx_buffer_tail[uart] = 0;
|
rx_buffer_tail[uart] = 0;
|
||||||
}
|
}
|
||||||
@ -270,14 +261,14 @@ int UARTRxBufferGet(UARTNumTypeDef uart)
|
|||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! returns the next byte of the receive buffer without taking it
|
* Returns the next byte of the receive buffer without taking it
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if no new byte available
|
* \return -2 if no new byte available
|
||||||
//! \return >= 0: number of received bytes
|
* \return >= 0: number of received bytes
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTRxBufferPeek(UARTNumTypeDef uart)
|
int UARTRxBufferPeek(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -299,15 +290,15 @@ int UARTRxBufferPeek(UARTNumTypeDef uart)
|
|||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! puts a byte onto the receive buffer
|
* puts a byte onto the receive buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \param[in] b byte which should be put into Rx buffer
|
* \param[in] b byte which should be put into Rx buffer
|
||||||
//! \return 0 if no error
|
* \return 0 if no error
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if buffer full (retry)
|
* \return -2 if buffer full (retry)
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTRxBufferPut(UARTNumTypeDef uart, uint8_t b)
|
int UARTRxBufferPut(UARTNumTypeDef uart, uint8_t b)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -335,13 +326,13 @@ int UARTRxBufferPut(UARTNumTypeDef uart, uint8_t b)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! returns number of free bytes in transmit buffer
|
* returns number of free bytes in transmit buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return number of free bytes
|
* \return number of free bytes
|
||||||
//! \return 0 if uart not available
|
* \return 0 if uart not available
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferFree(UARTNumTypeDef uart)
|
int UARTTxBufferFree(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -351,13 +342,13 @@ int UARTTxBufferFree(UARTNumTypeDef uart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! returns number of used bytes in transmit buffer
|
* returns number of used bytes in transmit buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return number of used bytes
|
* \return number of used bytes
|
||||||
//! \return 0 if uart not available
|
* \return 0 if uart not available
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferUsed(UARTNumTypeDef uart)
|
int UARTTxBufferUsed(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -367,14 +358,14 @@ int UARTTxBufferUsed(UARTNumTypeDef uart)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! gets a byte from the transmit buffer
|
* gets a byte from the transmit buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if no new byte available
|
* \return -2 if no new byte available
|
||||||
//! \return >= 0: transmitted byte
|
* \return >= 0: transmitted byte
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferGet(UARTNumTypeDef uart)
|
int UARTTxBufferGet(UARTNumTypeDef uart)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -400,17 +391,17 @@ int UARTTxBufferGet(UARTNumTypeDef uart)
|
|||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! puts more than one byte onto the transmit buffer (used for atomic sends)
|
* puts more than one byte onto the transmit buffer (used for atomic sends)
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \param[in] *buffer pointer to buffer to be sent
|
* \param[in] *buffer pointer to buffer to be sent
|
||||||
//! \param[in] len number of bytes to be sent
|
* \param[in] len number of bytes to be sent
|
||||||
//! \return 0 if no error
|
* \return 0 if no error
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if buffer full or cannot get all requested bytes (retry)
|
* \return -2 if buffer full or cannot get all requested bytes (retry)
|
||||||
//! \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
* \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferPutMore_NonBlocking(UARTNumTypeDef uart, uint8_t *buffer, uint16_t len)
|
int UARTTxBufferPutMore_NonBlocking(UARTNumTypeDef uart, uint8_t *buffer, uint16_t len)
|
||||||
{
|
{
|
||||||
if(uart >= UART_NUM) {
|
if(uart >= UART_NUM) {
|
||||||
@ -456,17 +447,17 @@ int UARTTxBufferPutMore_NonBlocking(UARTNumTypeDef uart, uint8_t *buffer, uint16
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! puts more than one byte onto the transmit buffer (used for atomic sends)<BR>
|
* puts more than one byte onto the transmit buffer (used for atomic sends)<BR>
|
||||||
//! (blocking function)
|
* (blocking function)
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \param[in] *buffer pointer to buffer to be sent
|
* \param[in] *buffer pointer to buffer to be sent
|
||||||
//! \param[in] len number of bytes to be sent
|
* \param[in] len number of bytes to be sent
|
||||||
//! \return 0 if no error
|
* \return 0 if no error
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
* \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferPutMore(UARTNumTypeDef uart, uint8_t *buffer, uint16_t len)
|
int UARTTxBufferPutMore(UARTNumTypeDef uart, uint8_t *buffer, uint16_t len)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
@ -476,33 +467,33 @@ int UARTTxBufferPutMore(UARTNumTypeDef uart, uint8_t *buffer, uint16_t len)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! puts a byte onto the transmit buffer
|
* puts a byte onto the transmit buffer
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \param[in] b byte which should be put into Tx buffer
|
* \param[in] b byte which should be put into Tx buffer
|
||||||
//! \return 0 if no error
|
* \return 0 if no error
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -2 if buffer full (retry)
|
* \return -2 if buffer full (retry)
|
||||||
//! \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
* \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferPut_NonBlocking(UARTNumTypeDef uart, uint8_t b)
|
int UARTTxBufferPut_NonBlocking(UARTNumTypeDef uart, uint8_t b)
|
||||||
{
|
{
|
||||||
/* For more comfortable usage... */
|
/* For more comfortable usage... */
|
||||||
/* -> Just forward to MIOS32_UART_TxBufferPutMore */
|
/* -> Just forward to UARTTxBufferPutMore */
|
||||||
return UARTTxBufferPutMore(uart, &b, 1);
|
return UARTTxBufferPutMore(uart, &b, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/**
|
||||||
//! puts a byte onto the transmit buffer<BR>
|
* puts a byte onto the transmit buffer<BR>
|
||||||
//! (blocking function)
|
* (blocking function)
|
||||||
//! \param[in] uart UART number (0..1)
|
* \param[in] uart UART name (GPS, TELEM, AUX)
|
||||||
//! \param[in] b byte which should be put into Tx buffer
|
* \param[in] b byte which should be put into Tx buffer
|
||||||
//! \return 0 if no error
|
* \return 0 if no error
|
||||||
//! \return -1 if UART not available
|
* \return -1 if UART not available
|
||||||
//! \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
* \return -3 if UART not supported by MIOS32_UART_TxBufferPut Routine
|
||||||
//! \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
* \note Applications shouldn't call these functions directly, instead please use \ref MIOS32_COM or \ref MIOS32_MIDI layer functions
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
*/
|
||||||
int UARTTxBufferPut(UARTNumTypeDef uart, uint8_t b)
|
int UARTTxBufferPut(UARTNumTypeDef uart, uint8_t b)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user