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

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

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

格力空调遥控器: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

扫描二维码关注公众号,回复: 13127977 查看本文章

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结束计数

猜你喜欢

转载自blog.csdn.net/weixin_50438937/article/details/115426673