VL53L0X寄存器0xB4值为0xfb的含义解析

时间: 2025-08-30 16:54:31 AIGC 浏览: 23
<think> 我们之前讨论的是寄存器0xB4的值为0x02的情况,现在用户询问的是值为0xFB的情况。 寄存器0xB4(地址0xB4)是VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA_EXTSUP_HV,位于Page 1。 根据数据手册,该寄存器的位定义如下: Bit 0: EXTSUP_HV - 高压供电模式选择(0:内部生成,1:外部提供) Bit 1: SCL_EXTSUP_HV - SCL引脚高压驱动使能(0:禁用,1:使能) Bit 2: SDA_EXTSUP_HV - SDA引脚高压驱动使能(0:禁用,1:使能) Bit 3-7: 保留位(通常设置为0,但有些情况可能用于其他控制) 值0xFB(二进制:1111 1011)的含义需要逐位分析。 步骤: 1. 将0xFB转换为二进制:0xFB = 251 (十进制) = 1111 1011 (二进制) 2. 按照寄存器位分配(从低到高): Bit0: 1 (二进制的最低位,即最右边一位) Bit1: 1 Bit2: 0 Bit3: 1 Bit4: 1 Bit5: 1 Bit6: 1 Bit7: 1 但是,根据寄存器定义,我们只关心Bit0到Bit2,以及保留位(Bit3-Bit7)。通常保留位应该为0,但这里被设置为1,这可能是不正常的,也可能是特定配置(但数据手册中保留位通常要求写0)。 因此,我们重点分析Bit0到Bit2: - Bit0 (EXTSUP_HV) = 1:表示使用外部高压供电(而不是内部生成)。 - Bit1 (SCL_EXTSUP_HV) = 1:表示SCL引脚使用高压驱动(2.8V)。 - Bit2 (SDA_EXTSUP_HV) = 0:表示SDA引脚使用标准电压(由VDDIO决定,通常1.8V或3.3V)。 同时,Bit3-Bit7都设置为1(11111),而数据手册规定这些位是保留位,通常应保持为0。将保留位设置为1可能导致未定义行为,具体取决于芯片实现。因此,这个配置可能存在风险。 含义总结: 1. 高压供电模式:外部提供(EXTSUP_HV=1) - 这意味着需要外部电路提供高压(通常2.8V),而不是使用芯片内部升压电路。 - 优点:降低芯片内部功耗,但需要外部高压源。 2. I²C通信配置: - SCL线:高压驱动(2.8V),这要求主机的I²C控制器支持2.8V电平。 - SDA线:标准电压(由VDDIO决定,可能是1.8V或3.3V),注意这种不对称配置可能引起通信问题(因为SCL和SDA电压不同)。 3. 保留位全部置1: - 根据数据手册,保留位应写0。设置成1可能导致不可预测的行为,比如影响内部状态机、测量精度等。建议检查配置并纠正为0。 典型应用场景: - 当系统已有2.8V电源且希望节省芯片功耗时,可使用外部高压模式。 - SCL使用高压而SDA使用标准电压的配置较少见,除非有特殊时序要求(如长距离SCL线需要更高电平抗干扰,而SDA线较短则用标准电平)。 注意事项: 1. 保留位问题:强烈建议将保留位设置为0(即实际写入的值应为0x03,因为Bit0=1, Bit1=1, Bit2=0,其余位0),以避免未定义行为。 2. 页面切换:修改该寄存器前必须切换到页1(写入0x01到寄存器0x01),修改后切回页0(写入0x00到寄存器0x01)。 3. 硬件匹配:确保外部高压源稳定在2.8V,且I²C总线上拉电阻和电压匹配。 参考用户提供的引用,虽然引用是关于其他内容(如u-boot的crc校验错误和填充操作),但我们可以忽略,因为与当前问题无关。 因此,解析如下: </think> ### VL53L0X寄存器0xB4值为0xFB的含义解析 #### 寄存器背景说明 寄存器`0xB4`(`VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA_EXTSUP_HV`)位于**页1(Page 1)**,控制高压电路配置和I²C引脚特性。其位定义如下: | 位(Bit) | 名称 | 功能说明 | |---------|--------------------|-----------------------------| | 0 | `EXTSUP_HV` | 高压供电模式选择(0=内部,1=外部)| | 1 | `SCL_EXTSUP_HV` | SCL引脚高压驱动使能 | | 2 | `SDA_EXTSUP_HV` | SDA引脚高压驱动使能 | | 3-7 | 保留位 | 未使用(应保持为0) | #### 数值0xFB的具体含义 当寄存器值为`0xFB`(二进制`1111 1011`)时: | 位 | 值 | 配置状态 | 物理意义 | |------|----|--------------------------|--------------------------------------| | 0 | 1 | **外部高压供电** | 需外部提供2.8V高压(禁用内部升压) | | 1 | 1 | **SCL引脚高压驱动使能** | SCL信号线使用2.8V高压电平通信 | | 2 | 0 | **SDA引脚标准驱动** | SDA信号线保持标准电压电平(1.8V/3.3V)| | 3-7 | 11111 | **保留位置1** | 可能导致未定义行为[^1] | ##### 关键影响和典型场景 1. **高压供电模式异常** `EXTSUP_HV=1`要求**外部提供2.8V高压**,但: - ❗ 大多数设计默认使用内部升压 - 需检查硬件是否包含外部高压电路 - 功耗计算公式: $$P_{ext} = V_{HV} \times I_{laser} + P_{static}$$ 其中$V_{HV}=2.8V$, $I_{laser} \approx 20-100mA$[^2] 2. **I²C通信风险配置** - SCL高压(2.8V) + SDA标准电压($V_{DDIO}$)的**不对称配置** - 可能导致时序冲突: $$t_{HIGH\_SCL} \neq t_{HIGH\_SDA}$$ - 适用场景:特殊抗干扰需求(如工业环境) 3. **保留位异常风险** 保留位(Bit3-7)全为1: - 违反数据手册要求(应保持为0) - 可能影响芯片的内部状态机 - 建议强制修正为0x03(二进制`0000 0011`) #### 配置验证与修复 1. **读取验证** 确保页切换正确(引用[2]的CRC错误提示操作可靠性): ```c VL53L0X_WriteReg(0x01, 0x01); // 切换到页1 uint8_t val = VL53L0X_ReadReg(0xB4); // 读取当前值 VL53L0X_WriteReg(0x01, 0x00); // 切回页0 ``` 2. **修正建议** 将寄存器值改为0x03(外部高压+SCL高压): ```c VL53L0X_WriteReg(0x01, 0x01); VL53L0X_WriteReg(0xB4, 0x03); // 修正为安全值 VL53L0X_WriteReg(0x01, 0x00); ``` 3. **硬件检查** - 测量`VIN`引脚是否有2.8V输入 - 确认I²C上拉电阻匹配电压: $$R_{pullup} = \frac{V_{DDIO} - 0.4}{3mA} \quad (\text{标准模式})$$
阅读全文

相关推荐

static const uint8_t _CRCLo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 };

u8 gnss_config[12][26] = { {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x52, 0x4d, 0x43, 0x2a, 0x33, 0x41, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x04, 0x01, 0xff, 0x18}, // Open GPRMC OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x47, 0x41, 0x2a, 0x32, 0x37, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x00, 0x01, 0xfb, 0x10}, // Open GPGGA OutPut //{0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x47, 0x41, 0x2a, 0x32, 0x37, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x00, 0x00, 0xfa, 0x0f}, // Close GPGGA OutPut //{0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x52, 0x4d, 0x43, 0x2a, 0x33, 0x41, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x04, 0x00, 0xfe, 0x17}, // Close GPRMC OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x56, 0x54, 0x47, 0x2a, 0x32, 0x33, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x05, 0x00, 0xff, 0x19}, // Close GPVTG OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x44, 0x54, 0x4d, 0x2a, 0x33, 0x42, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x0a, 0x00, 0x04, 0x23}, // Close GPDTM OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x42, 0x53, 0x2a, 0x33, 0x30, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x09, 0x00, 0x03, 0x21}, // Close GPGBS OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x4c, 0x4c, 0x2a, 0x32, 0x31, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x01, 0x00, 0xfb, 0x11}, // Close GPGLL OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x52, 0x53, 0x2a, 0x32, 0x30, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x06, 0x00, 0x00, 0x1b}, // Close GPGRS OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x53, 0x41, 0x2a, 0x33, 0x33, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x02, 0x00, 0xfc, 0x13}, // Close GPGSA OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x53, 0x54, 0x2a, 0x32, 0x36, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x07, 0x00, 0x01, 0x1d}, // Close GPGST OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x47, 0x53, 0x56, 0x2a, 0x32, 0x34, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x03, 0x00, 0xfd, 0x15}, // Close GPGSV OutPut {0x24, 0x45, 0x49, 0x47, 0x50, 0x51, 0x2c, 0x5a, 0x44, 0x41, 0x2a, 0x33, 0x39, 0x0d, 0x0a, 0xb5, 0x62, 0x06, 0x01, 0x03, 0x00, 0xf0, 0x08, 0x00, 0x02, 0x1f}, // Close GPZDA OutPut {0xB5, 0x62, 0x06, 0x08, 0x06, 0x00, 0xE8, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x39} // 1Hz 模式(1 秒输出 1 次数据) };

数据1: { 0xF0, 1, 0x28 }, { 0xF2, 1, 0x28 }, { 0x73, 1, 0xF0 }, { 0x7C, 1, 0xD1 }, { 0x83, 1, 0xE0 }, { 0x84, 1, 0x61 }, { 0xF2, 1, 0x82 }, { 0xF0, 1, 0x00 }, { 0xF0, 1, 0x01 }, { 0xF1, 1, 0x01 }, { 0xB0, 1, 0x4B }, { 0xB1, 1, 0x40 }, { 0xB2, 1, 0x25 }, { 0xB4, 1, 0x44 }, { 0xB5, 1, 0x34 }, { 0xB6, 1, 0xA4 }, { 0xB7, 1, 0x30 }, { 0xB8, 1, 0x8C }, { 0xBA, 1, 0x00 }, { 0xBB, 1, 0x08 }, { 0xBC, 1, 0x08 }, { 0xBD, 1, 0x00 }, { 0xC0, 1, 0x80 }, { 0xC1, 1, 0x0B }, { 0xC2, 1, 0x35 }, { 0xC3, 1, 0x80 }, { 0xC4, 1, 0x0B }, { 0xC5, 1, 0x35 }, { 0xC6, 1, 0xA9 }, { 0xC7, 1, 0x41 }, { 0xC8, 1, 0x01 }, { 0xC9, 1, 0xA9 }, { 0xCA, 1, 0x41 }, { 0xCB, 1, 0x01 }, { 0xD0, 1, 0xD1 }, { 0xD1, 1, 0x40 }, { 0xD2, 1, 0x81 }, { 0xF5, 1, 0x00 }, { 0xA5, 1, 0x00 }, { 0xF1, 1, 0x10 }, { 0xF0, 1, 0x00 }, { 0xF0, 1, 0x02 }, { 0xE0, 14, 0xF0, 0x09, 0x0F, 0x0A, 0x0A, 0x17, 0x36 ,0x44, 0x4D ,0x38, 0x13, 0x14, 0x2F, 0x34}, { 0xE1, 14, 0xF0, 0x09, 0x0F, 0x0A, 0x09, 0x06, 0x35, 0x33, 0x4C, 0x37, 0x13, 0x14, 0x2F, 0x34}, { 0xF0, 1, 0x10 }, { 0xF3, 1, 0x10 }, { 0xE0, 1, 0x0D }, { 0xE1, 1, 0x00 }, { 0xE2, 1, 0x00 }, { 0xE3, 1, 0x00 }, { 0xE4, 1, 0xE0 }, { 0xE5, 1, 0x06 }, { 0xE6, 1, 0x21 }, { 0xE7, 1, 0x00 }, { 0xE8, 1, 0x85 }, { 0xE9, 1, 0x62 }, { 0xEA, 1, 0xDC }, { 0xEB, 1, 0x00 }, { 0xEC, 1, 0x20 }, { 0xED, 1, 0x14 }, { 0xEE, 1, 0xFF }, { 0xEF, 1, 0x00 }, { 0xF8, 1, 0xFF }, { 0xF9, 1, 0x00 }, { 0xFA, 1, 0x00 }, { 0xFB, 1, 0x30 }, { 0xFC, 1, 0x00 }, { 0xFD, 1, 0x00 }, { 0xFE, 1, 0x00 }, { 0xFF, 1, 0x00 }, { 0x60, 1, 0x20 }, { 0x61, 1, 0x02 }, { 0x62, 1, 0x80 }, { 0x63, 1, 0x40 }, { 0x64, 1, 0x06 }, { 0x65, 1, 0x00 }, { 0x66, 1, 0x00 }, { 0x67, 1, 0x00 }, { 0x68, 1, 0x00 }, { 0x69, 1, 0x23 }, { 0x6A, 1, 0x15 }, { 0x6B, 1, 0x00 }, { 0x70, 1, 0x20 }, { 0x71, 1, 0x02 }, { 0x72, 1, 0x80 }, { 0x73, 1, 0x40 }, { 0x74, 1, 0x05 }, { 0x75, 1, 0x00 }, { 0x76, 1, 0x00 }, { 0x77, 1, 0x00 }, { 0x78, 1, 0x00 }, { 0x79, 1, 0x23 }, { 0x7A, 1, 0x15 }, { 0x7B, 1, 0x00 }, { 0x80, 1, 0x48 }, { 0x81, 1, 0x00 }, { 0x82, 1, 0x08 }, { 0x83, 1, 0x03 }, { 0x84, 1, 0x18 }, { 0x85, 1, 0x00 }, { 0x86, 1, 0x00 }, { 0x87, 1, 0x00 }, { 0x88, 1, 0x48 }, { 0x89, 1, 0x00 }, { 0x8A, 1, 0x0A }, { 0x8B, 1, 0x03 }, { 0x8C, 1, 0x12 }, { 0x8D, 1, 0x00 }, { 0x8E, 1, 0x00 }, { 0x8F, 1, 0x00 }, { 0x90, 1, 0x48 }, { 0x91, 1, 0x00 }, { 0x92, 1, 0x0C }, { 0x93, 1, 0x03 }, { 0x94, 1, 0x14 }, { 0x95, 1, 0x00 }, { 0x96, 1, 0x00 }, { 0x97, 1, 0x00 }, { 0x98, 1, 0x48 }, { 0x99, 1, 0x00 }, { 0x9A, 1, 0x0E }, { 0x9B, 1, 0x03 }, { 0x9C, 1, 0x16 }, { 0x9D, 1, 0x00 }, { 0x9E, 1, 0x00 }, { 0x9F, 1, 0x00 }, { 0xA0, 1, 0x48 }, { 0xA1, 1, 0x00 }, { 0xA2, 1, 0x07 }, { 0xA3, 1, 0x03 }, { 0xA4, 1, 0x17 }, { 0xA5, 1, 0x00 }, { 0xA6, 1, 0x00 }, { 0xA7, 1, 0x00 }, { 0xA8, 1, 0x48 }, { 0xA9, 1, 0x00 }, { 0xAA, 1, 0x09 }, { 0xAB, 1, 0x03 }, { 0xAC, 1, 0x11 }, { 0xAD, 1, 0x00 }, { 0xAE, 1, 0x00 }, { 0xAF, 1, 0x00 }, { 0xB0, 1, 0x48 }, { 0xB1, 1, 0x00 }, { 0xB2, 1, 0x0B }, { 0xB3, 1, 0x03 }, { 0xB4, 1, 0x13 }, { 0xB5, 1, 0x00 }, { 0xB6, 1, 0x00 }, { 0xB7, 1, 0x00 }, { 0xB8, 1, 0x48 }, { 0xB9, 1, 0x00 }, { 0xBA, 1, 0x0D }, { 0xBB, 1, 0x03 }, { 0xBC, 1, 0x15 }, { 0xBD, 1, 0x00 }, { 0xBE, 1, 0x00 }, { 0xBF, 1, 0x00 }, { 0xC0, 1, 0x75 }, { 0xC1, 1, 0x44 }, { 0xC2, 1, 0x57 }, { 0xC3, 1, 0x66 }, { 0xC4, 1, 0xAA }, { 0xC5, 1, 0x11 }, { 0xC6, 1, 0x00 }, { 0xC7, 1, 0x88 }, { 0xC8, 1, 0x99 }, { 0xC9, 1, 0xBB }, { 0xD0, 1, 0x75 }, { 0xD1, 1, 0x44 }, { 0xD2, 1, 0x57 }, { 0xD3, 1, 0x66 }, { 0xD4, 1, 0xAA }, { 0xD5, 1, 0x11 }, { 0xD6, 1, 0x00 }, { 0xD7, 1, 0x88 }, { 0xD8, 1, 0x99 }, { 0xD9, 1, 0xBB }, { 0xF3, 1, 0x01 }, { 0xF0, 1, 0x00 }, { 0x21, 1, 0x00 }, 数据2: send 0xF0 send 0xF2 send 0x73 send 0x7C send 0x83 send 0x84 send 0xF2 send 0xF0 send 0xF0 send 0xF1 send 0xB0 send 0xB1 send 0xB2 send 0xB4 send 0xB5 send 0xB6 send 0xB7 send 0xB8 send 0xBA send 0xBB send 0xBC send 0xBD send 0xC0 send 0xC1 send 0xC2 send 0xC3 send 0xC4 send 0xC5 send 0xC6 send 0xC7 send 0xC8 send 0xC9 send 0xCA send 0xCB send 0xD0 send 0xD1 send 0xD2 send 0xF5 send 0xF1 send 0xF0 send 0xF0 send 0xE0 send 0xE1 send 0xF0 send 0xF3 send 0xE0 send 0xE1 send 0xE2 send 0xE3 send 0xE4 send 0xE5 send 0xE6 send 0xE7 send 0xE8 send 0xE9 send 0xEA send 0xEB send 0xEC send 0xED send 0xEE send 0xEF send 0xF8 send 0xF9 send 0xFA send 0xFB send 0xFC send 0xFD send 0xFE send 0xFF send 0x60 send 0x61 send 0x62 send 0x63 send 0x64 send 0x65 send 0x66 send 0x67 send 0x68 send 0x69 send 0x6A send 0x6B send 0x70 send 0x71 send 0x72 send 0x73 send 0x74 send 0x75 send 0x76 send 0x77 send 0x78 send 0x79 send 0x7A send 0x7B send 0x80 send 0x81 send 0x82 send 0x83 send 0x84 send 0x85 send 0x86 send 0x87 send 0x88 send 0x89 send 0x8A send 0x8B send 0x8C send 0x8D send 0x8E send 0x8F send 0x90 send 0x91 send 0x92 send 0x93 send 0x94 send 0x95 send 0x96 send 0x97 send 0x98 send 0x99 send 0x9A send 0x9B send 0x9C send 0x9D send 0x9E send 0x9F send 0xA0 send 0xA1 send 0xA2 send 0xA3 send 0xA4 send 0xA5 send 0xA6 send 0xA7 send 0xA8 send 0xA9 send 0xAA send 0xAB send 0xAC send 0xAD send 0xAE send 0xAF send 0xB0 send 0xB1 send 0xB2 send 0xB3 send 0xB4 send 0xB5 send 0xB6 send 0xB7 send 0xB8 send 0xB9 send 0xBA send 0xBB send 0xBC send 0xBD send 0xBE send 0xBF send 0xC0 send 0xC1 send 0xC2 send 0xC3 send 0xC4 send 0xC5 send 0xC6 send 0xC7 send 0xC8 send 0xC9 send 0xD0 send 0xD1 send 0xD2 send 0xD3 send 0xD4 send 0xD5 send 0xD6 send 0xD7 send 0xD8 send 0xD9 send 0xF3 send 0xF0 send 0x21 比较一下两份数据是否一致

int main() { unsigned int v19; const unsigned char sbox0[256] ={0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16}; const char* a3="UK*@3oKpFlVVnadsTfdA"; int v7=16; memcpy(&v19, a3, v7); for (int j = 0; j != 16; ++j ) *((_BYTE *)&v19 + j) = sbox0[*((unsigned *)&v19 + j)]; return 0; }输出v19值

TFTLCD汉字显示是反着的#include "chinese_font.h" #include "lcd.h" #include <string.h> // LCD分辨率(横屏) #define LCD_WIDTH 240 // 逻辑宽度 #define LCD_HEIGHT 320 // 逻辑高度 //// 中文字模数据(16x16,32 字节/字符) //static const uint8_t font_data[][32] = { // 监控系统 //{0x00,0x02,0x00,0x02,0x7E,0x7E,0x00,0x42,0x00,0x42,0xFF,0x7E,0x00,0x42,0x02,0x42}, //{0x0C,0x42,0xF0,0x7E,0x20,0x42,0x28,0x42,0x26,0x7E,0x20,0x02,0x00,0x02,0x00,0x00},/*"监",0*/ //{0x08,0x40,0x08,0x42,0x08,0x81,0xFF,0xFE,0x09,0x00,0x04,0x02,0x19,0x02,0x12,0x42}, //{0x14,0x42,0x90,0x42,0x70,0x7E,0x14,0x42,0x12,0x42,0x15,0x42,0x18,0x02,0x00,0x00},/*"控",1*/ //{0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E}, //{0x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00},/*"系",2*/ //{0x04,0x44,0x0C,0xE6,0x35,0x44,0xC6,0x48,0x0C,0x48,0x00,0x01,0x11,0x02,0x13,0x0C}, //{0x15,0xF0,0x99,0x00,0x71,0x00,0x11,0xFC,0x15,0x02,0x13,0x02,0x11,0x8E,0x00,0x00},/*"统",3*/ // // 当前值 //{0x00,0x00,0x02,0x02,0x42,0x22,0x22,0x22,0x1A,0x22,0x02,0x22,0x02,0x22,0xFE,0x22}, //{0x02,0x22,0x02,0x22,0x0A,0x22,0x12,0x22,0x63,0xFF,0x00,0x00,0x00,0x00,0x00,0x00},/*"当",0*/ //{0x10,0x00,0x10,0x00,0x17,0xFF,0x94,0x90,0x74,0x92,0x14,0x91,0x17,0xFE,0x10,0x00}, //{0x10,0x00,0x13,0xF0,0x30,0x02,0xD0,0x01,0x17,0xFE,0x10,0x00,0x10,0x00,0x00,0x00},/*"前",1*/ //{0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x02,0x20,0x02,0x27,0xFE,0x25,0x52}, //{0x25,0x52,0xFD,0x52,0x25,0x52,0x25,0x52,0x27,0xFE,0x20,0x02,0x00,0x02,0x00,0x00},/*"值",2*/ // // 阈值 //{0x20,0x00,0x17,0xFC,0x00,0x84,0x40,0xA4,0x40,0x94,0x5F,0xF4,0x40,0x84,0x4E,0xA4}, //{0x4A,0xA4,0x4E,0xA4,0x40,0xC4,0x46,0x54,0x58,0xB4,0x41,0x14,0x42,0x04,0x40,0x0C},/*"阈",0*/ //{0x08,0x40,0x08,0x40,0x0F,0xFC,0x10,0x40,0x10,0x40,0x33,0xF8,0x32,0x08,0x53,0xF8}, //{0x92,0x08,0x13,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x12,0x08,0x1F,0xFE,0x10,0x00},/*"值",1*/ // // 超声波 //{0x08,0x00,0x09,0xFC,0x08,0x44,0x7E,0x44,0x08,0x44,0x08,0x94,0xFF,0x08,0x08,0xFC}, //{0x28,0x84,0x28,0x84,0x2E,0x84,0x28,0xFC,0x28,0x00,0x58,0x00,0x4F,0xFE,0x80,0x00},/*"超",0*/ //{0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x7F,0xFC,0x00,0x00,0x3F,0xF8,0x21,0x08}, //{0x21,0x08,0x3F,0xF8,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00},/*"声",1*/ //{0x00,0x20,0x20,0x20,0x10,0x20,0x13,0xFE,0x82,0x22,0x42,0x24,0x4A,0x20,0x0B,0xFC}, //{0x12,0x84,0x12,0x88,0xE2,0x48,0x22,0x50,0x22,0x20,0x24,0x50,0x24,0x88,0x09,0x06},/*"波",2*/ // // 温度 //{0x00,0x00,0x23,0xF8,0x12,0x08,0x12,0x08,0x83,0xF8,0x42,0x08,0x42,0x08,0x13,0xF8}, //{0x10,0x00,0x27,0xFC,0xE4,0xA4,0x24,0xA4,0x24,0xA4,0x24,0xA4,0x2F,0xFE,0x00,0x00},/*"温",0*/ //{0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20}, //{0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E},/*"度",1*/ // // 湿度 //{0x00,0x00,0x27,0xF8,0x14,0x08,0x14,0x08,0x87,0xF8,0x44,0x08,0x44,0x08,0x17,0xF8}, //{0x11,0x20,0x21,0x20,0xE9,0x24,0x25,0x28,0x23,0x30,0x21,0x20,0x2F,0xFE,0x00,0x00},/*"湿",0*/ //{0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x22,0x20}, //{0x23,0xE0,0x20,0x00,0x2F,0xF0,0x24,0x10,0x42,0x20,0x41,0xC0,0x86,0x30,0x38,0x0E},/*"度",1*/ // // 频率 //{0x10,0x00,0x11,0xFE,0x50,0x20,0x5C,0x40,0x51,0xFC,0x51,0x04,0xFF,0x24,0x01,0x24}, //{0x11,0x24,0x55,0x24,0x55,0x24,0x55,0x44,0x84,0x50,0x08,0x88,0x31,0x04,0xC2,0x02},/*"频",0*/ //{0x02,0x00,0x01,0x00,0x7F,0xFC,0x02,0x00,0x44,0x44,0x2F,0x88,0x11,0x10,0x22,0x48}, //{0x4F,0xE4,0x00,0x20,0x01,0x00,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00},/*"率",1*/ // // 按中间键确认 //{0x10,0x40,0x10,0x20,0x10,0x20,0x13,0xFE,0xFA,0x02,0x14,0x44,0x10,0x40,0x1B,0xFE}, //{0x30,0x88,0xD0,0x88,0x11,0x08,0x10,0xD0,0x10,0x20,0x10,0x50,0x50,0x88,0x23,0x04},/*"按",0*/ //{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08}, //{0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00},/*"中",1*/ //{0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04,0x47,0xC4,0x44,0x44,0x44,0x44,0x44,0x44}, //{0x47,0xC4,0x44,0x44,0x44,0x44,0x44,0x44,0x47,0xC4,0x40,0x04,0x40,0x14,0x40,0x08},/*"间",2*/ //{0x20,0x10,0x20,0x10,0x3B,0x7C,0x21,0x14,0x41,0xFE,0x7A,0x14,0xA2,0x7C,0x27,0x10}, //{0xF9,0x7C,0x25,0x10,0x25,0xFE,0x22,0x10,0x2A,0x10,0x35,0x00,0x28,0xFE,0x00,0x00},/*"键",3*/ //{0x00,0x40,0x00,0x40,0xFC,0x7C,0x10,0x84,0x11,0x08,0x22,0xFE,0x3C,0x92,0x64,0x92}, //{0x64,0xFE,0xA4,0x92,0x24,0x92,0x24,0xFE,0x3C,0x92,0x25,0x12,0x21,0x0A,0x02,0x04},/*"确",4*/ //{0x00,0x40,0x20,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x40,0xF0,0x40,0x10,0x40}, //{0x10,0xA0,0x10,0xA0,0x10,0xA0,0x15,0x10,0x19,0x10,0x12,0x08,0x04,0x04,0x08,0x02},/*"认",5*/ // // 左/右:调整 //{0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xFE,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00}, //{0x0F,0xF8,0x10,0x80,0x10,0x80,0x20,0x80,0x40,0x80,0x80,0x80,0x3F,0xFE,0x00,0x00},/*"左",0*/ //{0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x00},/*"/",1*/ //{0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xFE,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x00}, //{0x1F,0xF8,0x28,0x08,0x48,0x08,0x88,0x08,0x08,0x08,0x08,0x08,0x0F,0xF8,0x08,0x08},/*"右",2*/ //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //{0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*":",3*/ //{0x00,0x00,0x47,0xFC,0x24,0x44,0x24,0x44,0x05,0xF4,0x04,0x44,0xE4,0x44,0x27,0xFC}, //{0x24,0x04,0x25,0xF4,0x25,0x14,0x2D,0x14,0x35,0xF4,0x24,0x04,0x04,0x14,0x08,0x08},/*"调",4*/ //{0x08,0x20,0x08,0x20,0xFF,0xBE,0x08,0x44,0x7F,0xA4,0x49,0x24,0x7F,0x28,0x2A,0x10}, //{0x49,0x28,0x88,0x46,0x00,0x00,0x7F,0xFC,0x01,0x00,0x11,0xF8,0x11,0x00,0xFF,0xFE},/*"整",5*/ // // 中间:编辑 //{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08}, //{0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00},/*"中",0*/ //{0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04,0x47,0xC4,0x44,0x44,0x44,0x44,0x44,0x44}, //{0x47,0xC4,0x44,0x44,0x44,0x44,0x44,0x44,0x47,0xC4,0x40,0x04,0x40,0x14,0x40,0x08},/*"间",1*/ //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //{0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*":",2*/ //{0x10,0x80,0x10,0x40,0x23,0xFC,0x22,0x04,0x4A,0x04,0xFB,0xFC,0x12,0x00,0x22,0x00}, //{0x43,0xFC,0xFB,0x54,0x43,0x54,0x05,0xFC,0x1D,0x54,0xE5,0x54,0x49,0x44,0x01,0x0C},/*"编",3*/ //{0x20,0x00,0x21,0xF8,0x21,0x08,0xFD,0x08,0x41,0xF8,0x50,0x00,0x97,0xFE,0xFD,0x08}, //{0x11,0xF8,0x11,0x08,0x1D,0xF8,0xF1,0x08,0x51,0x3E,0x17,0xC8,0x10,0x08,0x10,0x08},/*"辑",4*/ // // 上/下:选择 //{0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xF8,0x02,0x00}, //{0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xFE,0x00,0x00},/*"上",0*/ //{0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x00},/*"/",1*/ //{0x00,0x00,0xFF,0xFE,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x40,0x02,0x20}, //{0x02,0x10,0x02,0x08,0x02,0x08,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00},/*"下",2*/ //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //{0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00},/*":",3*/ //{0x00,0x40,0x22,0x40,0x12,0x40,0x13,0xF8,0x04,0x40,0x00,0x40,0xF7,0xFC,0x11,0x20}, //{0x11,0x20,0x11,0x20,0x12,0x24,0x12,0x24,0x14,0x1C,0x28,0x00,0x47,0xFE,0x00,0x00},/*"选",4*/ //{0x20,0x00,0x27,0xF8,0x22,0x08,0x21,0x10,0xF0,0xA0,0x20,0x40,0x21,0xB0,0x26,0x4E}, //{0x30,0x40,0xE3,0xF8,0x20,0x40,0x20,0x40,0x27,0xFC,0x20,0x40,0xA0,0x40,0x40,0x40},/*"择",5*/ // // 阈值已保存 //{0x20,0x00,0x17,0xFC,0x00,0x84,0x40,0xA4,0x40,0x94,0x5F,0xF4,0x40,0x84,0x4E,0xA4}, //{0x4A,0xA4,0x4E,0xA4,0x40,0xC4,0x46,0x54,0x58,0xB4,0x41,0x14,0x42,0x04,0x40,0x0C},/*"阈",0*/ //{0x08,0x40,0x08,0x40,0x0F,0xFC,0x10,0x40,0x10,0x40,0x33,0xF8,0x32,0x08,0x53,0xF8}, //{0x92,0x08,0x13,0xF8,0x12,0x08,0x13,0xF8,0x12,0x08,0x12,0x08,0x1F,0xFE,0x10,0x00},/*"值",1*/ //{0x00,0x00,0x3F,0xF0,0x00,0x10,0x00,0x10,0x00,0x10,0x20,0x10,0x20,0x10,0x3F,0xF0}, //{0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x04,0x20,0x04,0x20,0x04,0x1F,0xFC,0x00,0x00},/*"已",2*/ //{0x08,0x00,0x0B,0xF8,0x0A,0x08,0x12,0x08,0x12,0x08,0x33,0xF8,0x30,0x40,0x50,0x40}, //{0x97,0xFC,0x10,0xE0,0x11,0x50,0x12,0x48,0x14,0x44,0x18,0x42,0x10,0x40,0x10,0x40},/*"保",3*/ //{0x04,0x00,0x04,0x00,0xFF,0xFE,0x08,0x00,0x08,0x00,0x13,0xF8,0x10,0x10,0x30,0x20}, //{0x50,0x40,0x97,0xFE,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x11,0x40,0x10,0x80},/*"存",4*/ //}; //// ASCII 字模(8x16,16 字节/字符,特殊字符 / 和 :) //static const uint8_t ascii_fonts[][16] = { //{0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x00},/*"/",0*/ //{0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00},/*":",0*/ //}; // 中文字模数据(16x16,32 字节/字符) static const uint8_t font_data[][32] = { // 监控系统 {0x00,0x02,0x00,0x02,0x7E,0x7E,0x00,0x42,0x00,0x42,0xFF,0x7E,0x00,0x42,0x02,0x42, 0x0C,0x42,0xF0,0x7E,0x20,0x42,0x28,0x42,0x26,0x7E,0x20,0x02,0x00,0x02,0x00,0x00}, /*"监",0*/ {0x08,0x40,0x08,0x42,0x08,0x81,0xFF,0xFE,0x09,0x00,0x04,0x02,0x19,0x02,0x12,0x42, 0x14,0x42,0x90,0x42,0x70,0x7E,0x14,0x42,0x12,0x42,0x15,0x42,0x18,0x02,0x00,0x00}, /*"控",1*/ {0x00,0x00,0x00,0x42,0x44,0x44,0x4C,0xC8,0x54,0xD0,0x65,0x42,0x45,0x41,0x46,0x7E, 0x84,0x40,0x88,0x40,0x90,0x50,0x81,0x48,0x80,0xC4,0x00,0x62,0x00,0x00,0x00,0x00}, /*"系",2*/ {0x04,0x44,0x0C,0xE6,0x35,0x44,0xC6,0x48,0x0C,0x48,0x00,0x01,0x11,0x02,0x13,0x0C, 0x15,0xF0,0x99,0x00,0x71,0x00,0x11,0xFC,0x15,0x02,0x13,0x02,0x11,0x8E,0x00,0x00}, /*"统",3*/ // 当前值 {0x00,0x00,0x02,0x02,0x42,0x22,0x22,0x22,0x1A,0x22,0x02,0x22,0x02,0x22,0xFE,0x22, 0x02,0x22,0x02,0x22,0x0A,0x22,0x12,0x22,0x63,0xFF,0x00,0x00,0x00,0x00,0x00,0x00}, /*"当",4*/ {0x10,0x00,0x10,0x00,0x17,0xFF,0x94,0x90,0x74,0x92,0x14,0x91,0x17,0xFE,0x10,0x00, 0x10,0x00,0x13,0xF0,0x30,0x02,0xD0,0x01,0x17,0xFE,0x10,0x00,0x10,0x00,0x00,0x00}, /*"前",5*/ {0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x02,0x20,0x02,0x27,0xFE,0x25,0x52, 0x25,0x52,0xFD,0x52,0x25,0x52,0x25,0x52,0x27,0xFE,0x20,0x02,0x00,0x02,0x00,0x00}, /*"值",6*/ // 阈值 {0x00,0x00,0x1F,0xFF,0x80,0x00,0x44,0x08,0x05,0xC8,0x45,0x50,0x45,0xD2,0x44,0x04, 0x7F,0xE8,0x44,0x30,0x55,0xC8,0x4C,0x1C,0x40,0x01,0x7F,0xFF,0x00,0x00,0x00,0x00}, /*"阈",7*/ // 超声波 {0x02,0x01,0x12,0x06,0x12,0xF8,0x12,0x04,0xFF,0xFE,0x12,0x22,0x12,0x22,0x42,0x02, 0x45,0xF2,0x79,0x12,0x41,0x12,0x45,0x12,0x43,0x12,0x7D,0xF2,0x00,0x02,0x00,0x00}, /*"超",8*/ {0x20,0x01,0x28,0x06,0x2B,0xF8,0x2A,0x40,0x2A,0x40,0x2A,0x40,0x2A,0x40,0xFB,0xC0, 0x2A,0x40,0x2A,0x40,0x2A,0x40,0x2A,0x40,0x2B,0xC0,0x28,0x00,0x20,0x00,0x00,0x00}, /*"声",9*/ {0x08,0x20,0x06,0x20,0x40,0x3E,0x30,0xC0,0x03,0x01,0x00,0x06,0x1F,0xF8,0x11,0x01, 0x11,0xC2,0x11,0x34,0xFF,0x08,0x11,0x14,0x11,0x62,0x15,0x81,0x18,0x01,0x00,0x00}, /*"波",10*/ // 温度 {0x08,0x20,0x06,0x20,0x40,0x7E,0x31,0x80,0x00,0x02,0x00,0x7E,0x7F,0x42,0x49,0x42, 0x49,0x7E,0x49,0x42,0x49,0x7E,0x49,0x42,0x7F,0x42,0x00,0x7E,0x00,0x02,0x00,0x00}, /*"温",11*/ {0x00,0x02,0x00,0x0C,0x3F,0xF1,0x24,0x01,0x24,0x21,0x24,0x32,0x3F,0xAA,0xA4,0xA4, 0x64,0xA4,0x24,0xA4,0x3F,0xAA,0x24,0x32,0x24,0x01,0x24,0x01,0x20,0x01,0x00,0x00}, /*"度",12*/ // 湿度 {0x08,0x20,0x06,0x20,0x40,0x7E,0x31,0x80,0x00,0x22,0x7F,0x12,0x49,0x0A,0x49,0xFE, 0x49,0x02,0x49,0x02,0x49,0xFE,0x49,0x0A,0x7F,0x12,0x00,0x22,0x00,0x02,0x00,0x00}, /*"湿",13*/ // 频率 {0x02,0x09,0x3E,0x71,0x02,0x02,0xFE,0xF2,0x12,0x04,0x12,0x78,0x02,0x01,0x4F,0xF2, 0x48,0x04,0x58,0x18,0x6B,0xE0,0x48,0x08,0x48,0x04,0x4F,0xF2,0x40,0x01,0x00,0x00}, /*"频",14*/ {0x00,0x10,0x28,0x90,0x25,0x10,0x22,0x10,0x24,0x90,0x2C,0x90,0xB5,0x90,0x66,0xBF, 0x24,0x90,0x29,0x90,0x20,0xD0,0x22,0x10,0x25,0x10,0x28,0x90,0x00,0x10,0x00,0x00}, /*"率",15*/ // 按中间键确认 {0x08,0x40,0x08,0x42,0x08,0x81,0xFF,0xFE,0x09,0x00,0x04,0x00,0x19,0x01,0x11,0x21, 0x11,0xD2,0x97,0x14,0x71,0x08,0x11,0x14,0x11,0xE2,0x15,0x01,0x19,0x00,0x00,0x00}, /*"按",16*/ {0x00,0x00,0x00,0x00,0x0F,0xF0,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0xFF,0xFF, 0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00}, /*"中",17*/ {0x00,0x00,0x1F,0xFF,0x80,0x00,0x60,0x00,0x00,0x00,0x0F,0xF8,0x48,0x88,0x48,0x88, 0x48,0x88,0x4F,0xF8,0x40,0x00,0x40,0x02,0x40,0x01,0x7F,0xFE,0x00,0x00,0x00,0x00}, /*"间",18*/ {0x02,0x80,0x0C,0x80,0xF7,0xFE,0x24,0x84,0x24,0x8A,0x01,0x64,0x27,0x18,0x39,0xE4, 0x08,0x22,0x2A,0xA2,0x2A,0xA2,0xFF,0xFA,0x2A,0xA2,0x3E,0xA2,0x08,0x22,0x00,0x00}, /*"键",19*/ {0x20,0x40,0x21,0x80,0x27,0xFE,0x3A,0x08,0x22,0x08,0x23,0xFC,0x04,0x01,0x08,0x06, 0x17,0xF8,0xE4,0x90,0x24,0x90,0x27,0xFC,0x2C,0x92,0x34,0x91,0x07,0xFE,0x00,0x00}, /*"确",20*/ {0x02,0x00,0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x09,0x00,0x12,0x00,0x04,0x00,0x18, 0x00,0xE0,0xFF,0x00,0x00,0xE0,0x00,0x18,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x00}, /*"认",21*/ // 左/右:调整 {0x10,0x04,0x10,0x08,0x10,0x12,0x10,0x62,0x11,0x82,0x1E,0x82,0xF0,0x82,0x10,0x82, 0x10,0xFE,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x02,0x10,0x02,0x00,0x00}, /*"左",22*/ {0x10,0x10,0x10,0x20,0x10,0x40,0x10,0x80,0x13,0xFF,0x1C,0x82,0xF0,0x82,0x10,0x82, 0x10,0x82,0x10,0x82,0x10,0x82,0x10,0x82,0x10,0xFF,0x10,0x00,0x10,0x00,0x00,0x00}, /*"右",23*/ {0x02,0x00,0x42,0x00,0x33,0xFC,0x00,0x08,0x00,0x11,0x7F,0xFE,0x41,0x00,0x49,0x78, 0x49,0x48,0x7F,0x48,0x49,0x48,0x49,0x7A,0x41,0x01,0x7F,0xFE,0x00,0x00,0x00,0x00}, /*"调",24*/ {0x20,0x41,0x2E,0x91,0x2B,0x11,0x2A,0x17,0xFF,0xD1,0x2A,0x11,0x2B,0x11,0x2E,0x9F, 0x28,0x15,0x10,0x55,0xEE,0x95,0x21,0x15,0x22,0x95,0x3C,0x51,0x20,0x41,0x00,0x00}, /*"整",25*/ // 中间:编辑 {0x04,0x44,0x0C,0xE6,0x35,0x44,0xC6,0x48,0x0C,0x4A,0x00,0x1C,0x3F,0xE0,0x24,0xFF, 0xA4,0x90,0x64,0xFE,0x24,0x90,0x24,0xFC,0x24,0x91,0x3C,0xFF,0x00,0x00,0x00,0x00}, /*"编",26*/ {0x13,0x10,0x1D,0x18,0xF1,0x10,0x17,0xFF,0x11,0x20,0x13,0x24,0x02,0x04,0x7B,0xFC, 0x4A,0xA4,0x4A,0xA4,0x4A,0xA8,0x4A,0xA8,0x7B,0xFF,0x02,0x08,0x02,0x08,0x00,0x00}, /*"辑",27*/ // 上/下:选择 {0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0xFF,0xFE,0x02,0x02, 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x02,0x00,0x02,0x00,0x00}, /*"上",28*/ {0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0xFF,0x40,0x00, 0x40,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x40,0x60,0x40,0x00,0x40,0x00,0x00,0x00}, /*"下",29*/ {0x02,0x00,0x02,0x02,0x42,0x04,0x33,0xF8,0x00,0x04,0x0A,0x0A,0x72,0x32,0x13,0xC2, 0x12,0x02,0xFE,0x02,0x13,0xF2,0x12,0x0A,0x12,0x0A,0x02,0x3A,0x00,0x02,0x00,0x00}, /*"选",30*/ {0x08,0x42,0x08,0x41,0xFF,0xFE,0x08,0x80,0x00,0x00,0x41,0x08,0x61,0x48,0x52,0x48, 0x4A,0x48,0x45,0xFF,0x4A,0x48,0x52,0x48,0x61,0x48,0x01,0x08,0x01,0x00,0x00,0x00}, /*"择",31*/ // 阈值已保存 {0x00,0x00,0x00,0x00,0x47,0xFC,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02,0x41,0x02, 0x41,0x02,0x41,0x02,0x41,0x02,0x7F,0x02,0x00,0x02,0x00,0x1E,0x00,0x00,0x00,0x00}, /*"已",32*/ {0x00,0x80,0x01,0x00,0x06,0x00,0x1F,0xFF,0xE0,0x04,0x00,0x88,0x7C,0x90,0x44,0xA0, 0x44,0xC0,0x47,0xFF,0x44,0xC0,0x44,0xA0,0x7C,0x90,0x00,0x88,0x00,0x04,0x00,0x00}, /*"保",33*/ {0x20,0x40,0x20,0x80,0x21,0x00,0x27,0xFF,0x38,0x00,0xE0,0x40,0x24,0x40,0x24,0x42, 0x24,0x41,0x24,0xFE,0x25,0x40,0x26,0x40,0x24,0x40,0x20,0x40,0x20,0x40,0x00,0x00}, /*"存",34*/ }; // ASCII 字模(8x16,16 字节/字符,特殊字符 / 和 :) static const uint8_t ascii_fonts[][16] = { {0x00,0x00,0x00,0x06,0x00,0x18,0x00,0xE0,0x03,0x00,0x1C,0x00,0x20,0x00,0x00,0x00}, /*"/"*/ {0x00,0x00,0x00,0x00,0x00,0x6C,0x00,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /*":"*/ }; // 中文字符索引表 static const ChineseFont chinese_fonts[] = { {"监", font_data[0], 16}, {"控", font_data[1], 16}, {"系", font_data[2], 16}, {"统", font_data[3], 16}, {"当", font_data[4], 16}, {"前", font_data[5], 16}, {"值", font_data[6], 16}, {"阈", font_data[7], 16}, {"超", font_data[8], 16}, {"声", font_data[9], 16}, {"波", font_data[10], 16}, {"温", font_data[11], 16}, {"度", font_data[12], 16}, {"湿", font_data[13], 16}, {"频", font_data[14], 16}, {"率", font_data[15], 16}, {"按", font_data[16], 16}, {"中", font_data[17], 16}, {"间", font_data[18], 16}, {"键", font_data[19], 16}, {"确", font_data[20], 16}, {"认", font_data[21], 16}, {"左", font_data[22], 16}, {"右", font_data[23], 16}, {"调", font_data[24], 16}, {"整", font_data[25], 16}, {"编", font_data[26], 16}, {"辑", font_data[27], 16}, {"上", font_data[28], 16}, {"下", font_data[29], 16}, {"选", font_data[30], 16}, {"择", font_data[31], 16}, {"已", font_data[32], 16}, {"保", font_data[33], 16}, {"存", font_data[34], 16}, {NULL, NULL, 0} // 结束标志 }; // 显示中文字符串 void LCD_ShowChinese(uint16_t x, uint16_t y, const char *str, uint8_t size, uint16_t color) { if (size != 16) return; // 仅支持 16x16 字体 uint16_t x0 = x; while (*str) { if (*str == '/') { LCD_ShowChar(x, y, '/', size, color); // 显示 ASCII 字符 / x += 8; // 8 像素宽 str++; } else if (*str == ':') { LCD_ShowChar(x, y, ':', size, color); // 显示 ASCII 字符 : x += 8; // 8 像素宽 str++; } else { // 查找中文字符 for (int i = 0; chinese_fonts[i].ch != NULL; i++) { if (strncmp(str, chinese_fonts[i].ch, strlen(chinese_fonts[i].ch)) == 0) { // 显示 16x16 中文字模 for (int row = 0; row < 16; row++) { uint16_t data = (chinese_fonts[i].data[row * 2] << 8) | chinese_fonts[i].data[row * 2 + 1]; for (int col = 0; col < 16; col++) { if (data & (0x8000 >> col)) { lcd_draw_point(x + col, y + row, color); // lcd_draw_point(y + row,x + col, color); } } } x += 16; // 16 像素宽 str += strlen(chinese_fonts[i].ch); break; } } } } } //void LCD_ShowChinese(uint16_t x, uint16_t y, const char *str, uint8_t size, uint16_t color) //{ // if (size != 16) return; // 仅支持 16x16 字体 // uint16_t x0 = x; // while (*str) { // if (*str == '/') { // // 转换坐标以适应硬件180度翻转和顺时针90度旋转 // uint16_t new_x = y; // x -> y // uint16_t new_y = LCD_WIDTH - (x + 8); // y -> LCD_WIDTH - x - 字符宽度 // LCD_ShowChar(new_x, new_y, '/', size, color); // 显示 ASCII 字符 / // x += 8; // 8 像素宽 // str++; // } else if (*str == ':') { // // 转换坐标 // uint16_t new_x = y; // uint16_t new_y = LCD_WIDTH - (x + 8); // LCD_ShowChar(new_x, new_y, ':', size, color); // 显示 ASCII 字符 : // x += 8; // 8 像素宽 // str++; // } else { // // 查找中文字符 // for (int i = 0; chinese_fonts[i].ch != NULL; i++) { // if (strncmp(str, chinese_fonts[i].ch, strlen(chinese_fonts[i].ch)) == 0) { // // 转换坐标以适应硬件180度翻转和顺时针90度旋转 // uint16_t new_x = y; // x -> y // uint16_t new_y = LCD_WIDTH - (x + 16); // y -> LCD_WIDTH - x - 字符宽度 // // 显示 16x16 中文字模 // for (int row = 0; row < 16; row++) { // uint16_t data = (chinese_fonts[i].data[row * 2] << 8) | chinese_fonts[i].data[row * 2 + 1]; // for (int col = 0; col < 16; col++) { // if (data & (0x8000 >> col)) { // // 映射到顺时针90度旋转后的点阵:(row, col) -> (col, 15-row) // lcd_draw_point(new_x + col, new_y + (15 - row), color); // } // } // } // x += 16; // 16 像素宽 // str += strlen(chinese_fonts[i].ch); // break; // } // } // } // } //} // 显示 ASCII 字符(为 / 和 : 提供支持) void LCD_ShowChar(uint16_t x, uint16_t y, char ch, uint8_t size, uint16_t color) { if (size != 16) return; // 仅支持 16 像素高 int idx = (ch == '/') ? 0 : (ch == ':') ? 1 : -1; if (idx < 0) return; for (int row = 0; row < 16; row++) { uint8_t data = ascii_fonts[idx][row]; for (int col = 0; col < 8; col++) { if (data & (0x80 >> col)) { lcd_draw_point(x + col, y + row, color); } } } }

static const uint8_t crc8_table[256] = { 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, 0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85, 0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD, 0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2, 0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA, 0xB6, 0xB1, 0xB8, 0xBF, 0xAA, 0xAD, 0xA4, 0xA3, 0x8E, 0x89, 0x80, 0x87, 0x92, 0x95, 0x9C, 0x9B, 0x26, 0x21, 0x28, 0x2F, 0x3A, 0x3D, 0x34, 0x33, 0x1E, 0x19, 0x10, 0x17, 0x02, 0x05, 0x0C, 0x0B, 0x56, 0x51, 0x58, 0x5F, 0x4A, 0x4D, 0x44, 0x43, 0x6E, 0x69, 0x60, 0x67, 0x72, 0x75, 0x7C, 0x7B, 0x81, 0x86, 0x8F, 0x88, 0x9D, 0x9A, 0x93, 0x94, 0xB9, 0xBE, 0xB7, 0xB0, 0xA5, 0xA2, 0xAB, 0xAC, 0xF1, 0xF6, 0xFF, 0xF8, 0xED, 0xEA, 0xE3, 0xE4, 0xC9, 0xCE, 0xC7, 0xC0, 0xD5, 0xD2, 0xDB, 0xDC, 0xA2, 0xA5, 0xAC, 0xAB, 0xBE, 0xB9, 0xB0, 0xB7, 0x9A, 0x9D, 0x94, 0x93, 0x86, 0x81, 0x88, 0x8F, 0xD2, 0xD5, 0xDC, 0xDB, 0xCE, 0xC9, 0xC0, 0xC7, 0xEA, 0xED, 0xE4, 0xE3, 0xF6, 0xF1, 0xF8, 0xFF, 0x41, 0x46, 0x4F, 0x48, 0x5D, 0x5A, 0x53, 0x54, 0x79, 0x7E, 0x77, 0x70, 0x65, 0x62, 0x6B, 0x6C, 0x31, 0x36, 0x3F, 0x38, 0x2D, 0x2A, 0x23, 0x24, 0x09, 0x0E, 0x07, 0x00, 0x15, 0x12, 0x1B, 0x1C, 0xE1, 0xE6, 0xEF, 0xE8, 0xFD, 0xFA, 0xF3, 0xF4, 0xD9, 0xDE, 0xD7, 0xD0, 0xC5, 0xC2, 0xCB, 0xCC, 0x91, 0x96, 0x9F, 0x98, 0x8D, 0x8A, 0x83, 0x84, 0xA9, 0xAE, 0xA7, 0xA0, 0xB5, 0xB2, 0xBB, 0xBC }; 该表有问题吗

static unsigned char const HzLib[40*2][16] = { {0x30,0x00,0x31,0xFC,0x31,0xFC,0xFC,0x30,0xFC,0x60,0x31,0xFE,0x39,0xFE,0x7C,0x56}, {0x74,0xD6,0xF1,0xB6,0xB3,0x36,0x36,0x66,0x30,0xC6,0x31,0x9E,0x33,0x0C,0x00,0x00},/*"杨",0*/ {0x18,0x60,0x18,0x60,0x30,0x60,0x30,0x60,0x77,0xFE,0x77,0xFE,0xF0,0x60,0xB0,0x60}, {0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x37,0xFC,0x37,0xFC,0x30,0x00,0x00,0x00},/*"仕",1*/ {0x30,0xD8,0x37,0xFC,0x37,0xFC,0x30,0xC0,0xFF,0xFC,0xFE,0xCC,0x37,0xFC,0x36,0xCC}, {0x37,0xFC,0x36,0xCC,0x3F,0xFE,0x3F,0xFE,0x33,0x18,0x31,0x38,0x30,0x38,0x00,0x00},/*"博",2*/ {0x01,0x80,0x7D,0x8C,0x7D,0x98,0x0D,0xB0,0x0D,0xA0,0x7D,0x80,0x63,0xFE,0x63,0xFE}, {0x7D,0xB0,0x7D,0xB0,0x0D,0xB0,0x0D,0x98,0x0D,0xCC,0x39,0xC6,0x31,0x80,0x00,0x00},/*"张",3*/ {0x06,0x60,0x7F,0xFE,0x7F,0xFE,0x06,0x60,0x7F,0xFE,0x7F,0xFE,0x60,0x06,0x6F,0xF6}, {0x01,0x80,0x01,0x80,0x1F,0xF8,0x01,0xB0,0x01,0x98,0x7F,0xFE,0x7F,0xFE,0x00,0x00},/*"莹",4*/ {0x3F,0xF8,0x3F,0xF8,0x31,0x98,0x37,0xD8,0x31,0x98,0x33,0x98,0x36,0xD8,0x3F,0xF8}, {0x3F,0xF8,0x00,0x00,0x6D,0x8C,0x6C,0xCE,0xCC,0x36,0xCF,0xF0,0x07,0xE0,0x00,0x00},/*"恩",5*/ {0x01,0x80,0x01,0x80,0x7F,0xFC,0x7F,0xFC,0x07,0xC0,0x07,0xE0,0x0D,0xB0,0x19,0x98}, {0x71,0x8E,0x41,0x84,0x00,0x00,0x36,0xCC,0x32,0x66,0x63,0x26,0x60,0x00,0x00,0x00},/*"杰",6*/ {0x06,0x60,0xFF,0xFE,0x06,0x60,0x00,0x38,0x3F,0xC0,0x01,0x80,0xFF,0xFE,0x19,0x98}, {0x1F,0xF8,0x19,0x98,0x1F,0xF8,0x01,0x80,0x3F,0xFC,0x01,0x80,0x7F,0xFE,0x00,0x00},/*"董",7*/ {0x18,0x60,0x18,0x60,0x33,0xFC,0x33,0xFC,0x70,0x60,0x77,0xFE,0xF7,0xFE,0xB0,0x00}, {0x30,0x60,0x33,0xFC,0x33,0xFC,0x30,0x60,0x30,0x60,0x37,0xFE,0x37,0xFE,0x00,0x00},/*"佳",8*/ {0x00,0x00,0xFD,0xFC,0xFD,0xFC,0xCC,0x60,0xCC,0x60,0xCC,0x60,0xFD,0xFC,0xFD,0xFC}, {0xCC,0x60,0xCC,0x60,0xFC,0x60,0xFC,0x60,0xCC,0x60,0x03,0xFE,0x03,0xFE,0x00,0x00},/*"旺",9*/ {0x3F,0xF8,0x3F,0xF8,0x30,0x18,0x3F,0xF8,0x3F,0xF8,0x00,0x00,0x3F,0xF8,0x3F,0xF8}, {0x03,0x00,0x7F,0xFC,0x7F,0xFC,0x06,0xC0,0x0C,0x60,0x78,0x3E,0x60,0x0C,0x00,0x00},/*"吴",10*/ {0x18,0x1C,0x7D,0xFC,0x7D,0xF0,0x19,0x80,0x7D,0xFE,0x7D,0xFE,0x19,0x98,0x3B,0x98}, {0x33,0x18,0x3F,0xF0,0x3F,0xF0,0x30,0x30,0x30,0x30,0x3F,0xF0,0x3F,0xF0,0x00,0x00},/*"哲",11*/ {0x01,0x80,0x01,0x80,0xFF,0xFE,0xFF,0xFE,0x0D,0xE0,0x39,0xB8,0xE0,0x0E,0x5F,0xF0}, {0x1F,0xF0,0x00,0xC0,0x7F,0xFE,0x7F,0xFE,0x01,0x80,0x07,0x80,0x03,0x00,0x00,0x00},/*"李",12*/ {0x3F,0xF8,0x3F,0xF8,0x00,0x30,0x00,0x60,0x01,0xC0,0x01,0x80,0xFF,0xFE,0xFF,0xFE}, {0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x07,0x80,0x03,0x00,0x00,0x00},/*"子",13*/ {0x7C,0x00,0x7D,0xFC,0x6D,0xFC,0x6D,0x8C,0x6D,0x8C,0x79,0x8C,0x79,0xFC,0x6D,0xFC}, {0x6D,0x8C,0x6D,0x8C,0x7D,0x8C,0x79,0xFC,0x61,0xFC,0x61,0x8C,0x60,0x00,0x00,0x00},/*"阳",14*/ {0x01,0x80,0x7F,0xFC,0x7F,0xFC,0x00,0x00,0x1F,0xF0,0x18,0x30,0x1F,0xF0,0x00,0x00}, {0x7F,0xFC,0x60,0x0C,0x6F,0xEC,0x6C,0x6C,0x6F,0xEC,0x60,0x1C,0x60,0x18,0x00,0x00},/*"高",15*/ {0x3F,0xFE,0x3F,0xFE,0x30,0xC0,0x37,0xFC,0x37,0xFC,0x36,0x0C,0x37,0xFC,0x36,0x0C}, {0x37,0xFC,0x37,0xFC,0x30,0xC0,0x26,0xD8,0x6C,0xCC,0x4B,0xC4,0xC1,0x80,0x00,0x00},/*"原",16*/ {0x01,0x80,0x01,0x80,0xFF,0xFE,0xFF,0xFE,0x0D,0xE0,0x39,0xB8,0xE0,0x0E,0x5F,0xF0}, {0x1F,0xF0,0x00,0xC0,0x7F,0xFE,0x7F,0xFE,0x01,0x80,0x07,0x80,0x03,0x00,0x00,0x00},/*"李",17*/ {0x18,0x00,0x19,0xFE,0x3D,0xFE,0x66,0x60,0xD3,0xFE,0x99,0xFE,0x09,0x86,0x7D,0xB6}, {0x7D,0xB6,0x0D,0xB6,0x69,0xB6,0x38,0x30,0x1C,0x68,0x0D,0xCC,0x01,0x86,0x00,0x00},/*"领",18*/ {0x00,0x00,0x3F,0xF8,0x3F,0xF8,0x30,0x18,0x3F,0xF8,0x3F,0xF8,0x31,0x80,0x3F,0xFC}, {0x3F,0xFC,0x31,0x80,0x30,0xC0,0x30,0xC0,0x3C,0x66,0x3C,0x3E,0x30,0x1C,0x00,0x00},/*"民",19*/ {0x7F,0xFC,0x7F,0xFC,0x18,0x30,0x1F,0xF0,0x18,0x30,0x1F,0xF0,0x18,0x3C,0x7F,0xF0}, {0x00,0x30,0x7E,0xFC,0x26,0xD8,0x3C,0xD8,0x1C,0x70,0x36,0xFC,0xE1,0x8E,0x00,0x00},/*"聂",20*/ {0x00,0x00,0x7F,0xFC,0x7F,0xFC,0x01,0x80,0x01,0x80,0x19,0x80,0x19,0xF8,0x19,0xF8}, {0x19,0x80,0x19,0x80,0x19,0x80,0x19,0x80,0xFF,0xFE,0xFF,0xFE,0x00,0x00,0x00,0x00},/*"正",21*/ {0x01,0x80,0x7F,0xFC,0x7F,0xFC,0x06,0x60,0x36,0x78,0x66,0x6C,0x46,0xE4,0x0C,0xC0}, {0x19,0x80,0x7F,0xFE,0x7F,0xFE,0x06,0xC0,0x0C,0x60,0x18,0x38,0x70,0x0E,0x00,0x00},/*"奕",22*/ {0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0xF8,0x1F,0xF8}, {0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x7F,0xFE,0x7F,0xFE,0x00,0x00,0x00,0x00},/*"王",23*/ {0x0C,0xC0,0xFF,0xFC,0xFF,0xFC,0x0C,0xC0,0x23,0x10,0x2D,0x18,0x6C,0x48,0x4F,0xC0}, {0x17,0xB0,0x08,0x18,0xB2,0x64,0xB2,0xE6,0xB5,0x6A,0xBD,0x78,0x18,0x30,0x00,0x00},/*"蕊",24*/ {0x30,0x60,0x30,0x60,0x33,0xFC,0xFB,0xFC,0xF9,0x98,0x30,0xD8,0x33,0xFE,0x7B,0xFE}, {0x7C,0x60,0xB0,0x60,0xB3,0xFC,0x33,0xFC,0x30,0x60,0x30,0x60,0x30,0x60,0x00,0x00},/*"梓",25*/ }; for(i=0;i<sizeof(HzLib_I)/2;i++){ temp=HzLib_I[i*2+1]<<8+HzLib_I[i*2];}

#define CRC(crc,byte) (((crc) >> 8 ) ^ tabel[((crc) ^ (unsigned int) (byte)) & 0XFF]) static const uint16 tabel[256] = { 0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241, 0XC601, 0X06C0, 0X0780, 0XC741, 0X0500, 0XC5C1, 0XC481, 0X0440, 0XCC01, 0X0CC0, 0X0D80, 0XCD41, 0X0F00, 0XCFC1, 0XCE81, 0X0E40, 0X0A00, 0XCAC1, 0XCB81, 0X0B40, 0XC901, 0X09C0, 0X0880, 0XC841, 0XD801, 0X18C0, 0X1980, 0XD941, 0X1B00, 0XDBC1, 0XDA81, 0X1A40, 0X1E00, 0XDEC1, 0XDF81, 0X1F40, 0XDD01, 0X1DC0, 0X1C80, 0XDC41, 0X1400, 0XD4C1, 0XD581, 0X1540, 0XD701, 0X17C0, 0X1680, 0XD641, 0XD201, 0X12C0, 0X1380, 0XD341, 0X1100, 0XD1C1, 0XD081, 0X1040, 0XF001, 0X30C0, 0X3180, 0XF141, 0X3300, 0XF3C1, 0XF281, 0X3240, 0X3600, 0XF6C1, 0XF781, 0X3740, 0XF501, 0X35C0, 0X3480, 0XF441, 0X3C00, 0XFCC1, 0XFD81, 0X3D40, 0XFF01, 0X3FC0, 0X3E80, 0XFE41, 0XFA01, 0X3AC0, 0X3B80, 0XFB41, 0X3900, 0XF9C1, 0XF881, 0X3840, 0X2800, 0XE8C1, 0XE981, 0X2940, 0XEB01, 0X2BC0, 0X2A80, 0XEA41, 0XEE01, 0X2EC0, 0X2F80, 0XEF41, 0X2D00, 0XEDC1, 0XEC81, 0X2C40, 0XE401, 0X24C0, 0X2580, 0XE541, 0X2700, 0XE7C1, 0XE681, 0X2640, 0X2200, 0XE2C1, 0XE381, 0X2340, 0XE101, 0X21C0, 0X2080, 0XE041, 0XA001, 0X60C0, 0X6180, 0XA141, 0X6300, 0XA3C1, 0XA281, 0X6240, 0X6600, 0XA6C1, 0XA781, 0X6740, 0XA501, 0X65C0, 0X6480, 0XA441, 0X6C00, 0XACC1, 0XAD81, 0X6D40, 0XAF01, 0X6FC0, 0X6E80, 0XAE41, 0XAA01, 0X6AC0, 0X6B80, 0XAB41, 0X6900, 0XA9C1, 0XA881, 0X6840, 0X7800, 0XB8C1, 0XB981, 0X7940, 0XBB01, 0X7BC0, 0X7A80, 0XBA41, 0XBE01, 0X7EC0, 0X7F80, 0XBF41, 0X7D00, 0XBDC1, 0XBC81, 0X7C40, 0XB401, 0X74C0, 0X7580, 0XB541, 0X7700, 0XB7C1, 0XB681, 0X7640, 0X7200, 0XB2C1, 0XB381, 0X7340, 0XB101, 0X71C0, 0X7080, 0XB041, 0X5000, 0X90C1, 0X9181, 0X5140, 0X9301, 0X53C0, 0X5280, 0X9241, 0X9601, 0X56C0, 0X5780, 0X9741, 0X5500, 0X95C1, 0X9481, 0X5440, 0X9C01, 0X5CC0, 0X5D80, 0X9D41, 0X5F00, 0X9FC1, 0X9E81, 0X5E40, 0X5A00, 0X9AC1, 0X9B81, 0X5B40, 0X9901, 0X59C0, 0X5880, 0X9841, 0X8801, 0X48C0, 0X4980, 0X8941, 0X4B00, 0X8BC1, 0X8A81, 0X4A40, 0X4E00, 0X8EC1, 0X8F81, 0X4F40, 0X8D01, 0X4DC0, 0X4C80, 0X8C41, 0X4400, 0X84C1, 0X8581, 0X4540, 0X8701, 0X47C0, 0X4680, 0X8641, 0X8201, 0X42C0, 0X4380, 0X8341, 0X4100, 0X81C1, 0X8081, 0X4040 }; unsigned short CalcCRC(uint8 *data, uint32 size) { uint32 i; unsigned short crc = 0; for (i = 0; i < size; i++) { crc = CRC(crc, data[i]); } return crc; }

原始数据: WriteComm(0xF0); WriteData(0x28); WriteComm(0xF2); WriteData(0x28); WriteComm(0x73); WriteData(0xC0); WriteComm(0x7C); WriteData(0xD1); WriteComm(0x83); WriteData(0xE0); WriteComm(0x84); WriteData(0x61); WriteComm(0xF2); WriteData(0x82); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x01); WriteComm(0xF1); WriteData(0x01); WriteComm(0xB0); WriteData(0x52); WriteComm(0xB1); WriteData(0x21); WriteComm(0xB2); WriteData(0x38); WriteComm(0xB3); WriteData(0x01); WriteComm(0xB4); WriteData(0x46); WriteComm(0xB5); WriteData(0x34); WriteComm(0xB6); WriteData(0xAA); WriteComm(0xB7); WriteData(0x30); WriteComm(0xB8); WriteData(0x8C); WriteComm(0xB9); WriteData(0x15); WriteComm(0xBA); WriteData(0x00); WriteComm(0xBB); WriteData(0x08); WriteComm(0xBC); WriteData(0x08); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x07); WriteComm(0xC0); WriteData(0x80); WriteComm(0xC1); WriteData(0x0B); WriteComm(0xC2); WriteData(0x35); WriteComm(0xC3); WriteData(0x80); WriteComm(0xC4); WriteData(0x0B); WriteComm(0xC5); WriteData(0x35); WriteComm(0xC6); WriteData(0xA9); WriteComm(0xC7); WriteData(0x41); WriteComm(0xC8); WriteData(0x01); WriteComm(0xC9); WriteData(0xA9); WriteComm(0xCA); WriteData(0x41); WriteComm(0xCB); WriteData(0x01); WriteComm(0xCC); WriteData(0x7F); WriteComm(0xCD); WriteData(0x7F); WriteComm(0xCE); WriteData(0xFF); WriteComm(0xD0); WriteData(0xD1); WriteComm(0xD1); WriteData(0x40); WriteComm(0xD2); WriteData(0x7E); WriteComm(0xF5); WriteData(0x00); WriteData(0xA5); WriteComm(0xF1); WriteData(0x10); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x02); WriteComm(0xE0); WriteData(0xF0); WriteData(0x03); WriteData(0x06); WriteData(0x08); WriteData(0x07); WriteData(0x04); WriteData(0x2A); WriteData(0x43); WriteData(0x44); WriteData(0x39); WriteData(0x15); WriteData(0x15); WriteData(0x2B); WriteData(0x31); WriteComm(0xE1); WriteData(0xF0); WriteData(0x03); WriteData(0x06); WriteData(0x08); WriteData(0x07); WriteData(0x23); WriteData(0x29); WriteData(0x33); WriteData(0x43); WriteData(0x39); WriteData(0x15); WriteData(0x15); WriteData(0x2A); WriteData(0x30); WriteComm(0xF0); WriteData(0x10); WriteComm(0xF3); WriteData(0x10); WriteComm(0xE0); WriteData(0x08); WriteComm(0xE1); WriteData(0x00); WriteComm(0xE2); WriteData(0x08); WriteComm(0xE3); WriteData(0x00); WriteComm(0xE4); WriteData(0xE0); WriteComm(0xE5); WriteData(0x06); WriteComm(0xE6); WriteData(0x21); WriteComm(0xE7); WriteData(0x10); WriteComm(0xE8); WriteData(0x45); WriteComm(0xE9); WriteData(0x82); WriteComm(0xEA); WriteData(0xE4); WriteComm(0xEB); WriteData(0x00); WriteComm(0xEC); WriteData(0x80); WriteComm(0xED); WriteData(0x14); WriteComm(0xEE); WriteData(0xFF); WriteComm(0xEF); WriteData(0x00); WriteComm(0xF8); WriteData(0xFF); WriteComm(0xF9); WriteData(0x00); WriteComm(0xFA); WriteData(0x00); WriteComm(0xFB); WriteData(0x30); WriteComm(0xFC); WriteData(0x00); WriteComm(0xFD); WriteData(0x00); WriteComm(0xFE); WriteData(0x00); WriteComm(0xFF); WriteData(0x00); WriteComm(0x60); WriteData(0x70); WriteComm(0x61); WriteData(0x02); WriteComm(0x62); WriteData(0x08); WriteComm(0x63); WriteData(0x43); WriteComm(0x64); WriteData(0x05); WriteComm(0x65); WriteData(0x08); WriteComm(0x66); WriteData(0x00); WriteComm(0x67); WriteData(0x00); WriteComm(0x68); WriteData(0x00); WriteComm(0x69); WriteData(0x00); WriteComm(0x6A); WriteData(0x00); WriteComm(0x6B); WriteData(0x00); WriteComm(0x70); WriteData(0x70); WriteComm(0x71); WriteData(0x01); WriteComm(0x72); WriteData(0x08); WriteComm(0x73); WriteData(0x43); WriteComm(0x74); WriteData(0x04); WriteComm(0x75); WriteData(0x08); WriteComm(0x76); WriteData(0x00); WriteComm(0x77); WriteData(0x00); WriteComm(0x78); WriteData(0x00); WriteComm(0x79); WriteData(0x00); WriteComm(0x7A); WriteData(0x00); WriteComm(0x7B); WriteData(0x00); WriteComm(0x80); WriteData(0x58); WriteComm(0x81); WriteData(0x00); WriteComm(0x82); WriteData(0x04); WriteComm(0x83); WriteData(0x03); WriteComm(0x84); WriteData(0x0C); WriteComm(0x85); WriteData(0x00); WriteComm(0x86); WriteData(0x00); WriteComm(0x87); WriteData(0x00); WriteComm(0x88); WriteData(0x58); WriteComm(0x89); WriteData(0x00); WriteComm(0x8A); WriteData(0x06); WriteComm(0x8B); WriteData(0x03); WriteComm(0x8C); WriteData(0x0E); WriteComm(0x8D); WriteData(0x00); WriteComm(0x8E); WriteData(0x00); WriteComm(0x8F); WriteData(0x00); WriteComm(0x90); WriteData(0x58); WriteComm(0x91); WriteData(0x00); WriteComm(0x92); WriteData(0x08); WriteComm(0x93); WriteData(0x03); WriteComm(0x94); WriteData(0x08); WriteComm(0x95); WriteData(0x00); WriteComm(0x96); WriteData(0x00); WriteComm(0x97); WriteData(0x00); WriteComm(0x98); WriteData(0x58); WriteComm(0x99); WriteData(0x00); WriteComm(0x9A); WriteData(0x0A); WriteComm(0x9B); WriteData(0x03); WriteComm(0x9C); WriteData(0x0A); WriteComm(0x9D); WriteData(0x00); WriteComm(0x9E); WriteData(0x00); WriteComm(0x9F); WriteData(0x00); WriteComm(0xA0); WriteData(0x58); WriteComm(0xA1); WriteData(0x00); WriteComm(0xA2); WriteData(0x03); WriteComm(0xA3); WriteData(0x03); WriteComm(0xA4); WriteData(0x0B); WriteComm(0xA5); WriteData(0x00); WriteComm(0xA6); WriteData(0x00); WriteComm(0xA7); WriteData(0x00); WriteComm(0xA8); WriteData(0x58); WriteComm(0xA9); WriteData(0x00); WriteComm(0xAA); WriteData(0x05); WriteComm(0xAB); WriteData(0x03); WriteComm(0xAC); WriteData(0x0D); WriteComm(0xAD); WriteData(0x00); WriteComm(0xAE); WriteData(0x00); WriteComm(0xAF); WriteData(0x00); WriteComm(0xB0); WriteData(0x58); WriteComm(0xB1); WriteData(0x00); WriteComm(0xB2); WriteData(0x07); WriteComm(0xB3); WriteData(0x03); WriteComm(0xB4); WriteData(0x07); WriteComm(0xB5); WriteData(0x00); WriteComm(0xB6); WriteData(0x00); WriteComm(0xB7); WriteData(0x00); WriteComm(0xB8); WriteData(0x58); WriteComm(0xB9); WriteData(0x00); WriteComm(0xBA); WriteData(0x09); WriteComm(0xBB); WriteData(0x03); WriteComm(0xBC); WriteData(0x09); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x00); WriteComm(0xC0); WriteData(0x22); WriteComm(0xC1); WriteData(0xFF); WriteComm(0xC2); WriteData(0x10); WriteComm(0xC3); WriteData(0x74); WriteComm(0xC4); WriteData(0x65); WriteComm(0xC5); WriteData(0x56); WriteComm(0xC6); WriteData(0x47); WriteComm(0xC7); WriteData(0x01); WriteComm(0xC8); WriteData(0xFF); WriteComm(0xC9); WriteData(0xFF); WriteComm(0xD0); WriteData(0x22); WriteComm(0xD1); WriteData(0xFF); WriteComm(0xD2); WriteData(0x10); WriteComm(0xD3); WriteData(0x74); WriteComm(0xD4); WriteData(0x65); WriteComm(0xD5); WriteData(0x56); WriteComm(0xD6); WriteData(0x47); WriteComm(0xD7); WriteData(0x01); WriteComm(0xD8); WriteData(0xFF); WriteComm(0xD9); WriteData(0xFF); WriteComm(0xF3); WriteData(0x01); WriteComm(0xF0); WriteData(0x00); WriteComm(0x21); WriteComm(0x35); WriteComm(0x3a); WriteData(0x55); 写入的数据: { 0xF0 ,1, 0x28 }, { 0xF2 ,1, 0x28 }, { 0x73 ,1, 0xC0 }, { 0x7C ,1, 0xD1 }, { 0x83 ,1, 0xE0 }, { 0x84 ,1, 0x61 }, { 0xF2 ,1, 0x82 }, { 0xF0 ,1, 0x00 }, { 0xF0 ,1, 0x01 }, { 0xF1 ,1, 0x01 }, { 0xB0 ,1, 0x52 }, { 0xB1 ,1, 0x21 }, { 0xB2 ,1, 0x38 }, { 0xB3 ,1, 0x01 }, { 0xB4 ,1, 0x46 }, { 0xB5 ,1, 0x34 }, { 0xB6 ,1, 0xAA }, { 0xB7 ,1, 0x30 }, { 0xB8 ,1, 0x8C }, { 0xB9 ,1, 0x15 }, { 0xBA ,1, 0x00 }, { 0xBB ,1, 0x08 }, { 0xBC ,1, 0x08 }, { 0xBD ,1, 0x00 }, { 0xBE ,1, 0x00 }, { 0xBF ,1, 0x07 }, { 0xC0 ,1, 0x80 }, { 0xC1 ,1, 0x0B }, { 0xC2 ,1, 0x35 }, { 0xC3 ,1, 0x80 }, { 0xC4 ,1, 0x0B }, { 0xC5 ,1, 0x35 }, { 0xC6 ,1, 0xA9 }, { 0xC7 ,1, 0x41 }, { 0xC8 ,1, 0x01 }, { 0xC9 ,1, 0xA9 }, { 0xCA ,1, 0x41 }, { 0xCB ,1, 0x01 }, { 0xCC ,1, 0x7F }, { 0xCD ,1, 0x7F }, { 0xCE ,1, 0xFF }, { 0xD0 ,1, 0xD1 }, { 0xD1 ,1, 0x40 }, { 0xD2 ,1, 0x7E }, { 0xF5 ,2, 0x00, 0xA5}, { 0xF1 ,1, 0x10 }, { 0xF0 ,1, 0x00 }, { 0xF0 ,1, 0x02 }, { 0xE0 ,14, 0xF0,0x03,0x06,0x08,0x07,0x04,0x2A,0x43,0x44,0x39,0x15,0x15,0x2B,0x31 }, // 0xE0命令的14个数据 { 0xE1 ,14, 0xF0,0x03,0x06,0x08,0x07,0x23,0x29,0x33,0x43,0x39,0x15,0x15,0x2A,0x30 }, // 0xE1命令的14个数据 { 0xF0 ,1, 0x10 }, { 0xF3 ,1, 0x10 }, { 0xE0 ,1, 0x08 }, { 0xE1 ,1, 0x00 }, { 0xE2 ,1, 0x08 }, { 0xE3 ,1, 0x00 }, { 0xE4 ,1, 0xE0 }, { 0xE5 ,1, 0x06 }, { 0xE6 ,1, 0x21 }, { 0xE7 ,1, 0x10 }, { 0xE8 ,1, 0x45 }, { 0xE9 ,1, 0x82 }, { 0xEA ,1, 0xE4 }, { 0xEB ,1, 0x00 }, { 0xEC ,1, 0x80 }, { 0xED ,1, 0x14 }, { 0xEE ,1, 0xFF }, { 0xEF ,1, 0x00 }, { 0xF8 ,1, 0xFF }, { 0xF9 ,1, 0x00 }, { 0xFA ,1, 0x00 }, { 0xFB ,1, 0x30 }, { 0xFC ,1, 0x00 }, { 0xFD ,1, 0x00 }, { 0xFE ,1, 0x00 }, { 0xFF ,1, 0x00 }, { 0x60 ,1, 0x70 }, { 0x61 ,1, 0x02 }, { 0x62 ,1, 0x08 }, { 0x63 ,1, 0x43 }, { 0x64 ,1, 0x05 }, { 0x65 ,1, 0x08 }, { 0x66 ,1, 0x00 }, { 0x67 ,1, 0x00 }, { 0x68 ,1, 0x00 }, { 0x69 ,1, 0x00 }, { 0x6A ,1, 0x00 }, { 0x6B ,1, 0x00 }, { 0x70 ,1, 0x70 }, { 0x71 ,1, 0x01 }, { 0x72 ,1, 0x08 }, { 0x73 ,1, 0x43 }, { 0x74 ,1, 0x04 }, { 0x75 ,1, 0x08 }, { 0x76 ,1, 0x00 }, { 0x77 ,1, 0x00 }, { 0x78 ,1, 0x00 }, { 0x79 ,1, 0x00 }, { 0x7A ,1, 0x00 }, { 0x7B ,1, 0x00 }, { 0x80 ,1, 0x58 }, { 0x81 ,1, 0x00 }, { 0x82 ,1, 0x04 }, { 0x83 ,1, 0x03 }, { 0x84 ,1, 0x0C }, { 0x85 ,1, 0x00 }, { 0x86 ,1, 0x00 }, { 0x87 ,1, 0x00 }, { 0x88 ,1, 0x58 }, { 0x89 ,1, 0x00 }, { 0x8A ,1, 0x06 }, { 0x8B ,1, 0x03 }, { 0x8C ,1, 0x0E }, { 0x8D ,1, 0x00 }, { 0x8E ,1, 0x00 }, { 0x8F ,1, 0x00 }, { 0x90 ,1, 0x58 }, { 0x91 ,1, 0x00 }, { 0x92 ,1, 0x08 }, { 0x93 ,1, 0x03 }, { 0x94 ,1, 0x08 }, { 0x95 ,1, 0x00 }, { 0x96 ,1, 0x00 }, { 0x97 ,1, 0x00 }, { 0x98 ,1, 0x58 }, { 0x99 ,1, 0x00 }, { 0x9A ,1, 0x0A }, { 0x9B ,1, 0x03 }, { 0x9C ,1, 0x0A }, { 0x9D ,1, 0x00 }, { 0x9E ,1, 0x00 }, { 0x9F ,1, 0x00 }, { 0xA0 ,1, 0x58 }, { 0xA1 ,1, 0x00 }, { 0xA2 ,1, 0x03 }, { 0xA3 ,1, 0x03 }, { 0xA4 ,1, 0x0B }, { 0xA5 ,1, 0x00 }, { 0xA6 ,1, 0x00 }, { 0xA7 ,1, 0x00 }, { 0xA8 ,1, 0x58 }, { 0xA9 ,1, 0x00 }, { 0xAA ,1, 0x05 }, { 0xAB ,1, 0x03 }, { 0xAC ,1, 0x0D }, { 0xAD ,1, 0x00 }, { 0xAE ,1, 0x00 }, { 0xAF ,1, 0x00 }, { 0xB0 ,1, 0x58 }, { 0xB1 ,1, 0x00 }, { 0xB2 ,1, 0x07 }, { 0xB3 ,1, 0x03 }, { 0xB4 ,1, 0x07 }, { 0xB5 ,1, 0x00 }, { 0xB6 ,1, 0x00 }, { 0xB7 ,1, 0x00 }, { 0xB8 ,1, 0x58 }, { 0xB9 ,1, 0x00 }, { 0xBA ,1, 0x09 }, { 0xBB ,1, 0x03 }, { 0xBC ,1, 0x09 }, { 0xBD ,1, 0x00 }, { 0xBE ,1, 0x00 }, { 0xBF ,1, 0x00 }, { 0xC0 ,1, 0x22 }, { 0xC1 ,1, 0xFF }, { 0xC2 ,1, 0x10 }, { 0xC3 ,1, 0x74 }, { 0xC4 ,1, 0x65 }, { 0xC5 ,1, 0x56 }, { 0xC6 ,1, 0x47 }, { 0xC7 ,1, 0x01 }, { 0xC8 ,1, 0xFF }, { 0xC9 ,1, 0xFF }, { 0xD0 ,1, 0x22 }, { 0xD1 ,1, 0xFF }, { 0xD2 ,1, 0x10 }, { 0xD3 ,1, 0x74 }, { 0xD4 ,1, 0x65 }, { 0xD5 ,1, 0x56 }, { 0xD6 ,1, 0x47 }, { 0xD7 ,1, 0x01 }, { 0xD8 ,1, 0xFF }, { 0xD9 ,1, 0xFF }, { 0xF3 ,1, 0x01 }, { 0xF0 ,1, 0x00 }, { 0x21 ,0, 0x00 }, // 无数据命令 { 0x35 ,0, 0x00 }, // 无数据命令 { 0x3A ,1, 0x55 }, // 注意:原始信息中为0x3a 参照上面给的两份数据(原始数据和已写数据),帮我把下面的原始数据转成已写数据: WriteComm(0xF0); WriteData(0x28); WriteComm(0xF2); WriteData(0x28); WriteComm(0x73); WriteData(0xF0); WriteComm(0x7C); WriteData(0xD1); WriteComm(0x83); WriteData(0xE0); WriteComm(0x84); WriteData(0x61); WriteComm(0xF2); WriteData(0x82); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x01); WriteComm(0xF1); WriteData(0x01); WriteComm(0xB0); WriteData(0x5B); WriteComm(0xB1); WriteData(0x48); WriteComm(0xB2); WriteData(0x29); WriteComm(0xB3); WriteData(0x01); WriteComm(0xB4); WriteData(0x67); WriteComm(0xB5); WriteData(0x44); WriteComm(0xB6); WriteData(0x99); WriteComm(0xB7); WriteData(0x40); WriteComm(0xB8); WriteData(0x8C); WriteComm(0xB9); WriteData(0x15); WriteComm(0xBA); WriteData(0x00); WriteComm(0xBB); WriteData(0x08); WriteComm(0xBC); WriteData(0x08); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x07); WriteComm(0xC0); WriteData(0x80); WriteComm(0xC1); WriteData(0x09); WriteComm(0xC2); WriteData(0x35); WriteComm(0xC3); WriteData(0x80); WriteComm(0xC4); WriteData(0x09); WriteComm(0xC5); WriteData(0x35); WriteComm(0xC6); WriteData(0xA9); WriteComm(0xC7); WriteData(0x41); WriteComm(0xC8); WriteData(0x01); WriteComm(0xC9); WriteData(0xA9); WriteComm(0xCA); WriteData(0x41); WriteComm(0xCB); WriteData(0x01); WriteComm(0xCC); WriteData(0x7F); WriteComm(0xCD); WriteData(0x7F); WriteComm(0xCE); WriteData(0xFF); WriteComm(0xD0); WriteData(0xD1); WriteComm(0xD1); WriteData(0x40); WriteComm(0xD2); WriteData(0x7E); WriteComm(0xF5); WriteData(0x00); WriteData(0xA5); WriteComm(0xF1); WriteData(0x10); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x02); WriteComm(0xE0); WriteData(0xF0); WriteData(0x05); WriteData(0x0A); WriteData(0x09); WriteData(0x08); WriteData(0x16); WriteData(0x2F); WriteData(0x33); WriteData(0x48); WriteData(0x39); WriteData(0x16); WriteData(0x15); WriteData(0x2D); WriteData(0x33); WriteComm(0xE1); WriteData(0xF0); WriteData(0x05); WriteData(0x0A); WriteData(0x09); WriteData(0x08); WriteData(0x05); WriteData(0x2F); WriteData(0x33); WriteData(0x47); WriteData(0x29); WriteData(0x15); WriteData(0x14); WriteData(0x2D); WriteData(0x33); WriteComm(0xF0); WriteData(0x10); WriteComm(0xF3); WriteData(0x10); WriteComm(0xE0); WriteData(0x0A); WriteComm(0xE1); WriteData(0x00); WriteComm(0xE2); WriteData(0x08); WriteComm(0xE3); WriteData(0x00); WriteComm(0xE4); WriteData(0xE0); WriteComm(0xE5); WriteData(0x06); WriteComm(0xE6); WriteData(0x21); WriteComm(0xE7); WriteData(0x10); WriteComm(0xE8); WriteData(0x80); WriteComm(0xE9); WriteData(0x82); WriteComm(0xEA); WriteData(0xE4); WriteComm(0xEB); WriteData(0x00); WriteComm(0xEC); WriteData(0x00); WriteComm(0xED); WriteData(0x04); WriteComm(0xEE); WriteData(0x02); WriteComm(0xEF); WriteData(0x00); WriteComm(0xF8); WriteData(0xFF); WriteComm(0xF9); WriteData(0x00); WriteComm(0xFA); WriteData(0x00); WriteComm(0xFB); WriteData(0x30); WriteComm(0xFC); WriteData(0x00); WriteComm(0xFD); WriteData(0x00); WriteComm(0xFE); WriteData(0x00); WriteComm(0xFF); WriteData(0x00); WriteComm(0x60); WriteData(0x30); WriteComm(0x61); WriteData(0x01); WriteComm(0x62); WriteData(0x08); WriteComm(0x63); WriteData(0x33); WriteComm(0x64); WriteData(0x0B); WriteComm(0x65); WriteData(0x08); WriteComm(0x66); WriteData(0x00); WriteComm(0x67); WriteData(0x00); WriteComm(0x68); WriteData(0x00); WriteComm(0x69); WriteData(0x00); WriteComm(0x6A); WriteData(0x00); WriteComm(0x6B); WriteData(0x00); WriteComm(0x70); WriteData(0x30); WriteComm(0x71); WriteData(0x02); WriteComm(0x72); WriteData(0x08); WriteComm(0x73); WriteData(0x33); WriteComm(0x74); WriteData(0x0C); WriteComm(0x75); WriteData(0x08); WriteComm(0x76); WriteData(0x00); WriteComm(0x77); WriteData(0x00); WriteComm(0x78); WriteData(0x00); WriteComm(0x79); WriteData(0x00); WriteComm(0x7A); WriteData(0x00); WriteComm(0x7B); WriteData(0x00); WriteComm(0x80); WriteData(0x38); WriteComm(0x81); WriteData(0x00); WriteComm(0x82); WriteData(0x05); WriteComm(0x83); WriteData(0x03); WriteComm(0x84); WriteData(0x08); WriteComm(0x85); WriteData(0x00); WriteComm(0x86); WriteData(0x00); WriteComm(0x87); WriteData(0x00); WriteComm(0x88); WriteData(0x38); WriteComm(0x89); WriteData(0x00); WriteComm(0x8A); WriteData(0x07); WriteComm(0x8B); WriteData(0x03); WriteComm(0x8C); WriteData(0x0A); WriteComm(0x8D); WriteData(0x00); WriteComm(0x8E); WriteData(0x00); WriteComm(0x8F); WriteData(0x00); WriteComm(0x90); WriteData(0x38); WriteComm(0x91); WriteData(0x00); WriteComm(0x92); WriteData(0x09); WriteComm(0x93); WriteData(0x03); WriteComm(0x94); WriteData(0x0C); WriteComm(0x95); WriteData(0x00); WriteComm(0x96); WriteData(0x00); WriteComm(0x97); WriteData(0x00); WriteComm(0x98); WriteData(0x38); WriteComm(0x99); WriteData(0x00); WriteComm(0x9A); WriteData(0x0B); WriteComm(0x9B); WriteData(0x03); WriteComm(0x9C); WriteData(0x0E); WriteComm(0x9D); WriteData(0x00); WriteComm(0x9E); WriteData(0x00); WriteComm(0x9F); WriteData(0x00); WriteComm(0xA0); WriteData(0x38); WriteComm(0xA1); WriteData(0x00); WriteComm(0xA2); WriteData(0x06); WriteComm(0xA3); WriteData(0x03); WriteComm(0xA4); WriteData(0x09); WriteComm(0xA5); WriteData(0x00); WriteComm(0xA6); WriteData(0x00); WriteComm(0xA7); WriteData(0x00); WriteComm(0xA8); WriteData(0x38); WriteComm(0xA9); WriteData(0x00); WriteComm(0xAA); WriteData(0x08); WriteComm(0xAB); WriteData(0x03); WriteComm(0xAC); WriteData(0x0B); WriteComm(0xAD); WriteData(0x00); WriteComm(0xAE); WriteData(0x00); WriteComm(0xAF); WriteData(0x00); WriteComm(0xB0); WriteData(0x38); WriteComm(0xB1); WriteData(0x00); WriteComm(0xB2); WriteData(0x0A); WriteComm(0xB3); WriteData(0x03); WriteComm(0xB4); WriteData(0x0D); WriteComm(0xB5); WriteData(0x00); WriteComm(0xB6); WriteData(0x00); WriteComm(0xB7); WriteData(0x00); WriteComm(0xB8); WriteData(0x38); WriteComm(0xB9); WriteData(0x00); WriteComm(0xBA); WriteData(0x0C); WriteComm(0xBB); WriteData(0x03); WriteComm(0xBC); WriteData(0x0F); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x00); WriteComm(0xC0); WriteData(0x88); WriteComm(0xC1); WriteData(0x10); WriteComm(0xC2); WriteData(0x01); WriteComm(0xC3); WriteData(0x67); WriteComm(0xC4); WriteData(0x76); WriteComm(0xC5); WriteData(0x45); WriteComm(0xC6); WriteData(0x54); WriteComm(0xC7); WriteData(0xAA); WriteComm(0xC8); WriteData(0x99); WriteComm(0xC9); WriteData(0xBB); WriteComm(0xD0); WriteData(0x88); WriteComm(0xD1); WriteData(0x10); WriteComm(0xD2); WriteData(0x01); WriteComm(0xD3); WriteData(0x67); WriteComm(0xD4); WriteData(0x76); WriteComm(0xD5); WriteData(0x45); WriteComm(0xD6); WriteData(0x54); WriteComm(0xD7); WriteData(0xAA); WriteComm(0xD8); WriteData(0x99); WriteComm(0xD9); WriteData(0xBB); WriteComm(0xF3); WriteData(0x01); WriteComm(0xF0); WriteData(0x00); WriteComm(0x21); WriteComm(0x35); WriteComm(0x3A); WriteData(0x55); WriteComm(0x11); delay_ms 120 WriteComm(0x29); delay_ms 20

原始数据: WriteComm(0xF0); WriteData(0x28); WriteComm(0xF2); WriteData(0x28); WriteComm(0x73); WriteData(0xC0); WriteComm(0x7C); WriteData(0xD1); WriteComm(0x83); WriteData(0xE0); WriteComm(0x84); WriteData(0x61); WriteComm(0xF2); WriteData(0x82); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x01); WriteComm(0xF1); WriteData(0x01); WriteComm(0xB0); WriteData(0x52); WriteComm(0xB1); WriteData(0x21); WriteComm(0xB2); WriteData(0x38); WriteComm(0xB3); WriteData(0x01); WriteComm(0xB4); WriteData(0x46); WriteComm(0xB5); WriteData(0x34); WriteComm(0xB6); WriteData(0xAA); WriteComm(0xB7); WriteData(0x30); WriteComm(0xB8); WriteData(0x8C); WriteComm(0xB9); WriteData(0x15); WriteComm(0xBA); WriteData(0x00); WriteComm(0xBB); WriteData(0x08); WriteComm(0xBC); WriteData(0x08); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x07); WriteComm(0xC0); WriteData(0x80); WriteComm(0xC1); WriteData(0x0B); WriteComm(0xC2); WriteData(0x35); WriteComm(0xC3); WriteData(0x80); WriteComm(0xC4); WriteData(0x0B); WriteComm(0xC5); WriteData(0x35); WriteComm(0xC6); WriteData(0xA9); WriteComm(0xC7); WriteData(0x41); WriteComm(0xC8); WriteData(0x01); WriteComm(0xC9); WriteData(0xA9); WriteComm(0xCA); WriteData(0x41); WriteComm(0xCB); WriteData(0x01); WriteComm(0xCC); WriteData(0x7F); WriteComm(0xCD); WriteData(0x7F); WriteComm(0xCE); WriteData(0xFF); WriteComm(0xD0); WriteData(0xD1); WriteComm(0xD1); WriteData(0x40); WriteComm(0xD2); WriteData(0x7E); WriteComm(0xF5); WriteData(0x00); WriteData(0xA5); WriteComm(0xF1); WriteData(0x10); WriteComm(0xF0); WriteData(0x00); WriteComm(0xF0); WriteData(0x02); WriteComm(0xE0); WriteData(0xF0); WriteData(0x03); WriteData(0x06); WriteData(0x08); WriteData(0x07); WriteData(0x04); WriteData(0x2A); WriteData(0x43); WriteData(0x44); WriteData(0x39); WriteData(0x15); WriteData(0x15); WriteData(0x2B); WriteData(0x31); WriteComm(0xE1); WriteData(0xF0); WriteData(0x03); WriteData(0x06); WriteData(0x08); WriteData(0x07); WriteData(0x23); WriteData(0x29); WriteData(0x33); WriteData(0x43); WriteData(0x39); WriteData(0x15); WriteData(0x15); WriteData(0x2A); WriteData(0x30); WriteComm(0xF0); WriteData(0x10); WriteComm(0xF3); WriteData(0x10); WriteComm(0xE0); WriteData(0x08); WriteComm(0xE1); WriteData(0x00); WriteComm(0xE2); WriteData(0x08); WriteComm(0xE3); WriteData(0x00); WriteComm(0xE4); WriteData(0xE0); WriteComm(0xE5); WriteData(0x06); WriteComm(0xE6); WriteData(0x21); WriteComm(0xE7); WriteData(0x10); WriteComm(0xE8); WriteData(0x45); WriteComm(0xE9); WriteData(0x82); WriteComm(0xEA); WriteData(0xE4); WriteComm(0xEB); WriteData(0x00); WriteComm(0xEC); WriteData(0x80); WriteComm(0xED); WriteData(0x14); WriteComm(0xEE); WriteData(0xFF); WriteComm(0xEF); WriteData(0x00); WriteComm(0xF8); WriteData(0xFF); WriteComm(0xF9); WriteData(0x00); WriteComm(0xFA); WriteData(0x00); WriteComm(0xFB); WriteData(0x30); WriteComm(0xFC); WriteData(0x00); WriteComm(0xFD); WriteData(0x00); WriteComm(0xFE); WriteData(0x00); WriteComm(0xFF); WriteData(0x00); WriteComm(0x60); WriteData(0x70); WriteComm(0x61); WriteData(0x02); WriteComm(0x62); WriteData(0x08); WriteComm(0x63); WriteData(0x43); WriteComm(0x64); WriteData(0x05); WriteComm(0x65); WriteData(0x08); WriteComm(0x66); WriteData(0x00); WriteComm(0x67); WriteData(0x00); WriteComm(0x68); WriteData(0x00); WriteComm(0x69); WriteData(0x00); WriteComm(0x6A); WriteData(0x00); WriteComm(0x6B); WriteData(0x00); WriteComm(0x70); WriteData(0x70); WriteComm(0x71); WriteData(0x01); WriteComm(0x72); WriteData(0x08); WriteComm(0x73); WriteData(0x43); WriteComm(0x74); WriteData(0x04); WriteComm(0x75); WriteData(0x08); WriteComm(0x76); WriteData(0x00); WriteComm(0x77); WriteData(0x00); WriteComm(0x78); WriteData(0x00); WriteComm(0x79); WriteData(0x00); WriteComm(0x7A); WriteData(0x00); WriteComm(0x7B); WriteData(0x00); WriteComm(0x80); WriteData(0x58); WriteComm(0x81); WriteData(0x00); WriteComm(0x82); WriteData(0x04); WriteComm(0x83); WriteData(0x03); WriteComm(0x84); WriteData(0x0C); WriteComm(0x85); WriteData(0x00); WriteComm(0x86); WriteData(0x00); WriteComm(0x87); WriteData(0x00); WriteComm(0x88); WriteData(0x58); WriteComm(0x89); WriteData(0x00); WriteComm(0x8A); WriteData(0x06); WriteComm(0x8B); WriteData(0x03); WriteComm(0x8C); WriteData(0x0E); WriteComm(0x8D); WriteData(0x00); WriteComm(0x8E); WriteData(0x00); WriteComm(0x8F); WriteData(0x00); WriteComm(0x90); WriteData(0x58); WriteComm(0x91); WriteData(0x00); WriteComm(0x92); WriteData(0x08); WriteComm(0x93); WriteData(0x03); WriteComm(0x94); WriteData(0x08); WriteComm(0x95); WriteData(0x00); WriteComm(0x96); WriteData(0x00); WriteComm(0x97); WriteData(0x00); WriteComm(0x98); WriteData(0x58); WriteComm(0x99); WriteData(0x00); WriteComm(0x9A); WriteData(0x0A); WriteComm(0x9B); WriteData(0x03); WriteComm(0x9C); WriteData(0x0A); WriteComm(0x9D); WriteData(0x00); WriteComm(0x9E); WriteData(0x00); WriteComm(0x9F); WriteData(0x00); WriteComm(0xA0); WriteData(0x58); WriteComm(0xA1); WriteData(0x00); WriteComm(0xA2); WriteData(0x03); WriteComm(0xA3); WriteData(0x03); WriteComm(0xA4); WriteData(0x0B); WriteComm(0xA5); WriteData(0x00); WriteComm(0xA6); WriteData(0x00); WriteComm(0xA7); WriteData(0x00); WriteComm(0xA8); WriteData(0x58); WriteComm(0xA9); WriteData(0x00); WriteComm(0xAA); WriteData(0x05); WriteComm(0xAB); WriteData(0x03); WriteComm(0xAC); WriteData(0x0D); WriteComm(0xAD); WriteData(0x00); WriteComm(0xAE); WriteData(0x00); WriteComm(0xAF); WriteData(0x00); WriteComm(0xB0); WriteData(0x58); WriteComm(0xB1); WriteData(0x00); WriteComm(0xB2); WriteData(0x07); WriteComm(0xB3); WriteData(0x03); WriteComm(0xB4); WriteData(0x07); WriteComm(0xB5); WriteData(0x00); WriteComm(0xB6); WriteData(0x00); WriteComm(0xB7); WriteData(0x00); WriteComm(0xB8); WriteData(0x58); WriteComm(0xB9); WriteData(0x00); WriteComm(0xBA); WriteData(0x09); WriteComm(0xBB); WriteData(0x03); WriteComm(0xBC); WriteData(0x09); WriteComm(0xBD); WriteData(0x00); WriteComm(0xBE); WriteData(0x00); WriteComm(0xBF); WriteData(0x00); WriteComm(0xC0); WriteData(0x22); WriteComm(0xC1); WriteData(0xFF); WriteComm(0xC2); WriteData(0x10); WriteComm(0xC3); WriteData(0x74); WriteComm(0xC4); WriteData(0x65); WriteComm(0xC5); WriteData(0x56); WriteComm(0xC6); WriteData(0x47); WriteComm(0xC7); WriteData(0x01); WriteComm(0xC8); WriteData(0xFF); WriteComm(0xC9); WriteData(0xFF); WriteComm(0xD0); WriteData(0x22); WriteComm(0xD1); WriteData(0xFF); WriteComm(0xD2); WriteData(0x10); WriteComm(0xD3); WriteData(0x74); WriteComm(0xD4); WriteData(0x65); WriteComm(0xD5); WriteData(0x56); WriteComm(0xD6); WriteData(0x47); WriteComm(0xD7); WriteData(0x01); WriteComm(0xD8); WriteData(0xFF); WriteComm(0xD9); WriteData(0xFF); WriteComm(0xF3); WriteData(0x01); WriteComm(0xF0); WriteData(0x00); WriteComm(0x21); WriteComm(0x35); WriteComm(0x3a); WriteData(0x55); 写入的数据: { 0xF0 ,1, 0x28 }, { 0xF2 ,1, 0x28 }, { 0x73 ,1, 0xC0 }, { 0x7C ,1, 0xD1 }, { 0x83 ,1, 0xE0 }, { 0x84 ,1, 0x61 }, { 0xF2 ,1, 0x82 }, { 0xF0 ,1, 0x00 }, { 0xF0 ,1, 0x01 }, { 0xF1 ,1, 0x01 }, { 0xB0 ,1, 0x52 }, { 0xB1 ,1, 0x21 }, { 0xB2 ,1, 0x38 }, { 0xB3 ,1, 0x01 }, { 0xB4 ,1, 0x46 }, { 0xB5 ,1, 0x34 }, { 0xB6 ,1, 0xAA }, { 0xB7 ,1, 0x30 }, { 0xB8 ,1, 0x8C }, { 0xB9 ,1, 0x15 }, { 0xBA ,1, 0x00 }, { 0xBB ,1, 0x08 }, { 0xBC ,1, 0x08 }, { 0xBD ,1, 0x00 }, { 0xBE ,1, 0x00 }, { 0xBF ,1, 0x07 }, { 0xC0 ,1, 0x80 }, { 0xC1 ,1, 0x0B }, { 0xC2 ,1, 0x35 }, { 0xC3 ,1, 0x80 }, { 0xC4 ,1, 0x0B }, { 0xC5 ,1, 0x35 }, { 0xC6 ,1, 0xA9 }, { 0xC7 ,1, 0x41 }, { 0xC8 ,1, 0x01 }, { 0xC9 ,1, 0xA9 }, { 0xCA ,1, 0x41 }, { 0xCB ,1, 0x01 }, { 0xCC ,1, 0x7F }, { 0xCD ,1, 0x7F }, { 0xCE ,1, 0xFF }, { 0xD0 ,1, 0xD1 }, { 0xD1 ,1, 0x40 }, { 0xD2 ,1, 0x7E }, { 0xF5 ,2, 0x00, 0xA5}, { 0xF1 ,1, 0x10 }, { 0xF0 ,1, 0x00 }, { 0xF0 ,1, 0x02 }, { 0xE0 ,14, 0xF0,0x03,0x06,0x08,0x07,0x04,0x2A,0x43,0x44,0x39,0x15,0x15,0x2B,0x31 }, // 0xE0命令的14个数据 { 0xE1 ,14, 0xF0,0x03,0x06,0x08,0x07,0x23,0x29,0x33,0x43,0x39,0x15,0x15,0x2A,0x30 }, // 0xE1命令的14个数据 { 0xF0 ,1, 0x10 }, { 0xF3 ,1, 0x10 }, { 0xE0 ,1, 0x08 }, { 0xE1 ,1, 0x00 }, { 0xE2 ,1, 0x08 }, { 0xE3 ,1, 0x00 }, { 0xE4 ,1, 0xE0 }, { 0xE5 ,1, 0x06 }, { 0xE6 ,1, 0x21 }, { 0xE7 ,1, 0x10 }, { 0xE8 ,1, 0x45 }, { 0xE9 ,1, 0x82 }, { 0xEA ,1, 0xE4 }, { 0xEB ,1, 0x00 }, { 0xEC ,1, 0x80 }, { 0xED ,1, 0x14 }, { 0xEE ,1, 0xFF }, { 0xEF ,1, 0x00 }, { 0xF8 ,1, 0xFF }, { 0xF9 ,1, 0x00 }, { 0xFA ,1, 0x00 }, { 0xFB ,1, 0x30 }, { 0xFC ,1, 0x00 }, { 0xFD ,1, 0x00 }, { 0xFE ,1, 0x00 }, { 0xFF ,1, 0x00 }, { 0x60 ,1, 0x70 }, { 0x61 ,1, 0x02 }, { 0x62 ,1, 0x08 }, { 0x63 ,1, 0x43 }, { 0x64 ,1, 0x05 }, { 0x65 ,1, 0x08 }, { 0x66 ,1, 0x00 }, { 0x67 ,1, 0x00 }, { 0x68 ,1, 0x00 }, { 0x69 ,1, 0x00 }, { 0x6A ,1, 0x00 }, { 0x6B ,1, 0x00 }, { 0x70 ,1, 0x70 }, { 0x71 ,1, 0x01 }, { 0x72 ,1, 0x08 }, { 0x73 ,1, 0x43 }, { 0x74 ,1, 0x04 }, { 0x75 ,1, 0x08 }, { 0x76 ,1, 0x00 }, { 0x77 ,1, 0x00 }, { 0x78 ,1, 0x00 }, { 0x79 ,1, 0x00 }, { 0x7A ,1, 0x00 }, { 0x7B ,1, 0x00 }, { 0x80 ,1, 0x58 }, { 0x81 ,1, 0x00 }, { 0x82 ,1, 0x04 }, { 0x83 ,1, 0x03 }, { 0x84 ,1, 0x0C }, { 0x85 ,1, 0x00 }, { 0x86 ,1, 0x00 }, { 0x87 ,1, 0x00 }, { 0x88 ,1, 0x58 }, { 0x89 ,1, 0x00 }, { 0x8A ,1, 0x06 }, { 0x8B ,1, 0x03 }, { 0x8C ,1, 0x0E }, { 0x8D ,1, 0x00 }, { 0x8E ,1, 0x00 }, { 0x8F ,1, 0x00 }, { 0x90 ,1, 0x58 }, { 0x91 ,1, 0x00 }, { 0x92 ,1, 0x08 }, { 0x93 ,1, 0x03 }, { 0x94 ,1, 0x08 }, { 0x95 ,1, 0x00 }, { 0x96 ,1, 0x00 }, { 0x97 ,1, 0x00 }, { 0x98 ,1, 0x58 }, { 0x99 ,1, 0x00 }, { 0x9A ,1, 0x0A }, { 0x9B ,1, 0x03 }, { 0x9C ,1, 0x0A }, { 0x9D ,1, 0x00 }, { 0x9E ,1, 0x00 }, { 0x9F ,1, 0x00 }, { 0xA0 ,1, 0x58 }, { 0xA1 ,1, 0x00 }, { 0xA2 ,1, 0x03 }, { 0xA3 ,1, 0x03 }, { 0xA4 ,1, 0x0B }, { 0xA5 ,1, 0x00 }, { 0xA6 ,1, 0x00 }, { 0xA7 ,1, 0x00 }, { 0xA8 ,1, 0x58 }, { 0xA9 ,1, 0x00 }, { 0xAA ,1, 0x05 }, { 0xAB ,1, 0x03 }, { 0xAC ,1, 0x0D }, { 0xAD ,1, 0x00 }, { 0xAE ,1, 0x00 }, { 0xAF ,1, 0x00 }, { 0xB0 ,1, 0x58 }, { 0xB1 ,1, 0x00 }, { 0xB2 ,1, 0x07 }, { 0xB3 ,1, 0x03 }, { 0xB4 ,1, 0x07 }, { 0xB5 ,1, 0x00 }, { 0xB6 ,1, 0x00 }, { 0xB7 ,1, 0x00 }, { 0xB8 ,1, 0x58 }, { 0xB9 ,1, 0x00 }, { 0xBA ,1, 0x09 }, { 0xBB ,1, 0x03 }, { 0xBC ,1, 0x09 }, { 0xBD ,1, 0x00 }, { 0xBE ,1, 0x00 }, { 0xBF ,1, 0x00 }, { 0xC0 ,1, 0x22 }, { 0xC1 ,1, 0xFF }, { 0xC2 ,1, 0x10 }, { 0xC3 ,1, 0x74 }, { 0xC4 ,1, 0x65 }, { 0xC5 ,1, 0x56 }, { 0xC6 ,1, 0x47 }, { 0xC7 ,1, 0x01 }, { 0xC8 ,1, 0xFF }, { 0xC9 ,1, 0xFF }, { 0xD0 ,1, 0x22 }, { 0xD1 ,1, 0xFF }, { 0xD2 ,1, 0x10 }, { 0xD3 ,1, 0x74 }, { 0xD4 ,1, 0x65 }, { 0xD5 ,1, 0x56 }, { 0xD6 ,1, 0x47 }, { 0xD7 ,1, 0x01 }, { 0xD8 ,1, 0xFF }, { 0xD9 ,1, 0xFF }, { 0xF3 ,1, 0x01 }, { 0xF0 ,1, 0x00 }, { 0x21 ,0, 0x00 }, // 无数据命令 { 0x35 ,0, 0x00 }, // 无数据命令 { 0x3A ,1, 0x55 }, // 注意:原始信息中为0x3a 帮我检测一下这个数据与上面的原始数据是否一样

最新推荐

recommend-type

悠络客ulucu P2-X UDX-4120U1WA-IR刷海康萤石云

悠络客ulucu P2-X云高清网络MINI球机型号:UDX-4120U1WA-IR刷海康萤石云固件包 升级后在萤石云里显示的型号:DS-2CDVT-SFZCMP-S 设备版本:V5.6.11 build 190426 升级刷机前的准备,不满足以下条件请勿下载 1.确定你的这个设备是海康威视代工的,查询方法可以用海康的IP搜索工具查询,能搜索到IP和版本说明就是海康代工的。 2.一般机身背面有IP地址和默认登录密码,先登录上去看看能不能登录,不能登录,或没有密码不能刷机,如果没有摄像头的登录密码,可以重置恢复一下出厂设置,或使用海康密码找回工具找回密码,有了登录密码后在下载固件。 3.满足以下条件在下载刷机固件,否则请不要下载,刷机不能保证百分百成功。 4.下载固件,将固件包下载后,解压得到一个升级包的文件夹,文件夹里面的压缩文件不要在解压。 5.用浏览器进入摄像头,点击进行,配置,系统,系统维护,最下面升级,选择升级目录升级,将你下载的升级目录路径选择好点击在线升级就可以了,升级完成后萤石云的序列号在配置,系统,系统设置,设备序列号里后9位,验证码在,配置,网络,高级配置,平台接入
recommend-type

【scratch2.0少儿编程-游戏原型-动画-项目源码】3D效果演示案例.zip

资源说明: 1:本资料仅用作交流学习参考,请切勿用于商业用途。 2:一套精品实用scratch2.0少儿编程游戏、动画源码资源,无论是入门练手还是项目复用都超实用,省去重复开发时间,让开发少走弯路! 更多精品资源请访问 https://blog.csdn.net/ashyyyy/article/details/146464041
recommend-type

Docker环境下的弹性APM服务器搭建指南

根据提供的文件信息,我们可以梳理出以下几个关键知识点: 1. Docker技术概念: Docker是一个开源的应用容器引擎,允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何支持Docker的平台上。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iOS的app)。 2. Docker的使用优势: 使用Docker部署应用可以带来多方面的优势,如提高开发效率、简化部署流程、易于迁移和扩展、强化安全性和隔离性等。容器化应用可以在不同的环境中保持一致的运行状态,减少了"在我的机器上可以运行"这类问题。 3. Compose工具: Docker Compose是一个用来定义和运行多容器Docker应用程序的工具。通过Compose,用户可以使用YAML文件来配置应用程序服务,并通过一个命令,完成容器的创建和启动。Docker Compose使得复杂配置的多容器应用的部署和管理工作变得简单。 4. APM(应用性能管理)服务器: APM服务器是用来监控和管理软件应用性能的工具。它通常包括实时性能监控、问题诊断、性能瓶颈定位、用户体验报告等功能。通过提供深入的应用性能洞察,APM能够帮助开发者和运维人员优化和提升应用性能。 5. 弹性APM服务器: 在标题中提到的“弹性”可能是指APM服务器能够根据应用的性能需求自动调整资源分配。这种弹性服务器可以动态地根据负载情况增加或减少资源,以保证应用性能的稳定,并在必要时节省资源。 6. Docker和Compose在APM服务器部署中的作用: Docker和Compose共同作用于APM服务器的部署,意味着开发者可能通过定义一个Docker Compose文件来指定APM服务器的所有依赖和服务。利用容器化的方式,可以保证APM服务器在开发、测试和生产环境中的部署和运行一致性。 7. “docker-apm-master”文件结构: 文件名称列表中提及的“docker-apm-master”很可能是包含Dockerfile、docker-compose.yml等文件的目录名称,这个目录用于管理和构建弹性APM服务器的Docker镜像和服务。在该目录下,可能包含了用于构建APM服务器镜像的脚本、配置文件,以及用于部署和管理APM服务器的Docker Compose配置。 8. 开发和运维实践: 一个“由Docker和Compose支持的弹性apm服务器”项目体现了现代软件开发和运维的实践,即使用容器化和自动化工具来提升开发效率、简化运维工作以及优化应用部署。在微服务架构和云计算日益普及的今天,这类实践变得越来越普遍。 综合以上知识点,我们可以理解“docker-apm:由Docker和Compose支持的弹性apm服务器”是一个运用现代开发运维技术实践,提供应用性能管理解决方案的项目。它结合了Docker容器化技术和Docker Compose自动化管理工具,以实现一个可扩展、弹性的APM服务器,帮助开发者和运维团队高效地监控和优化应用性能。
recommend-type

游戏开发与部署全流程指南

# 游戏开发与部署全流程指南 ## 1. 开发整体游戏结构 ### 1.1 场景添加与游戏启动 要确保场景能被加载,需将其添加到构建设置中。若不添加,Unity 就无法知晓可用的场景。在之前的测试中,若只是重新加载当前场景,无需进行此操作;但现在若要切换关卡,就必须添加。添加完成后,可从启动场景点击“播放”来启动游戏,此时游戏管理器对象会在两个场景中共享。 不过需注意,由于管理器是在启动场景中加载的,所以必须始终从该场景启动游戏。若觉得每次手动打开启动场景麻烦,可使用此编辑器脚本,它能在点击“播放”时自动切换到指定场景:[https://github.com/jhocking/from-u
recommend-type

初级运维面试题

<think> 首先,用户的问题是:“我想查找初级运维面试题”,这是在查询初级运维岗位的面试题。系统指令要求我参考提供的引用内容,这些引用来自之前的消息。 回顾引用内容: - 引用[1]:是关于运维面试题的文章,提到“2024年9月最新运维高频面试题汇总(1)”,但它是个标题,没有具体题目内容。它宣传了一个群组。 - 引用[2]:是“云计算运维工程师面试题(二)”,列出了11个具体问题,涉及云计算、弹性伸缩、高可用性、安全等。这些不是专门针对初级的,但可能涵盖。 - 引用[3]:是“初级运维工程师面试题”,描述了一个场景:查杀病毒的过程,提到了一个可疑进程。这不是直接的面试题列表,而是
recommend-type

构建Ikiwiki的Docker容器:简易部署与使用

### 知识点概述 #### 标题:“docker-ikiwiki:Ikiwiki的Docker容器” - Docker:一种开源的容器化平台,用于自动化部署、扩展和管理应用程序。 - Ikiwiki:一个使用git作为后端的wiki引擎,其特色在于使用Markdown或Textile等标记语言编辑页面。 - 容器化部署:利用Docker技术进行软件的打包、分发和运行,以容器形式提供一致的运行环境。 #### 描述:“Ikiwiki Docker容器” - Docker映像与使用:介绍了如何通过命令行工具拉取并运行一个Ikiwiki的Docker镜像。 - 拉取Docker镜像:使用命令`docker pull ankitrgadiya/ikiwiki`从Docker Hub中获取预配置好的Ikiwiki容器镜像。 - 使用方式:提供了两种使用该Docker镜像的示例,一种是与域名绑定进行SSL支持的配置,另一种是作为独立运行且不支持SSL的配置。 - 独立映像的局限性:明确指出独立映像不支持SSL,因此推荐与Nginx-Proxy结合使用以获得更好的网络服务。 #### 标签:“docker ikiwiki Shell” - 标签汇总:这些标签提示了该文档内容涉及的技术范畴,即Docker容器技术、Ikiwiki应用以及Shell命令行操作。 - Docker标签:强调了Docker在自动化部署Ikiwiki中的应用。 - Ikiwiki标签:指出了本文内容与Ikiwiki的使用和配置相关。 - Shell标签:表明操作过程涉及到Linux Shell命令的执行。 #### 压缩包子文件的文件名称列表:“docker-ikiwiki-master” - 压缩包内容:该列表暗示了压缩包内包含的文件是以"docker-ikiwiki-master"为名称的主目录或项目文件。 - 文件结构:可能包含了Dockerfile、配置脚本、说明文档等文件,用于构建和运行Ikiwiki Docker容器。 ### 详细知识点 #### Docker容器技术 - Docker基础:Docker是一个开源的应用容器引擎,允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。 - 镜像与容器:在Docker中,镜像(Image)是一个可执行包,包含了运行应用程序所需的所有内容,例如代码、运行时、库、环境变量和配置文件。容器(Container)是从镜像创建的应用运行实例,可以进行启动、停止、删除等操作。每个容器都是相互隔离的,保证应用安全运行。 #### Ikiwiki的配置与部署 - Ikiwiki简介:Ikiwiki是一个用git作为后端的wiki引擎,它允许通过文本文件来编辑网页,支持Markdown、Textile等标记语言,使得内容的编写更加直观和方便。 - 部署要求:部署Ikiwiki通常需要一个web服务器和一些配置来处理HTTP请求。而通过Docker,用户可以快速部署一个预配置好的Ikiwiki环境。 - 配置方式:Docker运行命令中涉及到了多个参数的使用,如`--name`用于给容器命名,`-v`用于指定挂载卷,`-e`用于设置环境变量,`-p`用于端口映射,`-d`用于让容器在后台运行。 #### Docker命令行操作 - docker pull:从Docker Hub或用户指定的仓库拉取指定的镜像。 - docker run:创建一个新的容器并运行一个命令。这里提供了两种运行Ikiwiki的方式,一种是用于生产环境的,与域名绑定并支持SSL;另一种是用于开发或测试环境的,直接在80端口运行。 #### 网络代理和SSL支持 - SSL支持:SSL(Secure Sockets Layer)是一种安全协议,用于保障Web服务器和浏览器之间的通信安全。当容器配置为不支持SSL时,通常意味着不直接处理HTTPS请求。 - Nginx-Proxy:一个Docker镜像,用于运行一个Nginx服务器,充当SSL终止层,将SSL终止在Nginx代理中,然后将非加密的HTTP请求转发到后端的容器。这样可以利用Nginx强大的网络功能来处理HTTPS、HTTP/2等,增强系统的安全性和效率。 ### 总结 在介绍如何部署Ikiwiki wiki引擎到Docker容器的过程中,涉及到了Docker的基本概念、容器的创建和配置、Ikiwiki的运行机制以及Shell命令行的实用操作。文档也提到了在使用不支持SSL的独立容器时,推荐配合Nginx-Proxy来增强安全性和扩展性。这些知识点对于管理和维护Docker容器化的应用具有很高的实用价值。
recommend-type

Unity开发实用指南:快捷键、外部工具与模型创建

### Unity开发实用指南:快捷键、外部工具与模型创建 #### 1. Unity场景导航与键盘快捷键 在使用Unity进行开发时,一个三键鼠标会带来更好的操作体验,虽然Unity也支持单键或双键鼠标,但三键鼠标能让操作更加便捷,在Mac系统上同样适用。 除了使用鼠标进行导航操作外,键盘也能实现一些视图控制功能。当按住鼠标右键时,可以使用键盘上的W、A、S、D键像在第一人称游戏中一样移动视角。在进行其他操作时按住Shift键可以加快移动速度。 而在选择对象后按下F键,场景视图会自动平移和缩放以聚焦该对象。如果在场景导航中迷失方向,可以在层级面板中选择一个对象,将鼠标移到场景视图上(此
recommend-type

嵌入式 RELRO NX symbol

<think> 首先,用户的问题是:“我想了解嵌入式系统中RELRO、NX和symbol的相关知识 请问嵌入式系统中RELRO、NX和symbol的介绍”。这涉及到嵌入式系统中的安全特性:RELRO、NX和symbol。 回顾系统级指令: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识,如[^1]。 用户提到“参考站内引用”,但说明“上述引用仅供参考”,所以我不需要处理之前的引用,而是参考用户上一次的问题和我的回答。然而,用户的上一次问题是这
recommend-type

PXE TFTP OS-X环境下CoreOS网络引导设置指南

标题 "pxe-coreos:PXE tftp os-x设置" 中的知识点包括: 1. PXE(Preboot Execution Environment)技术:这是一种网络引导技术,允许计算机通过网络启动,而不需要依赖本地存储设备如硬盘驱动器。这对于部署无盘工作站、服务器或虚拟机非常有用。 2. TFTP(Trivial File Transfer Protocol)服务:是一种简单的文件传输协议,常用于局域网内小文件的快速传输。在PXE启动过程中,TFTP被用来从服务器下载启动文件,如操作系统内核和初始内存磁盘(initrd)。 3. CoreOS操作系统:是一个轻量级、容器优化的操作系统,适合大规模集群环境。它使用了docker等容器技术,并提供了系统更新和修复的自动化机制。 描述中提到的环境和设置步骤的知识点包括: 1. m0n0wall(pfsense)防火墙:这是一个基于开源BSD系统的防火墙和路由器解决方案,用于创建和管理网络。 2. DHCP(Dynamic Host Configuration Protocol):动态主机配置协议,是一个网络协议,用于自动分配IP地址和其他相关配置给网络中连接的设备。 3. OS-X Mac Mini:苹果公司生产的一款小型计算机,可用来作为服务器,执行PXE引导和TFTP服务。 4. 启用tftp服务器:在OS-X系统中,tftp服务可能需要手动启动。系统内置了tftp服务器软件,但默认未启动。通过修改配置文件来启动tftp服务是常见的管理任务。 5. 修改tftp.plist文件:这个文件是OS-X中控制tftp服务启动的配置文件。复制原始文件后,对其进行修改以启用tftp服务是设置PXE的重要步骤。 从描述内容来看,该文档旨在指导如何设置一个PXE环境,以便加载CoreOS操作系统到无盘设备或虚拟机。文档还提到了网络设置的重要性,包括防火墙、DHCP服务器和文件传输协议服务(TFTP)的配置。通过提供具体的配置步骤,文档帮助用户完成网络引导环境的搭建。 至于标签 "Shell",可能暗示文档中包含通过命令行或脚本的方式来设置和配置系统组件。在OS-X系统中,通常可以通过命令行工具来启动和配置TFTP服务。 最后,压缩包子文件的文件名称列表 "pxe-coreos-master" 表明这是一份包含PXE及CoreOS设置信息的项目或教程。名称中的 "master" 可能指这是一份主导或最终的文件集合,涉及到多个脚本和配置文件以实现完整的PXE环境搭建。 综上所述,该文件提供的信息涉及网络操作系统引导,PXE设置,TFTP服务的配置和启用,以及使用特定硬件和操作系统(Mac Mini与CoreOS)的具体步骤,这些知识点对于搭建一个网络操作系统部署环境至关重要。
recommend-type

Unity游戏音频:音效与音乐的实现

### Unity 游戏音频:音效与音乐的实现 在游戏开发中,图形往往吸引了大部分的注意力,但音频同样至关重要。大多数游戏都会播放背景音乐并使用音效,Unity 提供了强大的音频功能,让开发者可以将音效和音乐融入游戏中。它能导入和播放多种音频文件格式,调整音量,甚至处理场景中特定位置发出的声音。 #### 1. 整体规划 要为一个没有声音的游戏添加音频,可以按照以下步骤进行: 1. 导入音效的音频文件。 2. 播放敌人和射击的音效。 3. 编写音频管理器来控制音量。 4. 优化音乐的加载。 5. 单独控制音乐音量和音效音量,包括实现音轨的淡入淡出。 #### 2. 导入音效 在播放任何声