#ifndef __weight_H #define __weight_H #include "usart.h" //时间的结构 struct datetime_t { uint32_t ss:6; uint32_t mm:6; uint32_t hh:5; uint32_t date:5; uint32_t month:4; uint32_t year:6; }__attribute__((packed)); //按键重量的结构 union timekeyweight_t { struct { uint8_t reserved:4; // 保留 uint8_t WeightRun:1; uint8_t WeightWS:2; uint8_t WeightZF:1; int16_t WeightLast:16; int16_t WeightBegin:16; struct datetime_t datetime; }__attribute__((packed)) data; uint8_t Buffer[9]; }; //准备发送重量的结构 union timeweight_t { struct { uint8_t reserved:4; // 保留 uint8_t WeightRun:1; uint8_t WeightWS:2; uint8_t WeightZF:1; int16_t Weight:16; struct datetime_t datetime; }__attribute__((packed)) data; uint8_t Buffer[7]; }; //保存到flash中的结构 union timeweight_save_t { struct { uint8_t reserved:4; // 保留 uint8_t WeightRun:1; uint8_t WeightWS:2; uint8_t WeightZF:1; int16_t Weight4:16; int16_t Weight3:16; int16_t Weight2:16; int16_t Weight1:16; struct datetime_t datetime; }__attribute__((packed)) data; uint8_t Buffer[13]; }; extern unsigned char isn; //是否新大屏 extern unsigned char isWeight; extern signed long WeightConst_WeightCurTem; //当前临时重量 extern signed short WeightConst_WeightCur; extern unsigned char WeightConst_WeightWS; //小数位数 extern unsigned char WeightConst_Weight_ZWS; //整数位数 extern unsigned char WeightConst_WeightHaveBegin; //已经确认开始 extern signed short WeightConst_WeightLast; //上次按键重量 1S一次 extern unsigned char WeightConst_oksum; //符合目标重量数 extern unsigned char WeightConst_allsum; //总重量值数 extern signed short WeightConst_WeightOK; extern unsigned char WeightConst_AutoSingleNSecondNum[30][3]; //自动跳转每秒值的数组 extern void ReadWeight(void); extern unsigned long mypow(unsigned char x,unsigned char y); extern void weight_usart_Init(UART_HandleTypeDef* uartHandle); extern union timekeyweight_t getTimeWeight(int i) ; extern rt_sem_t weight_lock; extern void CheckWeight_thread(void); extern void ReadWeight_thread(void); extern void ReadEID_thread(void); extern uint16_t tempWeighttime; #endif