1、 前一阵公司外购了一些控制器,配合公司的开关一起发给用户。发货前领导认为控制器开机界面会出现我们进货厂家的LOGO不好,应该改成我们公司的名称。于是与控制器厂家协调,让他们把开机欢迎界面改动一下。没几天对方发过来一个ISP下载器,我们用它把控制器的程序升级了一下,就改过来了。 闲来无事,感觉这个ISP下载器很有意思。之前我们升级程序,因为还没有着手开发远程自动升级功能,必须到现场去升级。而且用的STM32F103的处理器本身不具备作为主机使用USB的功能,升级的时候使用串口。所以当设备安装在现场的话,就需要带着笔记本,USB转串口线去现场,比较麻烦。而且,笔记本一来体积大,本来出去
2、带着工具什么的东西就很麻烦,再带着本就更头疼;二来在现场也不好用,有转接口不好使的问题,也有其它原因,比如可能需要爬杆,在几米高的杆上抱着本给设备升级是很恐怖的事情。鉴于此,感觉这个ISP下载器还是比较好的一款东西。当然,对方厂家给我们发过来的这款下载器是针对他们用的处理器的,跟我们的不合适。在网上搜索一番,发现还真能找到STM系列的ISP下载器,价格在1200元左右。比起笔记本来说倒是很合算。准备买它几个。 当然准备买,那是领导的打算。我觉得应该可以自己做一下,反正我也有不少空闲时间。于是便行动起来。 首先,我先在网上找了一款免费的串口监听工具“串口监控精灵”下载安装好。
3、然后将我们的控制器与PC用串口连接好。打开监控精灵,然后打开“串口调试助手”,向终端发送命令。发现监控精灵可以很好的将串口间的上下通信显示出来,并且会给出对串口进行配置的显示。这样,在ISP模式下给控制器上电,在PC上打开STM的flashloader,配置好,下发一个源程序,分析监控精灵的数据: 序号 , 时间 , 进程(PID) , IO类型 , COM口 , 数据长度 , 数据 , 1,14:15:38,hypertrm.exe(3708),IRP_MJ_CREATE,COM3,0,, 2,14:15:38,hypertrm.exe(3708),IOCTL_SET_QUEUE_
4、SIZE ,COM3,8, QueueSize.InSize: 8192, QueueSize.OutSize: 8192, 3,14:15:38,hypertrm.exe(3708),IOCTL_SET_BAUD_RATE ,COM3,4, 115200, 4,14:15:38,hypertrm.exe(3708),IOCTL_SET_RTS ,COM3,0,, 5,14:15:38,hypertrm.exe(3708),IOCTL_SET_DTR ,COM3,0,, 6,14:15:38,hypertrm.exe(3708),I
5、OCTL_SET_LINE_CONTROL ,COM3,3, WordLength: 8 StopBits: 1 Parity:0(None) , 7,14:15:38,hypertrm.exe(3708),IOCTL_SET_CHARS ,COM3,6, Chars Eof: 0, Error: 0, break: 0, Event: 0, Xon: 17, Xoff: 19, 8,14:15:38,hypertrm.exe(3708),IOCTL_SET_HANDFLOW ,COM3,16, DCB.fAbortOnError=TRUE
6、DCB.fTXContinueOnXoff=TRUE DCB.fRtsControl=RTS_CONTROL_ENABLE DCB.fDtrControl=DTR_CONTROL_ENABLE DCB.fDsrSensitivity=FALSE DCB->XonLim: 80 DCB->XoffLim: 200, 10,14:16:08,hypertrm.exe(3708),IRP_MJ_CLOSE,COM3,0,, 12,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_SET_QUEUE_S
7、IZE ,COM3,8, QueueSize.InSize: 2048, QueueSize.OutSize: 2048, 13,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_SET_BAUD_RATE ,COM3,4, 115200, 14,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_CLR_RTS ,COM3,0,, 15,14:16:30,STMicroelectronics flash loader.exe(
8、3872),IOCTL_CLR_DTR ,COM3,0,, 16,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_SET_LINE_CONTROL ,COM3,3, WordLength: 8 StopBits: 1 Parity:0(None) , 17,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_SET_CHARS ,COM3,6, Chars Eof: 0, Error: 0, break: 0, E
9、vent: 0, Xon: 17, Xoff: 19, 18,14:16:30,STMicroelectronics flash loader.exe(3872),IOCTL_SET_HANDFLOW ,COM3,16, DCB.fAbortOnError=TRUE DCB.fTXContinueOnXoff=TRUE DCB.fRtsControl=RTS_CONTROL_DISABLE DCB.fDtrControl=DTR_CONTROL_DISABLE DCB.fDsrSensitivity=FALSE DCB->XonLim: 2048 DCB-
10、>XoffLim: 512, 19,14:16:30,STMicroelectronics flash loader.exe(3872),IRP_MJ_WRITE,COM3,1, 7F | , 21,14:16:30,STMicroelectronics flash loader.exe(3872),IRP_MJ_CLOSE,COM3,0,, 22,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_CREATE,COM3,0,, 23,14:17:34,STMicroelectronics flash loade
11、r.exe(2848),IOCTL_SET_QUEUE_SIZE ,COM3,8, QueueSize.InSize: 2048, QueueSize.OutSize: 2048, 24,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_BAUD_RATE ,COM3,4, 115200, 25,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_CLR_RTS ,COM3,0,, 26,14:17:34,STMicro
12、electronics flash loader.exe(2848),IOCTL_CLR_DTR ,COM3,0,, 27,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_LINE_CONTROL ,COM3,3, WordLength: 8 StopBits: 1 Parity:0(None) , 28,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_CHARS ,COM3,6,
13、Chars Eof: 0, Error: 0, break: 0, Event: 0, Xon: 17, Xoff: 19, 29,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_HANDFLOW ,COM3,16, DCB.fRtsControl=RTS_CONTROL_DISABLE DCB.fDtrControl=DTR_CONTROL_DISABLE DCB.fDsrSensitivity=FALSE DCB->XonLim: 2048 DCB->XoffLim: 512, 30,
14、14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,1, 7F | , 31,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 32,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_BAUD_RATE ,COM3,4, 115200, 33,14:17:34,STMicroelectronics fl
15、ash loader.exe(2848),IOCTL_CLR_RTS ,COM3,0,, 34,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_CLR_DTR ,COM3,0,, 35,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_LINE_CONTROL ,COM3,3, WordLength: 8 StopBits: 1 Parity:2(E) , 36,14:17:34,STMicroelec
16、tronics flash loader.exe(2848),IOCTL_SET_CHARS ,COM3,6, Chars Eof: 0, Error: 0, break: 0, Event: 0, Xon: 17, Xoff: 19, 37,14:17:34,STMicroelectronics flash loader.exe(2848),IOCTL_SET_HANDFLOW ,COM3,16, DCB.fRtsControl=RTS_CONTROL_DISABLE DCB.fDtrControl=DTR_CONTROL_DISABLE DCB.fD
17、srSensitivity=FALSE DCB->XonLim: 2048 DCB->XoffLim: 512, 38,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 00 FF | \#0?, 39,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 40,14:17:34,STMicroelectronics flash loader.exe(2848)
18、IRP_MJ_READ,COM3,1, 0B | \#11, 41,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 22 | ", 42,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,11, 00 01 02 11 21 31 43 63 73 82 92 | \#0\#1\#2\#17!1Ccs??, 43,14:17:34,STMicroelectronics flash loade
19、r.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 44,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 02 FD | \#2y, 45,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 46,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 0
20、1 | \#1, 47,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, 04 14 | \#4, 48,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 49,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 02 FD | \#2y, 50,14:17:34,STMicro
21、electronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 51,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 01 | \#1, 52,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, 04 14 | \#4, 53,14:17:34,STMicroelectronics flash loader.exe(2848),
22、IRP_MJ_READ,COM3,1, 79 | y, 54,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 55,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 56,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F7 E0
23、 F7 | ?÷à÷, 57,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 58,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 01 FE | \#1t, 59,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 60,14:17:34,STMicroel
24、ectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, 00 02 | \#0\#2, 61,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 62,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 63,14:17:34,STMicroelectronics flash load
25、er.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F7 E2 F5 | ?÷a?, 64,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 65,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 01 FE | \#1t, 66,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ
26、READ,COM3,1, 79 | y, 67,14:17:34,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, FF FF | ??, 68,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 02 FD | \#2y, 69,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 70,14
27、17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 01 | \#1, 71,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, 04 14 | \#4, 72,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 73,14:17:40,STMicroelectronics flash loa
28、der.exe(2848),IRP_MJ_WRITE,COM3,2, 02 FD | \#2y, 74,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 75,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 01 | \#1, 76,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2,
29、 04 14 | \#4, 77,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 78,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 79,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 80,14:17:40,STMi
30、croelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F7 E0 F7 | ?÷à÷, 81,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 82,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 01 FE | \#1t, 83,14:17:40,STMicroelectronic
31、s flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 84,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, 00 02 | \#0\#2, 85,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 86,14:17:40,STMicroelectronics flash loader.exe(2848),I
32、RP_MJ_READ,COM3,1, 79 | y, 87,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F7 E2 F5 | ?÷a?, 88,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 89,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 01 F
33、E | \#1t, 90,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 91,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,2, FF FF | ??, 92,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 00 FF | \#0?, 93,14:17:40,STMicro
34、electronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 94,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 0B | \#11, 95,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 22 | ", 96,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_
35、MJ_READ,COM3,11, 00 01 02 11 21 31 43 63 73 82 92 | \#0\#1\#2\#17!1Ccs??, 97,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 98,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 99,14:17:40,STMicroelectronics flash loade
36、r.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 100,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F8 08 10 | ??\#8\#16, 101,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 102,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ
37、WRITE,COM3,2, 03 FC | \#3ü, 103,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 104,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,4, FF FF FF FF | ????, 105,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2,
38、 11 EE | \#17?, 106,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 107,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F8 0C 14 | ??\#12, 108,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 1
39、09,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 03 FC | \#3ü, 110,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 111,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,4, FF FF FF FF | ????, 112,14:17:40,STMicroe
40、lectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 11 EE | \#17?, 113,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 114,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 1F FF F8 00 18 | ??\#0, 115,14:17:40,STMicroelectronics fla
41、sh loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 116,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 03 FC | \#3ü, 117,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 118,14:17:40,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,
42、COM3,4, A5 5A FF FF | ¥Z??, 119,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 43 BC | C?, 120,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 121,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, FF 00 | ?\
43、0, 122,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 123,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,2, 31 CE | 1?, 124,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 125,14:18:20,STMicroelectroni
44、cs flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 08 00 00 00 08 | \#8\#0\#0\#0\#8, 126,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 127,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,1, FB | ?, 128,14:18:20,STMicroelectronics fl
45、ash loader.exe(2848),IRP_MJ_WRITE,COM3,252, 80 0D 00 20 FD 1E 00 08 E9 1E 00 08 EB 1E 00 08 ED 1E 00 08 EF 1E 00 08 F1 1E 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F3 1E 00 08 F5 1E 00 08 00 00 00 00 F7 1E 00 08 F9 1E 00 08 3D 1F 00 08 41 1F 00 08 45 1F 00 08 49 1F 00 08 4D 1F 00 08 51
46、 1F 00 08 55 1F 00 08 59 1F 00 08 5D 1F 00 08 61 1F 00 08 65 1F 00 08 69 1F 00 08 6D 1F 00 08 71 1F 00 08 75 1F 00 08 79 1F 00 08 7D 1F 00 08 81 1F 00 08 85 1F 00 08 89 1F 00 08 8D 1F 00 08 91 1F 00 08 95 1F 00 08 99 1F 00 08 9D 1F 00 08 A1 1F 00 08 A5 1F 00 08 A9 1F 00 08 AD 1F 00 08 B1 1F 00 08 B5
47、 1F 00 08 B9 1F 00 08 BD 1F 00 08 C1 1F 00 08 C5 1F 00 08 C9 1F 00 08 CD 1F 00 08 D1 1F 00 08 D5 1F 00 08 D9 1F 00 08 DD 1F 00 08 E1 1F 00 08 E5 1F 00 08 E9 1F 00 08 ED 1F 00 08 F1 1F 00 08 F5 1F 00 08 | ?\#13\#0 y\#0\#8é\#0\#8?\#0\#8í\#0\#8?\#0\#8?\#0\#8\#0\#0\#0\#0\#0\#0\#0\#0\#0\#0\#0\#0\#0\#0\#
48、0\#0ó\#0\#8?\#0\#8\#0\#0\#0\#0÷\#0\#8ù\#0\#8=\#0\#8A\#0\#8E\#0\#8I\#0\#8M\#0\#8Q\#0\#8U\#0\#8Y\#0\#8]\#0\#8a\#0\#8e\#0\#8i\#0\#8m\#0\#8q\#0\#8u\#0\#8y\#0\#8}\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8?\#0\#8¥\#0\#8?\#0\#8-\#0\#8±\#0\#8μ\#0\#81\#0\#8?\#0\#8á\#0\#8?\#0\#8é\#0\#8í\#0
49、\#8?\#0\#8?\#0\#8ù\#0\#8Y\#0\#8á\#0\#8?\#0\#8é\#0\#8í\#0\#8?\#0\#8?\#0\#8, 129,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,1, 7C | |, 130,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 131,14:18:20,STMicroelectronics flash loader.exe(
50、2848),IRP_MJ_WRITE,COM3,2, 31 CE | 1?, 132,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_READ,COM3,1, 79 | y, 133,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_MJ_WRITE,COM3,5, 08 00 00 FC F4 | \#8\#0\#0ü?, 134,14:18:20,STMicroelectronics flash loader.exe(2848),IRP_M






