/**************** (C) COPYRIGHT 2023 山东云唐智能科技有限公司 ******************* * 文 件 名: * 创 建 者: Kaiser * 描 述 : * 最后修改: *********************************** 修订记录 ************************************ * 版 本: * 修订人: ********************************************************************************/ /******************************** 功能说明 ************************************* * *******************************************************************************/ #ifndef _APPDEF_H_ #define _APPDEF_H_ #include "BSP.H" union floattouint16_t { // 32位浮点数转换为16位整数 float f; uint32_t u32; uint16_t u16[2]; uint8_t u8[4]; }; extern union floattouint16_t FtU; /******************************** 功能说明 ************************************* * *******************************************************************************/ extern void delay_us(uint32_t us); /******************************** 功能说明 ************************************* * *******************************************************************************/ extern void ModbusPoll(const void *parg); extern void MODBUS_Init(uint8_t MBAddress); extern uint16_t usRegInputBuf[]; extern uint16_t usRegHoldingBuf[]; extern uint8_t ucRegDiscBuf[]; extern uint8_t ucRegCoilsBuf[]; #define RegCoilsBufRead(addr) ((ucRegCoilsBuf[(addr) / 8u]) & (0x01 << ((addr) % 8))) #define RegCoilsBufRst(addr) ((ucRegCoilsBuf[(addr) / 8u]) &= (~(0x01 << ((addr) % 8)))) #define RegCoilsBufSet(addr) ((ucRegCoilsBuf[(addr) / 8u]) |= (0x01 << ((addr) % 8))) #define RegDiscBufRead(addr) ((ucRegCoilsBuf[(addr) / 8u]) & (0x01 << ((addr) % 8))) #define RegDiscBufRst(addr) ((ucRegDiscBuf[(addr) / 8u]) &= (~(0x01 << ((addr) % 8)))) #define RegDiscBufSet(addr) ((ucRegDiscBuf[(addr) / 8u]) |= (0x01 << ((addr) % 8))) /******************************** 功能说明 ************************************* * *******************************************************************************/ extern void delay_us(uint32_t us); /******************************** 功能说明 ************************************* * *******************************************************************************/ extern float UltrasoundData; extern float H, S, V; extern int sR, sG, sB; struct ColorH { float A; // 三次方 float B; // 二次方 float C; // 一次方 float D; // 常数 }; extern struct ColorH ColorHSV; extern float ColorOut; /******************************** 功能说明 ************************************* * *******************************************************************************/ extern void GPIO_InPutset(void); extern uint8_t InstrumentTypeRead(void); extern bool SafeCheck(void); extern void INIT_CS555X(void); extern void AD7190_Init(void); extern void AD7190_ReadVoltage(void); extern void WeightCtrl_Init(void); struct uCalibrateWeight { double WeightSlope; // 斜率 int32_t WeightZero; // 零点 }; extern struct uCalibrateWeight CalibrateWeight; extern struct uCalibrateWeight CalibrateWeight2; extern uint32_t HX711Data; // 原始数据 extern uint32_t HX711Zero; // 原始数据 extern float WeightData; // 重量数据 extern float WeightData2; // 重量数据 extern float ADvalue2filter; extern void MAX6675_Init(void); extern void USARTHMIInit(void); extern void BIOS_USART2_Init(uint32_t baudrate); extern void USART2Print(uint8_t *buffer, uint8_t lenth); extern void AC_CTRL_Init(void); extern void Pump_OutCmd(bool NewState); /******************************** 功能说明 ************************************* * *******************************************************************************/ struct Pset { uint16_t CRC_Head; // CRC校验头 uint8_t AutoTimeStop; // 自动停机时间 uint8_t AutoWeightChange; // 自动停机重量 uint8_t TempSet; // 干燥温度 uint8_t TimeStop; // 停机时间 uint8_t AutoStyle; // 停机方式 自动 uint8_t FastStyle; // 干燥模式 快速 uint8_t FilterQ; // 滤波器阶数 uint8_t SensorQ; // 传感器阶数 uint8_t HoldTime; // 稳定时间 uint8_t RuBianLiang; // 蠕变量 uint8_t RuBianTime; // 蠕变时间 uint8_t ZeroTrack; // 零点跟踪 float TempDelta; // 校准温度差 float WeightSet; // 校准重量 uint32_t BaudRate; // 波特率 bool SW0; // 自定义开关1 bool SW1; // 自定义开关2 bool SW2; // 自定义开关3 bool PercentChange; // 含水量含固量 uint8_t Title[32]; // 标题 uint8_t TitleOne[32]; // 标题1 uint8_t TitleTwo[32]; // 标题2 uint8_t TitleThree[32]; // 标题3 uint8_t UserName[16]; // 用户名 uint8_t UserPwd[16]; // 密码 uint16_t CRC_Tail; // CRC校验尾 }; extern struct Pset Set; extern void FM24Init(void); extern void FM24_Write(uint16_t addr, uint8_t *data, uint8_t len); extern void FM24_Read(uint16_t addr, uint8_t *data, uint8_t len); #define CalibrateWeight2Set 0x0140u #define RW_Set 0x0200u #define CRCHead 0x55AAu // #define RW_WeightSlope 0x0104u // #define RW_WeightZero 0x0108u // #define RW_ColorHSV_A 0x010Cu // #define RW_ColorHSV_B 0x0110u // #define RW_ColorHSV_C 0x0114u // #define RW_ColorHSV_D 0x0118u // #define RW_BackADCLimit 0x011Cu // #define RW_RunStop 0x0120u // #define RW_CRC_End 0x0180u #define CRCEnd 0xAA55u extern void BIOS_NVIC_Init(void); extern bool weightChanging; #endif /******** (C) COPYRIGHT 2023 山东云唐智能科技有限公司 **** End Of File ********/