---vl6180dr
This commit is contained in:
12
App/app.cpp
12
App/app.cpp
@@ -111,7 +111,7 @@ void proximityMessureCompleted (void)
|
||||
|
||||
VL6180_RangeData_t VL6180_Range;
|
||||
uint32_t waitAnswerFromReaderMs = 0;
|
||||
#define MAX_WAIT_ANSWER_FROM_GM60 10000
|
||||
#define MAX_WAIT_ANSWER_FROM_GM60 30000
|
||||
#define DATA_TIMEOUT 500
|
||||
|
||||
uint32_t lightStartMs = 0;
|
||||
@@ -131,7 +131,9 @@ uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
||||
}
|
||||
}
|
||||
|
||||
if (!bridge.uart1Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart2(), UART_FLAG_TC))) {
|
||||
if (!bridge.uart1Buf->is_empty() && bridge.getHuart2()->gState == 0x20) {
|
||||
HAL_UART_Abort(bridge.getHuart1());
|
||||
HAL_UARTEx_ReceiveToIdle_IT(bridge.getHuart1(),(uint8_t*)bridge.dataFromUart1, BUF_SIZE );
|
||||
waitAnswerFromReaderMs = HAL_GetTick();
|
||||
std::string_view stringView{bridge.uart1Buf->dequeue()};
|
||||
uint32_t size = stringView.size();
|
||||
@@ -140,7 +142,7 @@ uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
||||
stringView.copy(reinterpret_cast<char *>(uart1Buf), size, 0);
|
||||
if (stringView.find("FIRMWARE_UPDATE") != std::string::npos)
|
||||
{
|
||||
HAL_UART_DeInit(&huart1);
|
||||
HAL_UART_DeInit(bridge.getHuart1());
|
||||
BootComInit();
|
||||
zummerOff();
|
||||
lightingOff();
|
||||
@@ -154,12 +156,14 @@ uint8_t uartTask (void) // return 0 if data received , otherwise return 1
|
||||
zummerOff();
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_UART_Transmit_IT(bridge.getHuart2(), (const uint8_t*) uart1Buf, size);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!bridge.uart2Buf->is_empty() && (__HAL_UART_GET_FLAG(bridge.getHuart1(), UART_FLAG_TC))) {
|
||||
if (!bridge.uart2Buf->is_empty() && bridge.getHuart1()->gState == 0x20) {
|
||||
waitAnswerFromReaderMs = 0;
|
||||
std::string_view stringView{bridge.uart2Buf->dequeue()};
|
||||
uint32_t size = stringView.size();
|
||||
|
||||
@@ -20,9 +20,6 @@ extern "C" void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t S
|
||||
{
|
||||
std::string_view stringView{(const char *) bridgePnt->dataFromUart1, Size};
|
||||
bridgePnt->uart1Buf->enqueue(stringView);
|
||||
HAL_UART_Abort(bridgePnt->getHuart1());
|
||||
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart1(),(uint8_t*)bridgePnt->dataFromUart1, BUF_SIZE );
|
||||
|
||||
}
|
||||
else if (huart == bridgePnt->getHuart2())
|
||||
{
|
||||
@@ -97,8 +94,25 @@ UART_HandleTypeDef* UartBridge::getHuart2() {
|
||||
void UartBridge::init(void) {
|
||||
uartInit(&uart1Handle);
|
||||
uartInit(&uart2Handle);
|
||||
|
||||
HAL_UARTEx_ReceiveToIdle_IT(&uart1Handle,(uint8_t*)dataFromUart1, BUF_SIZE );
|
||||
HAL_UARTEx_ReceiveToIdle_IT(&uart2Handle,(uint8_t*)dataFromUart2, BUF_SIZE );
|
||||
__HAL_UART_CLEAR_FEFLAG(&uart1Handle);
|
||||
__HAL_UART_CLEAR_OREFLAG(&uart1Handle);
|
||||
__HAL_UART_CLEAR_NEFLAG(&uart1Handle);
|
||||
__HAL_UART_CLEAR_PEFLAG(&uart1Handle);
|
||||
__HAL_UART_CLEAR_FEFLAG(&uart2Handle);
|
||||
__HAL_UART_CLEAR_OREFLAG(&uart2Handle);
|
||||
__HAL_UART_CLEAR_NEFLAG(&uart2Handle);
|
||||
__HAL_UART_CLEAR_PEFLAG(&uart2Handle);
|
||||
__HAL_UART_DISABLE_IT(&uart1Handle, UART_IT_ORE);
|
||||
__HAL_UART_DISABLE_IT(&uart1Handle, UART_IT_PE);
|
||||
__HAL_UART_DISABLE_IT(&uart1Handle, UART_IT_FE);
|
||||
__HAL_UART_DISABLE_IT(&uart1Handle, UART_IT_NE);
|
||||
__HAL_UART_DISABLE_IT(&uart2Handle, UART_IT_ORE);
|
||||
__HAL_UART_DISABLE_IT(&uart2Handle, UART_IT_PE);
|
||||
__HAL_UART_DISABLE_IT(&uart2Handle, UART_IT_FE);
|
||||
__HAL_UART_DISABLE_IT(&uart2Handle, UART_IT_NE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -29,94 +29,6 @@ UART_HandleTypeDef huart2;
|
||||
|
||||
/* USART1 init function */
|
||||
|
||||
void MX_USART1_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART1_Init 0 */
|
||||
|
||||
/* USER CODE END USART1_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART1_Init 1 */
|
||||
|
||||
/* USER CODE END USART1_Init 1 */
|
||||
huart1.Instance = USART1;
|
||||
huart1.Init.BaudRate = 9600;
|
||||
huart1.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
huart1.Init.StopBits = UART_STOPBITS_1;
|
||||
huart1.Init.Parity = UART_PARITY_NONE;
|
||||
huart1.Init.Mode = UART_MODE_TX_RX;
|
||||
huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
|
||||
huart1.Init.OverSampling = UART_OVERSAMPLING_16;
|
||||
huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||
huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||||
huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_SWAP_INIT;
|
||||
huart1.AdvancedInit.Swap = UART_ADVFEATURE_SWAP_ENABLE;
|
||||
if (HAL_UART_Init(&huart1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART1_Init 2 */
|
||||
|
||||
/* USER CODE END USART1_Init 2 */
|
||||
|
||||
}
|
||||
/* USART2 init function */
|
||||
|
||||
void MX_USART2_UART_Init(void)
|
||||
{
|
||||
|
||||
/* USER CODE BEGIN USART2_Init 0 */
|
||||
|
||||
/* USER CODE END USART2_Init 0 */
|
||||
|
||||
/* USER CODE BEGIN USART2_Init 1 */
|
||||
|
||||
/* USER CODE END USART2_Init 1 */
|
||||
huart2.Instance = USART2;
|
||||
huart2.Init.BaudRate = 9600;
|
||||
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;
|
||||
huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
|
||||
huart2.Init.ClockPrescaler = UART_PRESCALER_DIV1;
|
||||
huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
|
||||
if (HAL_UART_Init(&huart2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_SetTxFifoThreshold(&huart2, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_SetRxFifoThreshold(&huart2, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
if (HAL_UARTEx_DisableFifoMode(&huart2) != HAL_OK)
|
||||
{
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN USART2_Init 2 */
|
||||
|
||||
/* USER CODE END USART2_Init 2 */
|
||||
|
||||
}
|
||||
|
||||
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user