Mercurial > public > ostc4
view Small_CPU/Src/uart.c @ 261:cc2406b835ff bm-3
Bugfix: do not reset saturation on surfacing
Commit 822416168585 introduced a subtle bug. On surfacing, the value of
saturation was reset to 0. This is prefect proof why global data is a
dangerous thing, and subtle changes can introduce seemingly unrelated
bugs.
While it would be much better to factor out as much as possible global
data, the fix here does not do that. Simply, the bug is fixed without
touching the rather complex gTissue_nitrogen_bar/gTissue_helium_bar
handling.
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author | Jan Mulder <jlmulder@xs4all.nl> |
---|---|
date | Tue, 23 Apr 2019 13:05:20 +0200 |
parents | 5f11787b4f42 |
children | 1b995079c045 |
line wrap: on
line source
/** ****************************************************************************** * @file uart.c * @author heinrichs weikamp gmbh * @version V0.0.1 * @date 27-March-2014 * @brief button control * @verbatim ============================================================================== ##### How to use ##### ============================================================================== @endverbatim ****************************************************************************** * @attention * * <h2><center>© COPYRIGHT(c) 2015 heinrichs weikamp</center></h2> * ****************************************************************************** */ /* Includes ------------------------------------------------------------------*/ #include "uart.h" /* Private variables ---------------------------------------------------------*/ UART_HandleTypeDef huart2; /* Exported functions --------------------------------------------------------*/ void MX_USART2_UART_Init(void) { /* pullup special */ GPIO_InitTypeDef GPIO_InitStructure; __GPIOA_CLK_ENABLE(); GPIO_InitStructure.Pin = GPIO_PIN_2; GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStructure.Pull = GPIO_PULLUP; GPIO_InitStructure.Speed = GPIO_SPEED_FAST; HAL_GPIO_Init(GPIOA, &GPIO_InitStructure); /* regular init */ huart2.Instance = USART2; huart2.Init.BaudRate = 1200; huart2.Init.WordLength = UART_WORDLENGTH_8B; huart2.Init.StopBits = UART_STOPBITS_1; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart2.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart2); } uint8_t UART_ButtonAdjust(uint8_t *array) { uint8_t answer[4]; HAL_UART_Transmit(&huart2,array,4,1000); HAL_UART_Receive(&huart2,answer,4,2000); if( (answer[0] == array[0]) &&(answer[1] == array[1]) &&(answer[2] == array[2]) &&(answer[3] == array[3])) return 1; else return 0; } void MX_USART2_UART_DeInit(void) { HAL_UART_DeInit(&huart2); } /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/