/**
******************************************************************************
* @file uart_gainianzhihui.h
* @author
* @version V1.0.0
* @date 23-12-2015
* @brief uart_gainianzhihui function.
******************************************************************************
* @attention
*
*
© COPYRIGHT(c) 2015 STMicroelectronics
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* 3. Neither the name of STMicroelectronics nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __UART_GAINIANZHIHUI_H
#define __UART_GAINIANZHIHUI_H
/* Includes ------------------------------------------------------------------*/
#include "usart.h"
/* Define to variables declare---------------------------------------------------*/
//低字节在前, 高字节在后
typedef union OBC_CtrlInfo
{
struct
{
UBYTE ucGearSt: 4;
UBYTE Light: 1;//1
UBYTE RS:3;
} Ctrl_Bit;
UBYTE Ctrl;
} OBC_CtrlInfo_Struct_t;
typedef struct
{
OBC_CtrlInfo_Struct_t stCtrlInfo;//助力档位+大灯
UBYTE ucSpeedLimiation;//KM/h
UBYTE ucCurrentLimiation;//1A
UBYTE ucWheelDiameter;//inch
UBYTE ucCuriseEnable;//0x01-定速巡航,0x00-关闭定速巡航
UBYTE RS1;
UBYTE RS2;
UWORD uwBrakeReg;//刹车 AD 值
} GNZH_OBC2MCInfo_Struct_t;
typedef union MC_StatusInfo
{
struct
{
UBYTE Curise: 1;//1: 定速巡航
UBYTE HallErr: 1;//1: 霍尔故障
UBYTE MotorErr: 1;//1: 电机故障
UBYTE ControllerErr: 1;//1: 控制器故障
UBYTE UnderVoltageErr: 1;//1: 欠压保护
UBYTE Brake: 1;//刹车
UBYTE Glide: 1;//滑行
UBYTE ThrottleErr: 1;//转把故障
} Status_Bit;
UBYTE Status;
} MC_StatusInfo_Struct_t;
typedef struct
{
UBYTE ucCurrent;//0.1A,max=25.5A
UWORD uwSpeed;//ms
MC_StatusInfo_Struct_t stMC_StatusInfo;
} GNZH_MC2OBCInfo_Struct_t;
/* Public variables declare---------------------------------------------------*/
/*Private function declare---------------------------------------------------*/
void GNZH_OBCSetPara(void);
void GNZH_USART_DataProcess(USART_Buf_TypeDef* ptUartTx, UBYTE* Data);
void GNZH_SendData_OBC(USART_Buf_TypeDef* ptUartTx);
void GNZH_USART_RxData_Process(USART_Buf_TypeDef* ptUartTx, UBYTE* buf, UWORD dataCount);
#endif
/*---------------------------- file end -------------------------------------*/