单片机加红外编解码模块(自带破解空调遥控器功能)实现控制空调开关

获取空调遥控器的红外编码(制冷模式)

通过串口获取红外编解码模块(某宝上三四十块)破解到的空调遥控器编码

格力空调遥控器:YAP0F3型号

制冷开机编码

23度开机:FD FD 30 03 40 17 00 34 15 01 32 02 64 00 2A 00 1F 00 2A 00 E6 04 25 00 CF 09 26 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 14 51 22 12 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3F 7D DF DF

24度开机:FD FD 30 03 40 17 00 34 15 01 33 02 63 00 2A 00 1E 00 2A 00 E5 04 25 00 D0 09 25 00 1A 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 00 30 DF DF

25度开机:F1 FD FD 30 03 40 17 00 34 15 01 34 02 64 00 2A 00 1F 00 2A 00 E6 04 26 00 CF 09 25 00 19 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 76 00 BA DF DF

制冷关机编码

FD FD 30 03 40 17 00 34 15 01 32 02 63 00 2A 00 1F 00 2A 00 E6 04 26 00 CF 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 22 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 24 51 22 22 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 26 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 76 FC 94 DF DF

制冷调高一度编码

23度调高一度:FD FD 30 03 40 17 00 34 14 01 35 02 62 00 2C 00 1E 00 2A 00 E7 04 26 00 D0 09 26 00 1B 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 76 3E 48 DF DF

24度调高一度:FD FD 30 03 40 17 00 34 13 01 34 02 63 00 2A 00 1F 00 2A 00 E7 04 26 00 CF 09 26 00 1A 01 33 02 00 00 21 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 76 3F 14 DF DF

25度调高一度:FD FD 30 03 40 17 00 34 14 01 34 02 64 00 2A 00 1E 00 2A 00 E7 04 26 00 D1 09 26 00 19 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 22 12 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 21 14 51 22 12 22 22 12 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 E8 DF DF

制冷调低一度编码

26度调低一度:FD FD 30 03 40 17 00 34 14 01 33 02 62 00 2C 00 1D 00 2C 00 E6 04 26 00 CE 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 14 51 22 12 22 21 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 76 00 72 DF DF

25度调低一度:FD FD 30 03 40 17 00 34 13 01 35 02 62 00 2C 00 1D 00 2C 00 E6 04 25 00 CF 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 22 22 12 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 14 51 22 12 22 22 22 12 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 21 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3E 92 DF DF

24度调低一度:FD FD 30 03 40 17 00 34 13 01 33 02 62 00 2C 00 1D 00 2C 00 E8 04 25 00 D0 09 25 00 1A 01 33 02 00 00 22 00 FF FF FF FF 01 22 12 22 21 11 22 22 22 22 22 12 22 22 21 21 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 14 51 22 12 22 21 11 22 22 22 22 22 12 22 22 21 11 22 12 32 22 22 22 22 22 22 22 22 22 22 22 22 22 22 12 16 00 00 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 76 7E 7B DF DF

三菱空调遥控器:型号ND09AS TD704

制冷开机

23度:FD FD 30 03 4C 47 00 34 64 00 D6 00 49 00 1E 00 12 00 1E 00 1A 00 1A 00 51 00 17 00 A4 03 15 00 6A 00 D4 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 23 32 32 23 22 33 33 23 13 33 33 11 33 31 11 33 33 33 14 33 34 43 34 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 44 34 35 64 43 33 43 31 43 43 34 43 44 33 13 34 33 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 34 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 75 3E C6 DF DF

24度:FD FD 30 03 4C 47 00 34 61 00 D8 00 49 00 1F 00 12 00 1E 00 1A 00 19 00 51 00 18 00 A9 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 33 33 33 33 33 13 33 33 11 32 33 33 13 33 33 11 33 31 43 31 33 31 33 33 33 33 33 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 31 11 00 00 11 31 25 61 13 33 43 31 43 13 31 12 11 33 43 31 33 33 23 33 33 33 33 33 33 33 43 33 33 44 33 33 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 44 44 34 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3E DD DF DF

25度:FD FD 30 03 4C 47 00 34 63 00 D6 00 49 00 1E 00 11 00 1F 00 19 00 1B 00 51 00 17 00 A9 03 15 00 6C 00 D2 00 00 00 0B 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 32 23 33 33 33 33 33 33 43 33 33 41 33 31 33 13 33 33 11 33 31 43 34 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 00 00 33 11 35 61 13 33 13 31 13 13 31 43 11 33 13 31 33 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 76 3E 2E DF DF

制冷关机

FD FD 30 03 4C 47 00 34 62 00 D7 00 49 00 1F 00 12 00 1F 00 1A 00 19 00 51 00 18 00 AA 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 22 32 33 33 33 33 23 33 11 33 31 11 33 32 33 11 32 31 43 31 23 31 33 33 33 33 33 33 33 33 23 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 11 13 25 61 12 33 13 31 13 43 31 43 11 32 13 31 33 33 23 33 33 33 33 33 33 33 33 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 43 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 2F DF DF

制冷调高一度

23度调高一度:FD FD 30 03 4C 47 00 34 64 00 D6 00 4A 00 1E 00 12 00 1E 00 1A 00 19 00 A9 03 15 00 6C 00 D2 00 52 00 18 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 32 33 32 33 33 13 23 33 11 33 32 33 13 23 33 11 33 31 13 31 33 31 33 23 33 32 33 33 33 33 33 32 33 33 33 33 33 33 33 33 32 33 33 23 33 33 33 33 33 33 31 11 00 00 11 21 34 51 12 33 13 31 13 13 31 63 11 33 13 31 33 33 32 33 23 33 33 33 33 33 13 33 33 66 33 33 33 63 33 33 66 33 36 63 36 33 36 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 36 66 66 36 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 76 01 7C DF DF

24度调高一度:FD FD 30 03 4C 47 00 34 61 00 D8 00 49 00 1E 00 13 00 1E 00 1B 00 19 00 51 00 19 00 A3 03 17 00 6B 00 D2 00 00 00 0A 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 22 22 22 22 22 12 22 22 11 22 31 22 12 22 22 11 22 31 42 31 22 21 22 22 22 22 22 22 22 23 22 22 22 22 22 22 22 22 22 23 22 32 23 22 32 23 22 22 22 22 22 22 00 00 23 14 25 61 12 22 12 21 12 12 21 42 11 22 13 34 23 33 33 33 33 33 33 33 33 33 43 33 33 44 33 34 33 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 75 3F 72 DF DF

25度调高一度:FD FD 30 03 4C 47 00 34 62 00 D8 00 49 00 1F 00 11 00 1F 00 1A 00 1A 00 51 00 18 00 A2 03 16 00 6B 00 D4 00 00 00 0D 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 23 33 33 33 33 13 33 33 11 33 33 13 13 33 33 41 33 31 13 31 33 31 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 31 33 00 00 33 11 35 61 13 33 13 31 13 13 31 43 11 33 13 31 33 33 33 33 33 33 33 33 33 33 13 33 33 44 33 33 43 43 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 33 33 44 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 76 00 90 DF DF

制冷调低一度

26度调低一度:FD FD 30 03 4C 47 00 34 64 00 D6 00 4A 00 1E 00 12 00 1E 00 1A 00 18 00 A5 03 15 00 6C 00 D2 00 52 00 18 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 33 33 32 33 33 13 32 33 11 33 21 33 13 33 33 11 33 31 13 31 33 31 33 33 33 23 33 33 33 33 23 33 33 33 32 33 33 32 33 33 33 33 23 33 33 33 33 23 33 33 33 33 00 00 33 11 24 51 13 33 12 31 13 12 31 63 11 33 13 31 33 33 32 33 23 33 33 33 33 33 13 33 33 16 33 36 33 63 33 33 66 33 36 63 36 33 36 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 66 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 76 00 98 DF DF

25度调低一度:FD FD 30 03 4C 47 00 34 61 00 D8 00 48 00 1F 00 16 00 1F 00 50 00 19 00 A4 03 15 00 6A 00 D4 00 1C 00 16 00 00 00 11 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 22 22 22 22 22 12 22 22 31 22 22 22 12 22 22 11 22 23 32 21 22 21 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 22 21 33 00 00 11 23 24 53 32 22 32 23 32 32 23 32 33 22 32 23 22 22 22 22 22 22 22 22 22 22 32 22 22 33 22 22 22 32 22 22 33 22 23 32 23 22 23 22 22 22 22 22 22 22 22 22 22 62 22 22 22 22 22 22 62 22 22 22 62 22 22 22 26 22 26 63 33 33 23 27 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 75 00 62 DF DF

24度调低一度:FD FD 30 03 4B 47 00 34 62 00 D7 00 4A 00 1F 00 12 00 1F 00 15 00 28 00 1A 00 19 00 AA 03 15 00 6C 00 D2 00 52 00 16 00 01 12 23 12 21 12 12 21 12 11 22 12 21 22 22 22 22 22 44 24 44 44 44 14 44 44 11 44 41 11 44 44 44 11 44 21 14 41 42 41 44 24 44 44 44 44 44 44 44 42 44 44 42 44 42 44 44 44 44 44 44 44 44 44 44 44 44 44 44 11 00 00 11 41 25 61 14 24 14 41 14 14 21 14 11 24 14 41 44 44 44 44 44 24 44 44 44 44 14 44 44 77 44 47 77 44 44 44 77 44 47 74 47 44 47 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 44 77 77 47 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 76 3E 97 DF DF

单片机控制思路

现在得到了空调遥控器的编码,那么我们要做的就是将该由字符串表示的16进制编码转化成对应的由字符串表示的10进制编码(有点拗口),再通过串口发送给红外编码器,使其发送控制空调的的红外编码信号。

上面的编码中,每两个字符组成的一个十六进制数,两个十六进制数中间由空格隔开。

提取思路:在for循环中,先读取第一个字符,判断其是否为空格。若不为空格,则再++,读取下一个字符,将两个字符分别转化为相应的十进制数,再通过第一个十进制数 x 16 + 第二个十进制数,这样就获得了十六进制字符相应的十进制数;若为空格,则++,再执行一样的操作

注意:获得的十六进制字符相应的十进制数应该存储到unsigned char型的字符串中,因为char型的取值范围是 -128 ~ +127,而十六进制对应的十进制数的范围是 0 ~ 255,对于unsigned char型的取值范围是 0 ~ 255

代码实现

以下是树莓派加红外编解码模块的代码

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <wiringSerial.h>

int HexChar(char c) //获取十六进制字符对应的十进制数
{
        if((c >= '0') && (c <= '9'))
                return c-0x30;

        else if((c >= 'A') && (c <= 'F'))
                return c-'A'+10;

        else if((c >= 'a')&&(c <= 'f'))
                return c-'a'+10;

        else //错误的十六进制字符
                return 0x10;
}

int main()
{
        int fd, n, status = 0, nread = 0;
        wiringPiSetup();
        fd = serialOpen("/dev/ttyAMA0", 9600);
        printf("fd = %d\n", fd);

		//开机的编码
        char* str = "FD FD 30 03 4C 47 00 34 62 00 D7 00 49 00 1F 00 12 00 1F 00 1A 00 19 00 51 00 18 00 AA 03 15 00 6C 00 D2 00 00 00 0C 00 01 12 22 12 21 12 12 21 12 11 22 12 21 22 22 22 22 23 22 32 33 33 33 33 23 33 11 33 31 11 33 32 33 11 32 31 43 31 23 31 33 33 33 33 33 33 33 33 23 33 33 33 33 33 33 32 33 33 33 33 33 33 33 33 33 33 33 33 33 14 00 00 11 13 25 61 12 33 13 31 13 43 31 43 11 32 13 31 33 33 23 33 33 33 33 33 33 33 33 33 33 44 33 34 44 33 33 33 44 33 34 43 34 33 34 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 44 44 43 37 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 76 00 2F DF DF ";

        int t, t1;
        int rlen=0, len=strlen(str);
        unsigned char ctrl[236] = {'\0'};

        for(int i=0; i<len; )
        {
                char l, h=str[i];
                if(h == ' ')
                {
                        i++;
                        continue;
                }

                i++;

                l = str[i];
                t = HexChar(h);
                t1 = HexChar(l);

                if((t == 16)||(t1 == 16))
                        break;
                else
                	t = t*16 + t1;

                i++;

                printf("%x ", t);
                ctrl[rlen] = (unsigned char)t;
                rlen++;
        }
        printf("\nstrlen = %d; sizeof = %d\n",strlen(ctrl),sizeof(ctrl));
        write(fd, ctrl, sizeof(ctrl));
        printf("\n");

        return 0;
}

注意:用write函数向串口写控制指令时,第三个参数要用 sizeof ,不能用 strlen !!!当遇到 0 时,strlen结束计数

<think>好的,用户遇到了Git合并时本地更改会被覆盖的问题,需要解决方案。根据之前的引用资料,解决方法主要有commit、stash和revert三种。首先,我得确认用户的具体情况,比如他们的本地更改是否已经完成,是否需要保留,或者是否可以丢弃。用户可能不太清楚这三种方法的适用场景,需要详细解释每个选项的步骤和优缺点。比如,commit适用于需要保留更改的情况,stash适合临时保存以便后续恢复,而revert则是直接撤销更改,适用于不需要保留的情况。需要结构清晰,分点说明,每个方法都给出操作步骤和适用场景,帮助用户理解哪种情况最适合他们。还要注意使用中文,避免技术术语过于复杂,让用户容易理解。同时,生成相关问题,可能涉及如何恢复stash的内容,或者如何避免频繁冲突等,扩展用户的知识点。另外,要确保LaTeX格式正确,但在这个问题中可能用不上数学公式,所以主要关注代码块和引用标识。检查引用是否正确,比如引用[^1]和[^2]的来源是否相关,用户提供的引用内容是否准确对应解决方案。 最后,确保回答真实可靠,操作步骤准确无误,避免误导用户。可能还需要提醒用户根据具体情况选择方法,比如如果有未完成的实验性代码,stash可能是更好的选择,而如果是确定要保留的修改,则应该commit。</think>要解决Git合并时本地更改被覆盖的问题,可根据不同场景选择以下三种方法: ### 一、提交本地更改(commit) **适用场景**:当本地更改已测试通过且需要保留到版本历史中。 **操作步骤**: 1. 将改动添加到暂存区: ```bash git add . # 添加所有文件 # 或指定文件 git add file1.txt file2.py ``` 2. 提交更改并添加描述: ```bash git commit -m "完成用户登录模块优化" ``` 3. 执行合并操作: ```bash git merge origin/main ``` **优点**:保留完整的开发记录,便于后续追溯[^1]。 ### 二、暂存更改(stash) **适用场景**:需要临时保存未完成的修改(如调试代码),优先处理合并操作。 **操作步骤**: 1. 保存当前工作状态: ```bash git stash # 可选添加备注 git stash save "用户登录模块调试代码" ``` 2. 查看暂存记录列表: ```bash git stash list ``` 3. 合并远程分支: ```bash git merge origin/main ``` 4. 恢复暂存内容: ```bash git stash pop # 恢复并删除最近一次暂存 # 或指定特定暂存 git stash apply stash@{1} ``` **优点**:保持工作目录整洁,特别适合处理紧急合并任务[^2]。 ### 三、撤销本地更改(revert) **适用场景**:本地修改可丢弃(如实验性代码或错误修改)。 **操作步骤**: 1. 撤销所有未提交的修改: ```bash git checkout -- . # 全部文件 # 或指定文件 git checkout -- file1.txt ``` 2. 执行合并操作: ```bash git merge origin/main ``` **风险提示**:此操作不可逆,需确认文件无需保留。 --- ### 对比决策表 | 方法 | 保留记录 | 可恢复性 | 适用阶段 | |---------|----------|----------|------------------| | commit | ✅ | ✅ | 功能开发完成时 | | stash | ❌ | ✅ | 开发中途临时切换 | | revert | ❌ | ❌ | 放弃无效修改 | ### 扩展应用场景 - 当存在多个暂存时,可用`git stash list`查看记录,通过`git stash apply stash@{n}`精准恢复 - 合并后出现冲突时,可使用`git mergetool`可视化工具解决冲突 - 长期分支开发推荐使用`git rebase`保持提交历史线性
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值