Files
RaDrone/Source/BSP/Inc/lidar.h

50 lines
965 B
C

#pragma once
#ifndef LIDAR_H
#define LIDAR_H
#include "stm32g431xx.h"
#define USART3_START_BYTE 0x59
#define USART3_BUF_SIZE 64
#define USART3_FRAME_SIZE 9
#define LIDAR_MIN_DIST 0.01f
#define LIDAR_MAX_DIST 40.0f
#define TF02_I2C_ADDR 0x10
typedef struct
{
uint8_t header1; // 0x59
uint8_t header2; // 0x59
uint8_t distance_l; // cm
uint8_t distance_h; // cm
uint8_t strength_l;
uint8_t strength_h;
uint8_t temp_l;
uint8_t temp_h;
uint8_t checksum;
} lidar_data_buf;
typedef struct
{
uint16_t distance; // cm
uint16_t strength;
uint16_t temperature;
} lidar_data;
void lidar_init();
void lidar_tim7_init();
void TIM7_DAC_IRQHandler();
void USART3_IRQHandler();
void lidar_update(lidar_data* lidar);
uint8_t usart_available();
uint8_t usart_read();
void lidar_i2c2_init();
static void i2c2_wait_txis();
static void i2c2_wait_stop();
static int i2c2_write(uint8_t addr, uint8_t *data, uint8_t size);
void tf02_force_uart();
#endif