latest version
This commit is contained in:
@@ -11,18 +11,31 @@
|
||||
void GBT_Lock(uint8_t state);
|
||||
|
||||
typedef enum{
|
||||
RELAY_AUX,
|
||||
RELAY_CC,
|
||||
RELAY_1,
|
||||
RELAY_2,
|
||||
RELAY_3,
|
||||
RELAY_4,
|
||||
RELAY_5,
|
||||
|
||||
}relay_t;
|
||||
|
||||
typedef enum{
|
||||
IN_ISO,
|
||||
IN_ESTOP,
|
||||
IN_FB1,
|
||||
IN_FB2,
|
||||
IN_SW0,
|
||||
IN_SW1,
|
||||
IN_0,
|
||||
IN_ACOK,
|
||||
}inputNum_t;
|
||||
|
||||
void RELAY_Write(relay_t num, uint8_t state);
|
||||
void Init_Peripheral();
|
||||
uint8_t GBT_LockGetState();
|
||||
void GBT_Lock(uint8_t state);
|
||||
uint8_t SW_GetAddr();
|
||||
void ADC_Select_Channel(uint32_t ch);
|
||||
int16_t GBT_ReadTemp(uint8_t ch);
|
||||
|
||||
uint8_t IN_ReadInput(inputNum_t input_n);
|
||||
|
||||
#endif /* SRC_BOARD_H_ */
|
||||
|
||||
@@ -41,34 +41,21 @@ typedef enum{
|
||||
|
||||
}gbtCcState_t;
|
||||
|
||||
typedef enum __attribute__((packed)){
|
||||
CONN_NO_ERROR = 0,
|
||||
CONN_ERR_INSULATION = 1,
|
||||
CONN_ERR_EMERGENCY = 2,
|
||||
CONN_ERR_DOOR_OPEN = 3,
|
||||
CONN_ERR_LOCK = 4,
|
||||
CONN_ERR_CONN_TEMP = 5,
|
||||
|
||||
}CONN_Error_t;
|
||||
|
||||
/* Стейты GB/T со стороны EV: постоянно шлём свой пакет, ждём ответ → переход, шлём другой пакет */
|
||||
typedef enum{
|
||||
GBT_DISABLED = 0x10,
|
||||
// GBT_S0_UNCONNECTED = 0x10, //СС1 12V/6V СС2 12V
|
||||
// GBT_S1_CONNECTED = 0x11, //СС1 4V СС2 4V (6V)
|
||||
// GBT_S2_LOCKED = 0x12, //
|
||||
GBT_S3_STARTED = 0x13, // 12V AUX
|
||||
GBT_S31_WAIT_BHM = 0x14, // testing isolation, send CHM receive BHM
|
||||
GBT_S4_ISOTEST = 0x15, // testing isolation, send CHM receive BHM
|
||||
GBT_S5_BAT_INFO = 0x16, // identifying BMS, send CRM receive BRM (long)
|
||||
GBT_S6_BAT_STAT = 0x17, // send CRM(AA), receive BCP (long)
|
||||
GBT_S7_BMS_WAIT = 0x18, // wait for BMS, send CTS+CML receive BRO(00), next BRO(AA)
|
||||
GBT_S8_INIT_CHARGER = 0x19,// starting power modules, send CRO(00)
|
||||
GBT_S9_WAIT_BCL = 0x20, // waiting for BCL (requested voltage), send CRO(00)
|
||||
GBT_S10_CHARGING = 0x21, // charging, contactor ON, send CCS, receiving BCL+BCS+BSM
|
||||
GBT_STOP = 0x22, // normal stop
|
||||
GBT_STOP_CSD = 0x23, // normal stop
|
||||
GBT_ERROR = 0x24, // Error
|
||||
GBT_COMPLETE = 0x25,
|
||||
GBT_DISABLED = 0x10, // сессия выключена
|
||||
GBT_EV_CONNECTING = 0x13, // ждём CHM (ничего не шлём), получили → шлём BHM, переход
|
||||
GBT_EV_SEND_BHM_WAIT_CRM = 0x14, // шлём BHM, ждём CRM(0x00)
|
||||
GBT_EV_HANDSHAKE = 0x15, // изотест на EV не делаем → сразу дальше
|
||||
GBT_EV_RECOGNITION = 0x16, // шлём BRM, ждём CRM(0xAA)
|
||||
GBT_EV_CHARGING_PARAMETERS = 0x17, // шлём BCP, ждём CML → шлём BRO(0x00), BRO(0xAA)
|
||||
GBT_EV_BMS_INIT = 0x18, // пауза 1.5 с (инициализация зарядника)
|
||||
GBT_EV_WAIT_CHARGER_READY = 0x19, // ждём CRO(0xAA) или 500 мс → шлём BCL
|
||||
GBT_EV_CHARGING = 0x20, // шлём BCL (запрос U/I) → зарядка
|
||||
GBT_STOP = 0x30, // остановка: EV/EVSE запросили стоп
|
||||
GBT_STOP_CSD = 0x31, // ожидание CSD от EVSE
|
||||
GBT_ERROR = 0x32, // ошибка
|
||||
GBT_COMPLETE = 0x33, // сессия завершена
|
||||
|
||||
}gbtState_t;
|
||||
|
||||
@@ -166,31 +153,32 @@ typedef struct {
|
||||
}GBT_CSD_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint8_t enablePSU;
|
||||
uint16_t requestedVoltage; // 0.1V/bit
|
||||
uint16_t requestedCurrent; // 0.1A/bit
|
||||
uint8_t chargingMode; // 0x01 - CV, 0x02 - CC
|
||||
uint8_t chargingPercentage; //
|
||||
uint16_t chargingRemainingTimeMin; //
|
||||
uint16_t chargingElapsedTimeMin; //
|
||||
uint8_t chargingElapsedTimeSec; //
|
||||
// typedef struct {
|
||||
// uint8_t enablePSU;
|
||||
// uint16_t requestedVoltage; // 0.1V/bit
|
||||
// uint16_t requestedCurrent; // 0.1A/bit
|
||||
// uint8_t chargingMode; // 0x01 - CV, 0x02 - CC
|
||||
// uint8_t chargingPercentage; //
|
||||
// uint16_t chargingRemainingTimeMin; //
|
||||
// uint16_t chargingElapsedTimeMin; //
|
||||
// uint8_t chargingElapsedTimeSec; //
|
||||
|
||||
CONN_State_t connectorState;
|
||||
CONN_Error_t outputError; // 0 if okay
|
||||
// CONN_State_t connectorState;
|
||||
// CONN_Error_t outputError; // 0 if okay
|
||||
// uint8_t EvConnected;
|
||||
|
||||
|
||||
}GBT_EDCAN_Output_t;
|
||||
// }GBT_EDCAN_Output_t;
|
||||
|
||||
typedef struct {
|
||||
uint8_t PSU_Status;
|
||||
uint16_t measuredVoltage; // 0.1V/bit
|
||||
uint16_t measuredCurrent; // 0.1A/bit
|
||||
// typedef struct {
|
||||
// uint8_t PSU_Status;
|
||||
// uint16_t measuredVoltage; // 0.1V/bit
|
||||
// uint16_t measuredCurrent; // 0.1A/bit
|
||||
|
||||
CONN_Control_t chargeControl;
|
||||
CONN_Error_t chargingError; // 0 if okay
|
||||
// CONN_Control_t chargeControl;
|
||||
// CONN_Error_t chargingError; // 0 if okay
|
||||
|
||||
}GBT_EDCAN_Input_t;
|
||||
// }GBT_EDCAN_Input_t;
|
||||
|
||||
|
||||
/* 500 - Power Supply
|
||||
@@ -222,6 +210,7 @@ extern gbtState_t GBT_State;
|
||||
|
||||
extern ADC_HandleTypeDef hadc1;
|
||||
|
||||
extern GBT_BHM_t GBT_MaxVoltage;
|
||||
extern GBT_BRM_t GBT_EVInfo;
|
||||
extern GBT_BCP_t GBT_BATStat;
|
||||
extern GBT_BCS_t GBT_ChargingStatus;
|
||||
@@ -239,7 +228,6 @@ extern uint8_t GBT_Charger_Enable;
|
||||
extern GBT_StopSource_t GBT_StopSource;
|
||||
|
||||
void GBT_Init();
|
||||
void GBT_Start();
|
||||
void GBT_Reset();
|
||||
//void GBT_Stop(uint32_t causecode);
|
||||
void GBT_StopEV(uint32_t causecode);
|
||||
@@ -258,15 +246,15 @@ void GBT_Delay(uint32_t delay);
|
||||
uint32_t GBT_StateTick();
|
||||
void J_SendPacket(uint32_t PGN, uint8_t pri, uint8_t DLC, uint8_t *data);
|
||||
|
||||
void GBT_SendCCS();
|
||||
void GBT_SendCST(uint32_t Cause);
|
||||
void GBT_SendCRO(uint8_t state);
|
||||
void GBT_SendCML();
|
||||
void GBT_SendCTS();
|
||||
void GBT_SendCHM();
|
||||
void GBT_SendCRM(uint8_t state);
|
||||
void GBT_SendCSD();
|
||||
void GBT_SendCEM(uint32_t ErrorCode);
|
||||
// EV-side GB/T packets (EV->EVSE)
|
||||
void GBT_SendBHM(void);
|
||||
void GBT_SendBRM(void);
|
||||
void GBT_SendBCP(void);
|
||||
void GBT_SendBRO(uint8_t state);
|
||||
void GBT_SendBCL(void);
|
||||
void GBT_SendBCS(void);
|
||||
void GBT_SendBSM(void);
|
||||
void GBT_SendBSD(void);
|
||||
|
||||
|
||||
#endif /* INC_CHARGER_GBT_H_ */
|
||||
|
||||
@@ -10,37 +10,73 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
|
||||
|
||||
// Статус
|
||||
// статус подключения к автомобилю
|
||||
|
||||
typedef enum __attribute__((packed)) {
|
||||
CONN_Initializing = 1,
|
||||
CONN_Faulted = 2,
|
||||
CONN_Available = 3,
|
||||
CONN_Preparing = 4,// to charge
|
||||
CONN_Charging = 5,
|
||||
CONN_Finishing = 6,//, waiting to disconnect
|
||||
CONN_Suspended_EV = 7,
|
||||
CONN_Suspended_EVSE = 8,
|
||||
//Reserved
|
||||
Unknown,
|
||||
Unplugged,
|
||||
Disabled,
|
||||
Preparing,
|
||||
AuthRequired,
|
||||
WaitingForEnergy,
|
||||
ChargingPausedEV,
|
||||
ChargingPausedEVSE,
|
||||
Charging,
|
||||
AuthTimeout,
|
||||
Finished,
|
||||
FinishedEVSE,
|
||||
FinishedEV,
|
||||
Replugging
|
||||
} CONN_State_t;
|
||||
|
||||
// Управление
|
||||
// Разрешение на зарядку
|
||||
|
||||
typedef enum __attribute__((packed)) {
|
||||
CHARGING_NOT_ALLOWED = 1,
|
||||
CHARGING_ALLOWED = 2,
|
||||
FORCE_UNLOCK = 3,
|
||||
|
||||
typedef enum __attribute__((packed)){
|
||||
CMD_NONE = 0,
|
||||
CMD_STOP = 1,
|
||||
CMD_START = 2,
|
||||
CMD_FORCE_UNLOCK = 3,
|
||||
CMD_REPLUG = 4,
|
||||
} CONN_Control_t;
|
||||
#include "charger_gbt.h"
|
||||
|
||||
typedef enum __attribute__((packed)){
|
||||
CONN_NO_ERROR = 0,
|
||||
CONN_ERR_INSULATION = 1,
|
||||
CONN_ERR_EMERGENCY = 2,
|
||||
CONN_ERR_DOOR_OPEN = 3,
|
||||
CONN_ERR_LOCK = 4,
|
||||
CONN_ERR_CONN_TEMP = 5,
|
||||
} CONN_Error_t;
|
||||
|
||||
extern CONN_State_t connectorState;
|
||||
|
||||
// Глобальная структура состояния коннектора и зарядки со стороны тачки (EV),
|
||||
// по возможности совместимая по именам полей с ChargingConnector_t на стороне станции.
|
||||
typedef struct {
|
||||
CONN_Control_t connControl; // 0
|
||||
CONN_State_t connState; // 1
|
||||
|
||||
uint8_t SOC; // State of charge [%] // 2
|
||||
uint32_t Power; // Power [W] // 3..6
|
||||
uint32_t Energy; // Energy [Wh] // 7..10
|
||||
|
||||
uint16_t RequestedVoltage; // 1V/bit
|
||||
uint16_t RequestedCurrent; // 0.1A/bit
|
||||
|
||||
uint16_t MeasuredVoltage; // 1V/bit
|
||||
uint16_t MeasuredCurrent; // 0.1A/bit
|
||||
|
||||
uint16_t MeasuredVoltageSE; // 1V/bit
|
||||
uint16_t MeasuredCurrentSE; // 0.1A/bit
|
||||
|
||||
uint8_t ContactorEnabled; // 1 - enabled, 0 - disabled (команда на замыкание контактора)
|
||||
|
||||
CONN_Error_t chargingError; // 0 если ок
|
||||
uint8_t EvseConnected;
|
||||
uint32_t ChargingTime; // seconds
|
||||
uint8_t enableLoad; // 1 - enabled, 0 - disabled (команда на включение контактора)
|
||||
|
||||
uint8_t connectorType; // 0 - NONE, 1 - GBT, 2 - CCS (для EV всегда GBT)
|
||||
} CONN_t;
|
||||
|
||||
extern CONN_t CONN;
|
||||
|
||||
void CONN_Init();
|
||||
void CONN_Task();
|
||||
void CONN_SetState(CONN_State_t state);
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
#define EDCAN_CONFIG_H
|
||||
|
||||
#define DEVICE_ID 0x20
|
||||
#define FWVER 1
|
||||
#define FWVER_MAJOR 1
|
||||
#define FWVER_MINOR 0
|
||||
#define FWVER_PATCH 0
|
||||
|
||||
//если используется STM32 с одним каном
|
||||
//#define ED_CANx
|
||||
@@ -22,4 +24,6 @@ extern CAN_HandleTypeDef hcan2;
|
||||
//можно уменьшать для уменьшения объема потребляемой памяти
|
||||
#define BUFFER_SIZE 256
|
||||
|
||||
#define EDCAN_BOOTLOADER_MAGIC_ADDR 0x2000FF00u
|
||||
|
||||
#endif //EDCAN_CONFIG_H
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* lock.h
|
||||
*
|
||||
* Created on: Jul 31, 2024
|
||||
* Author: colorbass
|
||||
*/
|
||||
|
||||
#ifndef INC_LOCK_H_
|
||||
#define INC_LOCK_H_
|
||||
|
||||
#include "main.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
|
||||
void GBT_Lock(uint8_t state);
|
||||
void GBT_ManageLockSolenoid();
|
||||
void GBT_ManageLockMotor();
|
||||
uint8_t GBT_LockGetState();
|
||||
void GBT_ForceLock(uint8_t state);
|
||||
void GBT_ResetErrorTimeout();
|
||||
|
||||
typedef struct {
|
||||
// uint8_t state;
|
||||
uint8_t demand;
|
||||
uint8_t error;
|
||||
uint8_t action_requested; // 0 = unlock, 1 = lock, 255 = no action
|
||||
uint8_t motor_state; // 0 = idle, 1 = motor_on, 2 = waiting_off
|
||||
uint32_t last_action_time; // время последнего изменения состояния мотора
|
||||
uint8_t retry_count; // счетчик попыток
|
||||
uint32_t error_tick; // время установки ошибки (для таймаута сброса)
|
||||
} GBT_LockState_t;
|
||||
|
||||
extern GBT_LockState_t GBT_LockState;
|
||||
|
||||
#endif /* INC_LOCK_H_ */
|
||||
|
||||
40
Core/Inc/main.h
Executable file → Normal file
40
Core/Inc/main.h
Executable file → Normal file
@@ -57,6 +57,10 @@ void Error_Handler(void);
|
||||
/* USER CODE END EFP */
|
||||
|
||||
/* Private defines -----------------------------------------------------------*/
|
||||
#define IN_SW0_Pin GPIO_PIN_1
|
||||
#define IN_SW0_GPIO_Port GPIOA
|
||||
#define IN_SW1_Pin GPIO_PIN_2
|
||||
#define IN_SW1_GPIO_Port GPIOA
|
||||
#define ADC_CC1_Pin GPIO_PIN_6
|
||||
#define ADC_CC1_GPIO_Port GPIOA
|
||||
#define LOCK_A_Pin GPIO_PIN_4
|
||||
@@ -67,18 +71,36 @@ void Error_Handler(void);
|
||||
#define ADC_NTC1_GPIO_Port GPIOB
|
||||
#define ADC_NTC2_Pin GPIO_PIN_1
|
||||
#define ADC_NTC2_GPIO_Port GPIOB
|
||||
#define LOCK_FB_Pin GPIO_PIN_9
|
||||
#define LOCK_FB_GPIO_Port GPIOE
|
||||
#define ADDR_0_Pin GPIO_PIN_10
|
||||
#define ADDR_0_GPIO_Port GPIOE
|
||||
#define ADDR_1_Pin GPIO_PIN_11
|
||||
#define ADDR_1_GPIO_Port GPIOE
|
||||
#define IN0_Pin GPIO_PIN_7
|
||||
#define IN0_GPIO_Port GPIOE
|
||||
#define RELAY5_Pin GPIO_PIN_8
|
||||
#define RELAY5_GPIO_Port GPIOE
|
||||
#define RELAY4_Pin GPIO_PIN_9
|
||||
#define RELAY4_GPIO_Port GPIOE
|
||||
#define RELAY3_Pin GPIO_PIN_10
|
||||
#define RELAY3_GPIO_Port GPIOE
|
||||
#define RELAY2_Pin GPIO_PIN_11
|
||||
#define RELAY2_GPIO_Port GPIOE
|
||||
#define RELAY1_Pin GPIO_PIN_12
|
||||
#define RELAY1_GPIO_Port GPIOE
|
||||
#define AC_OK_Pin GPIO_PIN_14
|
||||
#define AC_OK_GPIO_Port GPIOE
|
||||
#define RELAY_CC_Pin GPIO_PIN_15
|
||||
#define RELAY_CC_GPIO_Port GPIOE
|
||||
#define RELAY_CC_GPIO_Port GPIOA
|
||||
#define RELAY_DC_Pin GPIO_PIN_3
|
||||
#define RELAY_DC_GPIO_Port GPIOD
|
||||
#define USART2_DIR_Pin GPIO_PIN_4
|
||||
#define USART2_DIR_GPIO_Port GPIOD
|
||||
#define RELAY_AUX_Pin GPIO_PIN_4
|
||||
#define RELAY_AUX_GPIO_Port GPIOB
|
||||
#define IN_ESTOP_Pin GPIO_PIN_7
|
||||
#define IN_ESTOP_GPIO_Port GPIOD
|
||||
#define IN_FB2_Pin GPIO_PIN_3
|
||||
#define IN_FB2_GPIO_Port GPIOB
|
||||
#define IN_FB1_Pin GPIO_PIN_4
|
||||
#define IN_FB1_GPIO_Port GPIOB
|
||||
#define EE_WP_Pin GPIO_PIN_7
|
||||
#define EE_WP_GPIO_Port GPIOB
|
||||
#define ISO_IN_Pin GPIO_PIN_1
|
||||
#define ISO_IN_GPIO_Port GPIOE
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
|
||||
54
Core/Inc/rgb_controller.h
Normal file
54
Core/Inc/rgb_controller.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* rgb_controller.h
|
||||
*
|
||||
* Created on: Jul 25, 2024
|
||||
* Author: colorbass
|
||||
*/
|
||||
|
||||
#ifndef INC_RGB_CONTROLLER_H_
|
||||
#define INC_RGB_CONTROLLER_H_
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#pragma pack(push, 1)
|
||||
|
||||
typedef struct{
|
||||
uint8_t R;
|
||||
uint8_t G;
|
||||
uint8_t B;
|
||||
|
||||
}RGB_t;
|
||||
|
||||
typedef struct{
|
||||
RGB_t Color1;
|
||||
uint8_t Tr; //20ms/step, 5.1s max
|
||||
uint8_t Th; //20ms/step, 5.1s max
|
||||
uint8_t Tf; //20ms/step, 5.1s max
|
||||
uint8_t Tl; //20ms/step, 5.1s max
|
||||
RGB_t Color2;
|
||||
//uint8_t rsvd[6]; // 6 bytes reserved
|
||||
}RGB_Cycle_t;
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
typedef enum{
|
||||
LED_RISING,
|
||||
LED_HIGH,
|
||||
LED_FALLING,
|
||||
LED_LOW,
|
||||
}RGB_Phase_t;
|
||||
|
||||
typedef struct{
|
||||
uint8_t state; // 0 1 2 3
|
||||
uint16_t tick;
|
||||
RGB_t color;
|
||||
uint8_t phasesync;
|
||||
}RGB_State_t;
|
||||
|
||||
void LED_Task();
|
||||
void LED_Write();
|
||||
void LED_Init();
|
||||
|
||||
|
||||
#endif /* INC_RGB_CONTROLLER_H_ */
|
||||
|
||||
2
Core/Inc/stm32f1xx_hal_conf.h
Executable file → Normal file
2
Core/Inc/stm32f1xx_hal_conf.h
Executable file → Normal file
@@ -64,7 +64,7 @@
|
||||
/*#define HAL_SMARTCARD_MODULE_ENABLED */
|
||||
/*#define HAL_SPI_MODULE_ENABLED */
|
||||
/*#define HAL_SRAM_MODULE_ENABLED */
|
||||
/*#define HAL_TIM_MODULE_ENABLED */
|
||||
#define HAL_TIM_MODULE_ENABLED
|
||||
#define HAL_UART_MODULE_ENABLED
|
||||
/*#define HAL_USART_MODULE_ENABLED */
|
||||
/*#define HAL_WWDG_MODULE_ENABLED */
|
||||
|
||||
2
Core/Inc/stm32f1xx_it.h
Executable file → Normal file
2
Core/Inc/stm32f1xx_it.h
Executable file → Normal file
@@ -22,7 +22,7 @@
|
||||
#define __STM32F1xx_IT_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
|
||||
54
Core/Inc/tim.h
Normal file
54
Core/Inc/tim.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* USER CODE BEGIN Header */
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file tim.h
|
||||
* @brief This file contains all the function prototypes for
|
||||
* the tim.c file
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __TIM_H__
|
||||
#define __TIM_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern TIM_HandleTypeDef htim4;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_TIM4_Init(void);
|
||||
|
||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
/* USER CODE END Prototypes */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __TIM_H__ */
|
||||
|
||||
9
Core/Inc/usart.h
Executable file → Normal file
9
Core/Inc/usart.h
Executable file → Normal file
@@ -32,13 +32,22 @@ extern "C" {
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
extern UART_HandleTypeDef huart5;
|
||||
|
||||
extern UART_HandleTypeDef huart1;
|
||||
|
||||
extern UART_HandleTypeDef huart2;
|
||||
|
||||
extern UART_HandleTypeDef huart3;
|
||||
|
||||
/* USER CODE BEGIN Private defines */
|
||||
|
||||
/* USER CODE END Private defines */
|
||||
|
||||
void MX_UART5_Init(void);
|
||||
void MX_USART1_UART_Init(void);
|
||||
void MX_USART2_UART_Init(void);
|
||||
void MX_USART3_UART_Init(void);
|
||||
|
||||
/* USER CODE BEGIN Prototypes */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user