Files
RCU_C12_Dimming/UART_Set.h
caocong 2dd675869a fix:修复调光时间BUG
解决调光时间一样的情况下,调光亮与调光灭的实际调光时间不一致问题
2025-12-15 20:48:52 +08:00

100 lines
2.2 KiB
C

#ifndef _UART_SET_H
#define _UART_SET_H
#include "STC8xxxx.h"
#define USART_CMD_QUEST 0x20
#define USART_CMD_SET_BRIGHTNESS 0x21
#define USART_CMD_SET_MODE 0x22
#define USART_CMD_ALL_BRIGHTNESS 0x23
#define USART_CMD_SWITCH_STATUS 0x24
#define USART_CMD_DEBUG_SET 0x25 //由于资源足够且不好控制,默认为开
#define Usart_CMD_Version 0x26
#define USART_TEST_MODE 0xE0
#define USART_TEST_DATA 0xE1
#define USART_CMD_QUEST_A 0x30
#define USART_CMD_SET_BRIGHTNESS_A 0x31
#define USART_CMD_SET_MODE_A 0x32
#define USART_CMD_ALL_BRIGHTNESS_A 0x33
#define USART_CMD_SWITCH_STATUS_A 0x34
#define USART_CMD_DEBUG_SET_A 0x35
#define Usart_CMD_Version_A 0x36
#define USART_TEST_MODE_A 0xF0
#define USART_TEST_DATA_A 0xF1
#define ADDR_RX 0x01 //C12_CH12的地址
#define DEV_TYPE 0x03
#define Version_High 0x13 //软件版本
#define Version_Low 0x00
typedef enum
{
UART_FMT_ADDR_TX = 0x00,
UART_FMT_TYPE,
UART_FMT_DEV_TYPE,
UART_FMT_ADDR_RX,
UART_FMT_LEN,
UART_FMT_CKS,
UART_FMT_CMD,
} UART_FMT_e;
typedef struct Usart
{
u8 lastsn;
u8 Sn;
u8 ok_flag;
u8 recv_buffer[32];
}xdata G_Usart;
typedef struct answer
{
u8 short_answer[7];
u8 long_answer[20];
u8 long_answer_flag;
u8 short_answer_flag;
u8 version_answer_flag;
u8 version_answer[9];
}xdata G_answer;
//接收到的有效数据的结构体
/*
* 四个通道是否被使能标志位
* flag1指接收到了0x21
* flag2指接收到了0x22
* 二者互斥,处理最后接收到的
*/
typedef struct
{
u16 flag1[12];
u16 flag2[12];
//0x21
u16 gradual_time[12];
u16 B_Ch[12];
//0x22
u16 mode[12];
u16 forward[12];
u16 pwm_step[12];
//0x23
u16 global_brightness;
u16 B_max;
u16 B_min;
// u16 changeflag;
//0x24
u16 key_status[12];
}xdata S_recv;
extern S_recv s_recv;
extern G_answer g_answer;
extern G_Usart g_Usart;
void Usart_Deal_Data(void);
void Usart_judge_Data(void);
void Usart_answer(void);
u8 sumfunc(u8* answer,u8 len);
extern u8 debug;
#endif