---vl6180dr

This commit is contained in:
Mysteo91
2023-08-01 14:38:32 +03:00
parent d1bcf7e360
commit 58fbffd0cf
6 changed files with 75 additions and 81 deletions

View File

@@ -71,11 +71,7 @@ void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = CONTROL_PIN_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(CONTROL_PIN_GPIO_Port, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI0_1_IRQn, 1, 0);

View File

@@ -98,7 +98,7 @@ void MX_TIM14_Init(void)
htimLighitng.Instance = TIM14;
htimLighitng.Init.Prescaler = 1;
htimLighitng.Init.CounterMode = TIM_COUNTERMODE_UP;
htimLighitng.Init.Period = 63999;
htimLighitng.Init.Period = 100;
htimLighitng.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htimLighitng.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htimLighitng) != HAL_OK)
@@ -110,7 +110,7 @@ void MX_TIM14_Init(void)
Error_Handler();
}
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = 32000;
sConfigOC.Pulse = 1;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
if (HAL_TIM_PWM_ConfigChannel(&htimLighitng, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)

View File

@@ -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 */
}