---vl6180dr
This commit is contained in:
@@ -3,27 +3,31 @@
|
||||
//
|
||||
extern "C" {
|
||||
#include "usart.h"
|
||||
#include "tim.h"
|
||||
|
||||
}
|
||||
#include "uart_bridge.hpp"
|
||||
|
||||
UartBridge* bridgePnt;
|
||||
|
||||
|
||||
uint8_t data[2];
|
||||
|
||||
|
||||
|
||||
extern "C" void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){
|
||||
extern "C" void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
|
||||
|
||||
if (huart == bridgePnt->getHuart1())
|
||||
{
|
||||
bridgePnt->uart1Buf->enqueue(bridgePnt->dataFromUart1);
|
||||
HAL_UART_Receive_IT(bridgePnt->getHuart1(), (uint8_t*)&bridgePnt->dataFromUart1, 1);
|
||||
std::string_view stringView{(const char *) bridgePnt->dataFromUart1, Size};
|
||||
bridgePnt->uart1Buf->enqueue(stringView);
|
||||
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart1(),(uint8_t*)bridgePnt->dataFromUart1, BUF_SIZE );
|
||||
|
||||
}
|
||||
else if (huart == bridgePnt->getHuart2())
|
||||
{
|
||||
bridgePnt->uart2Buf->enqueue(bridgePnt->dataFromUart2);
|
||||
HAL_UART_Receive_IT(bridgePnt->getHuart2(), (uint8_t*)&bridgePnt->dataFromUart2, 1);
|
||||
std::string_view stringView{(const char *) bridgePnt->dataFromUart2, Size};
|
||||
bridgePnt->uart2Buf->enqueue(stringView);
|
||||
HAL_UARTEx_ReceiveToIdle_IT(bridgePnt->getHuart2(),(uint8_t*)bridgePnt->dataFromUart2, BUF_SIZE );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -34,8 +38,8 @@ UartBridge::UartBridge(bool isOn, USART_TypeDef *uart1, USART_TypeDef *uart2, ui
|
||||
uart2(uart2)
|
||||
{
|
||||
bridgePnt = this;
|
||||
UartBridge::uart1Buf = new Circular_Buffer<uint8_t>(1024);
|
||||
UartBridge::uart2Buf = new Circular_Buffer<uint8_t>(1024);
|
||||
UartBridge::uart1Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||
UartBridge::uart2Buf = new Circular_Buffer<std::string_view>(MAX_QUEUE);
|
||||
uart1Handle.Instance = uart1;
|
||||
uart1Handle.Init.BaudRate = baudRate1;
|
||||
uart1Handle.Init.WordLength = UART_WORDLENGTH_8B;
|
||||
@@ -91,8 +95,8 @@ UART_HandleTypeDef* UartBridge::getHuart2() {
|
||||
void UartBridge::init(void) {
|
||||
uartInit(&uart1Handle);
|
||||
uartInit(&uart2Handle);
|
||||
HAL_UART_Receive_IT(&uart1Handle, (uint8_t*)&dataFromUart1, 1);
|
||||
HAL_UART_Receive_IT(&uart2Handle, (uint8_t*)&dataFromUart2, 1);
|
||||
HAL_UARTEx_ReceiveToIdle_IT(&uart1Handle,(uint8_t*)dataFromUart1, BUF_SIZE );
|
||||
HAL_UARTEx_ReceiveToIdle_IT(&uart2Handle,(uint8_t*)dataFromUart2, BUF_SIZE );
|
||||
}
|
||||
|
||||
|
||||
@@ -121,3 +125,4 @@ extern "C" void USART2_IRQHandler(void)
|
||||
|
||||
/* USER CODE END USART2_IRQn 1 */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user