diff --git "a/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/74HC245PW-Q100J.pdf" b/Documents/74HC245PW-Q100J.pdf similarity index 100% rename from "Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/74HC245PW-Q100J.pdf" rename to Documents/74HC245PW-Q100J.pdf diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" b/Documents/AT24C02.pdf similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" rename to Documents/AT24C02.pdf diff --git "a/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/CY7C68013A-56LTXC.pdf" b/Documents/CY7C68013A-56LTXC.pdf similarity index 100% rename from "Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/CY7C68013A-56LTXC.pdf" rename to Documents/CY7C68013A-56LTXC.pdf diff --git "a/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/TPRT9013-33GB.pdf" b/Documents/TPRT9013-33GB.pdf similarity index 100% rename from "Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/TPRT9013-33GB.pdf" rename to Documents/TPRT9013-33GB.pdf diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Drawing1.dwg" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/Drawing1.dwg" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Drawing1.dwg" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/Drawing1.dwg" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Sheet_1.schdoc" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/Sheet_1.schdoc" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Sheet_1.schdoc" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/Sheet_1.schdoc" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.pcbdoc" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.pcbdoc" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.pcbdoc" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.pcbdoc" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.pcbdoc.htm" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.pcbdoc.htm" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.pcbdoc.htm" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.pcbdoc.htm" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.zip" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.zip" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer.zip" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer.zip" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer_ASC.pcbdoc" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer_ASC.pcbdoc" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/logic analyzer_ASC.pcbdoc" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/logic analyzer_ASC.pcbdoc" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcb" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcb" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcb" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcb" diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcbStructure" "b/Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcbStructure" similarity index 100% rename from "Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcbStructure" rename to "Hardware/AD\345\217\202\350\200\203\346\226\207\344\273\266/\351\200\273\350\276\221\345\210\206\346\236\220\344\273\252.PrjPcbStructure" diff --git a/Hardware/History/Logic_Analyzer.~(1).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(1).PcbDoc.Zip deleted file mode 100644 index 6c2ec8e..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(1).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(1).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(1).PrjPcb.Zip deleted file mode 100644 index 07e6a6d..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(1).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(1).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(1).SchDoc.Zip deleted file mode 100644 index 8d0d492..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(1).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(1).SchLib.Zip b/Hardware/History/Logic_Analyzer.~(1).SchLib.Zip deleted file mode 100644 index 21284e3..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(1).SchLib.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(10).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(10).PcbDoc.Zip deleted file mode 100644 index 25be9a6..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(10).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(10).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(10).SchDoc.Zip deleted file mode 100644 index 7f5c7b1..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(10).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(11).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(11).PcbDoc.Zip deleted file mode 100644 index 5f74b80..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(11).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(11).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(11).SchDoc.Zip deleted file mode 100644 index cbf756d..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(11).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(12).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(12).PcbDoc.Zip deleted file mode 100644 index af0cc8e..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(12).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(12).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(12).SchDoc.Zip deleted file mode 100644 index 82aa76d..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(12).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(13).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(13).PcbDoc.Zip deleted file mode 100644 index 384e035..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(13).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(13).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(13).SchDoc.Zip deleted file mode 100644 index b3d00db..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(13).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(14).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(14).PcbDoc.Zip deleted file mode 100644 index 16f8f23..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(14).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(14).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(14).SchDoc.Zip deleted file mode 100644 index 525ac25..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(14).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(15).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(15).PcbDoc.Zip deleted file mode 100644 index ba195ec..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(15).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(15).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(15).SchDoc.Zip deleted file mode 100644 index 7d29fd3..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(15).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(16).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(16).PcbDoc.Zip deleted file mode 100644 index d964b26..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(16).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(16).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(16).SchDoc.Zip deleted file mode 100644 index 571db6e..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(16).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(17).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(17).SchDoc.Zip deleted file mode 100644 index 5c6d108..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(17).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(2).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(2).PcbDoc.Zip deleted file mode 100644 index d5fa8d5..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(2).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(2).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(2).PrjPcb.Zip deleted file mode 100644 index 59c08f9..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(2).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(2).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(2).SchDoc.Zip deleted file mode 100644 index 322285a..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(2).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(3).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(3).PcbDoc.Zip deleted file mode 100644 index a319025..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(3).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(3).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(3).PrjPcb.Zip deleted file mode 100644 index 2ee0b35..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(3).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(3).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(3).SchDoc.Zip deleted file mode 100644 index f891bd4..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(3).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(4).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(4).PcbDoc.Zip deleted file mode 100644 index e41e258..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(4).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(4).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(4).PrjPcb.Zip deleted file mode 100644 index 346ef1c..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(4).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(4).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(4).SchDoc.Zip deleted file mode 100644 index e977fce..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(4).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(5).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(5).PcbDoc.Zip deleted file mode 100644 index e1967ff..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(5).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(5).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(5).PrjPcb.Zip deleted file mode 100644 index 381271b..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(5).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(5).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(5).SchDoc.Zip deleted file mode 100644 index 7c0e5be..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(5).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(6).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(6).PcbDoc.Zip deleted file mode 100644 index 947f68a..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(6).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(6).PrjPcb.Zip b/Hardware/History/Logic_Analyzer.~(6).PrjPcb.Zip deleted file mode 100644 index 65fe7f5..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(6).PrjPcb.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(6).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(6).SchDoc.Zip deleted file mode 100644 index b0a4259..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(6).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(7).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(7).PcbDoc.Zip deleted file mode 100644 index 02aacea..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(7).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(7).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(7).SchDoc.Zip deleted file mode 100644 index ebe8090..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(7).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(8).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(8).PcbDoc.Zip deleted file mode 100644 index 5919ec7..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(8).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(8).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(8).SchDoc.Zip deleted file mode 100644 index 27bf3e8..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(8).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(9).PcbDoc.Zip b/Hardware/History/Logic_Analyzer.~(9).PcbDoc.Zip deleted file mode 100644 index cd0b918..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(9).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer.~(9).SchDoc.Zip b/Hardware/History/Logic_Analyzer.~(9).SchDoc.Zip deleted file mode 100644 index 869d109..0000000 Binary files a/Hardware/History/Logic_Analyzer.~(9).SchDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer_ASCII.~(1).PcbDoc.Zip b/Hardware/History/Logic_Analyzer_ASCII.~(1).PcbDoc.Zip deleted file mode 100644 index 0602776..0000000 Binary files a/Hardware/History/Logic_Analyzer_ASCII.~(1).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/History/Logic_Analyzer_ASCII.~(2).PcbDoc.Zip b/Hardware/History/Logic_Analyzer_ASCII.~(2).PcbDoc.Zip deleted file mode 100644 index c819c6c..0000000 Binary files a/Hardware/History/Logic_Analyzer_ASCII.~(2).PcbDoc.Zip and /dev/null differ diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-04-25.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-04-25.LOG deleted file mode 100644 index 77997e5..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-04-25.LOG +++ /dev/null @@ -1,328 +0,0 @@ -Added Component: Designator=C1(0603C) -Added Component: Designator=C2(0603C) -Added Component: Designator=C3(0603C) -Added Component: Designator=C4(0603C) -Added Component: Designator=C5(0603C) -Added Component: Designator=C6(0603C) -Added Component: Designator=C7(0603C) -Added Component: Designator=C8(0603C) -Added Component: Designator=C9(0603C) -Added Component: Designator=C10(0603C) -Added Component: Designator=D1(LED-0805R) -Added Component: Designator=D2(SOD-123) -Added Component: Designator=D3(SOD-123) -Added Component: Designator=D4(LED-0805B) -Added Component: Designator=D5(SOD-123) -Added Component: Designator=D6(LED-0805Y) -Added Component: Designator=D7(SOD-123) -Added Component: Designator=D8(SOD-123) -Added Component: Designator=D9(SOD-123) -Added Component: Designator=D10(SOD-123) -Added Component: Designator=D11(SOD-123) -Added Component: Designator=F1(FUSE-0805) -Added Component: Designator=J1(Pin HDR1X5/2.54mm-S-SMD) -Added Component: Designator=J2(Pin HDR1X5/2.54mm-S-SMD) -Added Component: Designator=J3(Pin HDR1X2/2.54mm-S) -Added Component: Designator=K1(SW-SMD_L4.0-W2.9-P4.15-EH) -Added Component: Designator=R1(0603R) -Added Component: Designator=R2(0603R) -Added Component: Designator=R3(0603R) -Added Component: Designator=R4(0603R) -Added Component: Designator=R5(0603R) -Added Component: Designator=R6(0603R) -Added Component: Designator=R7(0603R) -Added Component: Designator=R8(0603R) -Added Component: Designator=R9(0603R) -Added Component: Designator=R?(RES-ARRAY-SMD_0603-8P-L3.2-W1.6-BL) -Added Component: Designator=R?(RES-ARRAY-SMD_0603-8P-L3.2-W1.6-BL) -Added Component: Designator=R?(RES-ARRAY-SMD_0603-8P-L3.2-W1.6-BL) -Added Component: Designator=R?(RES-ARRAY-SMD_0603-8P-L3.2-W1.6-BL) -Added Component: Designator=U1(CYP-LTX56-5200X4500TP_M) -Add component (AddParameter): Name = "Code_JEDEC"; Value = "MO-220"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink1Description"; Value = "Manufacturer URL"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink1URL"; Value = "http://www.cypress.com/"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink2Description"; Value = "Datasheet"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink2URL"; Value = "http://www.cypress.com/?docID=45142"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink3Description"; Value = "Package Specification"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "ComponentLink3URL"; Value = "http://www.cypress.com/?docID=47572"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "CPU Core"; Value = "Enhanced 8051"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "DatasheetVersion"; Value = "Rev. *W"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Manufacturer"; Value = "Cypress"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Max. Operating Temp. (degreesC)"; Value = "70"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Max. Operating Voltage (V)"; Value = "3.6"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Memory Architecture"; Value = "RAM"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Memory Size (KB)"; Value = "16"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Min. Operating Temp. (degreesC)"; Value = "0"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Min. Operating Voltage (V)"; Value = "3"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Mounting Technology"; Value = "Surface Mount"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "No. of I/Os"; Value = "24"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "PackageDescription"; Value = "56-Pin Sawn QFN, Body 8 x 8 mm, Pitch 0.5 mm"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "PackageReference"; Value = "LTX56"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "PackageVersion"; Value = "Rev. *D"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Packing"; Value = "Tray"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "PartNumber"; Value = "CY7C68013A-56LTXC"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "RoHS"; Value = "Pb-Free"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier 1"; Value = "Digi-Key"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier 2"; Value = "Newark"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier 3"; Value = "Mouser"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier Part Number 1"; Value = "428-2933-ND"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier Part Number 2"; Value = "50R9455"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Supplier Part Number 3"; Value = "727-CY7C68013A56LTXC"; VariantName = "[No Variations]" -Added Component: Designator=U2(TSSOP20) -Added Component: Designator=U3(SOP8) -Add component (AddParameter): Name = "BOM_JLCPCB Part Class"; Value = "Extended Part"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Manufacturer"; Value = "IDCHIP"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Manufacturer Part"; Value = "AT24C02"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Supplier"; Value = "LCSC"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Supplier Part"; Value = "C688857"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Contributor"; Value = "LCSC"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "spicePre"; Value = "U"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "spiceSymbolName"; Value = "AT24C02"; VariantName = "[No Variations]" -Added Component: Designator=U4(SOT223) -Added Component: Designator=USB1(USB-C-SMD_TYPE-C16PIN) -Add component (AddParameter): Name = "BOM_JLCPCB Part Class"; Value = "Extended Part"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Manufacturer"; Value = "SHOU HAN"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Manufacturer Part"; Value = "TYPE-C16PIN"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Supplier"; Value = "LCSC"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "BOM_Supplier Part"; Value = "C393939"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "Contributor"; Value = "LCSC"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "spicePre"; Value = "U"; VariantName = "[No Variations]" -Add component (AddParameter): Name = "spiceSymbolName"; Value = "TYPE-C16PIN"; VariantName = "[No Variations]" -Added Component: Designator=X1(OSC 3225-4P) -Added Pin To Net: NetName=3V3 Pin=C1-1 -Added Pin To Net: NetName=3V3 Pin=C2-1 -Added Pin To Net: NetName=3V3 Pin=C3-1 -Added Pin To Net: NetName=3V3 Pin=C4-1 -Added Pin To Net: NetName=3V3 Pin=C7-1 -Added Pin To Net: NetName=3V3 Pin=C10-2 -Added Pin To Net: NetName=3V3 Pin=D2-K -Added Pin To Net: NetName=3V3 Pin=D3-K -Added Pin To Net: NetName=3V3 Pin=D5-K -Added Pin To Net: NetName=3V3 Pin=D7-K -Added Pin To Net: NetName=3V3 Pin=D8-K -Added Pin To Net: NetName=3V3 Pin=D9-K -Added Pin To Net: NetName=3V3 Pin=D10-K -Added Pin To Net: NetName=3V3 Pin=D11-K -Added Pin To Net: NetName=3V3 Pin=R1-2 -Added Pin To Net: NetName=3V3 Pin=R2-2 -Added Pin To Net: NetName=3V3 Pin=R3-2 -Added Pin To Net: NetName=3V3 Pin=R4-2 -Added Pin To Net: NetName=3V3 Pin=R5-1 -Added Pin To Net: NetName=3V3 Pin=R?-5 -Added Pin To Net: NetName=3V3 Pin=R?-5 -Added Pin To Net: NetName=3V3 Pin=R?-6 -Added Pin To Net: NetName=3V3 Pin=R?-6 -Added Pin To Net: NetName=3V3 Pin=R?-7 -Added Pin To Net: NetName=3V3 Pin=R?-7 -Added Pin To Net: NetName=3V3 Pin=R?-8 -Added Pin To Net: NetName=3V3 Pin=R?-8 -Added Pin To Net: NetName=3V3 Pin=U1-3 -Added Pin To Net: NetName=3V3 Pin=U1-7 -Added Pin To Net: NetName=3V3 Pin=U1-11 -Added Pin To Net: NetName=3V3 Pin=U1-17 -Added Pin To Net: NetName=3V3 Pin=U1-27 -Added Pin To Net: NetName=3V3 Pin=U1-32 -Added Pin To Net: NetName=3V3 Pin=U1-43 -Added Pin To Net: NetName=3V3 Pin=U1-55 -Added Pin To Net: NetName=3V3 Pin=U2-20 -Added Pin To Net: NetName=3V3 Pin=U3-8 -Added Pin To Net: NetName=3V3 Pin=U4-2 -Added Pin To Net: NetName=3V3 Pin=U4-2 -Added Net: Name=3V3 -Added Pin To Net: NetName=GND Pin=C1-2 -Added Pin To Net: NetName=GND Pin=C2-2 -Added Pin To Net: NetName=GND Pin=C3-2 -Added Pin To Net: NetName=GND Pin=C4-2 -Added Pin To Net: NetName=GND Pin=C5-1 -Added Pin To Net: NetName=GND Pin=C6-1 -Added Pin To Net: NetName=GND Pin=C7-2 -Added Pin To Net: NetName=GND Pin=C8-1 -Added Pin To Net: NetName=GND Pin=C9-1 -Added Pin To Net: NetName=GND Pin=C10-1 -Added Pin To Net: NetName=GND Pin=D1-K -Added Pin To Net: NetName=GND Pin=D4-K -Added Pin To Net: NetName=GND Pin=D6-K -Added Pin To Net: NetName=GND Pin=J1-1 -Added Pin To Net: NetName=GND Pin=J2-1 -Added Pin To Net: NetName=GND Pin=K1-3 -Added Pin To Net: NetName=GND Pin=R8-1 -Added Pin To Net: NetName=GND Pin=R9-1 -Added Pin To Net: NetName=GND Pin=U1-6 -Added Pin To Net: NetName=GND Pin=U1-10 -Added Pin To Net: NetName=GND Pin=U1-12 -Added Pin To Net: NetName=GND Pin=U1-14 -Added Pin To Net: NetName=GND Pin=U1-26 -Added Pin To Net: NetName=GND Pin=U1-28 -Added Pin To Net: NetName=GND Pin=U1-41 -Added Pin To Net: NetName=GND Pin=U1-53 -Added Pin To Net: NetName=GND Pin=U1-56 -Added Pin To Net: NetName=GND Pin=U2-1 -Added Pin To Net: NetName=GND Pin=U2-10 -Added Pin To Net: NetName=GND Pin=U2-19 -Added Pin To Net: NetName=GND Pin=U3-1 -Added Pin To Net: NetName=GND Pin=U3-2 -Added Pin To Net: NetName=GND Pin=U3-3 -Added Pin To Net: NetName=GND Pin=U3-4 -Added Pin To Net: NetName=GND Pin=U3-7 -Added Pin To Net: NetName=GND Pin=U4-1 -Added Pin To Net: NetName=GND Pin=USB1-1 -Added Pin To Net: NetName=GND Pin=USB1-2 -Added Pin To Net: NetName=GND Pin=USB1-3 -Added Pin To Net: NetName=GND Pin=USB1-4 -Added Pin To Net: NetName=GND Pin=USB1-A1B12 -Added Pin To Net: NetName=GND Pin=USB1-B1A12 -Added Pin To Net: NetName=GND Pin=X1-2 -Added Pin To Net: NetName=GND Pin=X1-4 -Added Net: Name=GND -Added Pin To Net: NetName=I2C_SCL Pin=J3-1 -Added Pin To Net: NetName=I2C_SCL Pin=R2-1 -Added Pin To Net: NetName=I2C_SCL Pin=U1-15 -Added Pin To Net: NetName=I2C_SCL Pin=U3-6 -Added Net: Name=I2C_SCL -Added Pin To Net: NetName=I2C_SDA Pin=J3-2 -Added Pin To Net: NetName=I2C_SDA Pin=R1-1 -Added Pin To Net: NetName=I2C_SDA Pin=U1-16 -Added Pin To Net: NetName=I2C_SDA Pin=U3-5 -Added Net: Name=I2C_SDA -Added Pin To Net: NetName=IN0 Pin=D2-A -Added Pin To Net: NetName=IN0 Pin=R?-1 -Added Pin To Net: NetName=IN0 Pin=R?-4 -Added Pin To Net: NetName=IN0 Pin=U2-18 -Added Net: Name=IN0 -Added Pin To Net: NetName=IN1 Pin=D3-A -Added Pin To Net: NetName=IN1 Pin=R?-2 -Added Pin To Net: NetName=IN1 Pin=R?-3 -Added Pin To Net: NetName=IN1 Pin=U2-17 -Added Net: Name=IN1 -Added Pin To Net: NetName=IN2 Pin=D5-A -Added Pin To Net: NetName=IN2 Pin=R?-2 -Added Pin To Net: NetName=IN2 Pin=R?-3 -Added Pin To Net: NetName=IN2 Pin=U2-16 -Added Net: Name=IN2 -Added Pin To Net: NetName=IN3 Pin=D7-A -Added Pin To Net: NetName=IN3 Pin=R?-1 -Added Pin To Net: NetName=IN3 Pin=R?-4 -Added Pin To Net: NetName=IN3 Pin=U2-15 -Added Net: Name=IN3 -Added Pin To Net: NetName=IN4 Pin=D8-A -Added Pin To Net: NetName=IN4 Pin=R?-1 -Added Pin To Net: NetName=IN4 Pin=R?-4 -Added Pin To Net: NetName=IN4 Pin=U2-14 -Added Net: Name=IN4 -Added Pin To Net: NetName=IN5 Pin=D9-A -Added Pin To Net: NetName=IN5 Pin=R?-2 -Added Pin To Net: NetName=IN5 Pin=R?-3 -Added Pin To Net: NetName=IN5 Pin=U2-13 -Added Net: Name=IN5 -Added Pin To Net: NetName=IN6 Pin=D10-A -Added Pin To Net: NetName=IN6 Pin=R?-2 -Added Pin To Net: NetName=IN6 Pin=R?-3 -Added Pin To Net: NetName=IN6 Pin=U2-12 -Added Net: Name=IN6 -Added Pin To Net: NetName=IN7 Pin=D11-A -Added Pin To Net: NetName=IN7 Pin=R?-1 -Added Pin To Net: NetName=IN7 Pin=R?-4 -Added Pin To Net: NetName=IN7 Pin=U2-11 -Added Net: Name=IN7 -Added Pin To Net: NetName=NetC5_2 Pin=C5-2 -Added Pin To Net: NetName=NetC5_2 Pin=U1-4 -Added Pin To Net: NetName=NetC5_2 Pin=X1-1 -Added Net: Name=NetC5_2 -Added Pin To Net: NetName=NetC6_2 Pin=C6-2 -Added Pin To Net: NetName=NetC6_2 Pin=U1-5 -Added Pin To Net: NetName=NetC6_2 Pin=X1-3 -Added Net: Name=NetC6_2 -Added Pin To Net: NetName=NetC8_2 Pin=C8-2 -Added Pin To Net: NetName=NetC8_2 Pin=K1-1 -Added Pin To Net: NetName=NetC8_2 Pin=R3-1 -Added Pin To Net: NetName=NetC8_2 Pin=U1-42 -Added Net: Name=NetC8_2 -Added Pin To Net: NetName=NetC9_2 Pin=C9-2 -Added Pin To Net: NetName=NetC9_2 Pin=F1-2 -Added Pin To Net: NetName=NetC9_2 Pin=U4-3 -Added Net: Name=NetC9_2 -Added Pin To Net: NetName=NetD1_A Pin=D1-A -Added Pin To Net: NetName=NetD1_A Pin=R5-2 -Added Net: Name=NetD1_A -Added Pin To Net: NetName=NetD4_A Pin=D4-A -Added Pin To Net: NetName=NetD4_A Pin=R6-2 -Added Net: Name=NetD4_A -Added Pin To Net: NetName=NetD6_A Pin=D6-A -Added Pin To Net: NetName=NetD6_A Pin=R7-2 -Added Net: Name=NetD6_A -Added Pin To Net: NetName=NetJ1_2 Pin=J1-2 -Added Pin To Net: NetName=NetJ1_2 Pin=R?-8 -Added Net: Name=NetJ1_2 -Added Pin To Net: NetName=NetJ1_3 Pin=J1-3 -Added Pin To Net: NetName=NetJ1_3 Pin=R?-7 -Added Net: Name=NetJ1_3 -Added Pin To Net: NetName=NetJ1_4 Pin=J1-4 -Added Pin To Net: NetName=NetJ1_4 Pin=R?-6 -Added Net: Name=NetJ1_4 -Added Pin To Net: NetName=NetJ1_5 Pin=J1-5 -Added Pin To Net: NetName=NetJ1_5 Pin=R?-5 -Added Net: Name=NetJ1_5 -Added Pin To Net: NetName=NetJ2_2 Pin=J2-2 -Added Pin To Net: NetName=NetJ2_2 Pin=R?-8 -Added Net: Name=NetJ2_2 -Added Pin To Net: NetName=NetJ2_3 Pin=J2-3 -Added Pin To Net: NetName=NetJ2_3 Pin=R?-7 -Added Net: Name=NetJ2_3 -Added Pin To Net: NetName=NetJ2_4 Pin=J2-4 -Added Pin To Net: NetName=NetJ2_4 Pin=R?-6 -Added Net: Name=NetJ2_4 -Added Pin To Net: NetName=NetJ2_5 Pin=J2-5 -Added Pin To Net: NetName=NetJ2_5 Pin=R?-5 -Added Net: Name=NetJ2_5 -Added Pin To Net: NetName=NetR4_1 Pin=R4-1 -Added Pin To Net: NetName=NetR4_1 Pin=U1-44 -Added Net: Name=NetR4_1 -Added Pin To Net: NetName=NetR8_2 Pin=R8-2 -Added Pin To Net: NetName=NetR8_2 Pin=USB1-B5 -Added Net: Name=NetR8_2 -Added Pin To Net: NetName=NetR9_2 Pin=R9-2 -Added Pin To Net: NetName=NetR9_2 Pin=USB1-A5 -Added Net: Name=NetR9_2 -Added Pin To Net: NetName=NetU1_18 Pin=U1-18 -Added Pin To Net: NetName=NetU1_18 Pin=U2-2 -Added Net: Name=NetU1_18 -Added Pin To Net: NetName=NetU1_19 Pin=U1-19 -Added Pin To Net: NetName=NetU1_19 Pin=U2-3 -Added Net: Name=NetU1_19 -Added Pin To Net: NetName=NetU1_20 Pin=U1-20 -Added Pin To Net: NetName=NetU1_20 Pin=U2-4 -Added Net: Name=NetU1_20 -Added Pin To Net: NetName=NetU1_21 Pin=U1-21 -Added Pin To Net: NetName=NetU1_21 Pin=U2-5 -Added Net: Name=NetU1_21 -Added Pin To Net: NetName=NetU1_22 Pin=U1-22 -Added Pin To Net: NetName=NetU1_22 Pin=U2-6 -Added Net: Name=NetU1_22 -Added Pin To Net: NetName=NetU1_23 Pin=U1-23 -Added Pin To Net: NetName=NetU1_23 Pin=U2-7 -Added Net: Name=NetU1_23 -Added Pin To Net: NetName=NetU1_24 Pin=U1-24 -Added Pin To Net: NetName=NetU1_24 Pin=U2-8 -Added Net: Name=NetU1_24 -Added Pin To Net: NetName=NetU1_25 Pin=U1-25 -Added Pin To Net: NetName=NetU1_25 Pin=U2-9 -Added Net: Name=NetU1_25 -Added Pin To Net: NetName=PA0 Pin=R6-1 -Added Pin To Net: NetName=PA0 Pin=U1-33 -Added Net: Name=PA0 -Added Pin To Net: NetName=PA1 Pin=R7-1 -Added Pin To Net: NetName=PA1 Pin=U1-34 -Added Net: Name=PA1 -Added Pin To Net: NetName=USB_N Pin=U1-9 -Added Pin To Net: NetName=USB_N Pin=USB1-A7 -Added Pin To Net: NetName=USB_N Pin=USB1-B7 -Added Net: Name=USB_N -Added Pin To Net: NetName=USB_P Pin=U1-8 -Added Pin To Net: NetName=USB_P Pin=USB1-A6 -Added Pin To Net: NetName=USB_P Pin=USB1-B6 -Added Net: Name=USB_P -Added Pin To Net: NetName=VBUS Pin=F1-1 -Added Pin To Net: NetName=VBUS Pin=USB1-A4B9 -Added Pin To Net: NetName=VBUS Pin=USB1-B4A9 -Added Net: Name=VBUS -Added Class: Name=Logic_Analyzer diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-26-53.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-26-53.LOG deleted file mode 100644 index 6d4e450..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-4 15-26-53.LOG +++ /dev/null @@ -1,7 +0,0 @@ -Change Component Designator: OldDesignator=R? NewDesignator=R10 -Change Component Designator: OldDesignator=R? NewDesignator=R11 -Change Component Designator: OldDesignator=R? NewDesignator=R12 -Change Component Designator: OldDesignator=R? NewDesignator=R13 -Added Member To Class: ClassName=Logic_Analyzer Member=Component R10 100K -Added Member To Class: ClassName=Logic_Analyzer Member=Component R11 150 -Added Member To Class: ClassName=Logic_Analyzer Member=Component R13 100K diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 10-22-27.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 10-22-27.LOG deleted file mode 100644 index 93a9cec..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 10-22-27.LOG +++ /dev/null @@ -1,10 +0,0 @@ -Removed Pin From Net: NetName=NetJ2_5 Pin=R12-5 -Removed Pin From Net: NetName=NetJ2_4 Pin=R12-6 -Removed Pin From Net: NetName=NetJ2_3 Pin=R12-7 -Removed Pin From Net: NetName=NetJ2_2 Pin=R12-8 -Added Pin To Net: NetName=NetJ2_2 Pin=R12-5 -Added Pin To Net: NetName=NetJ2_3 Pin=R12-6 -Added Pin To Net: NetName=NetJ2_4 Pin=R12-7 -Added Pin To Net: NetName=NetJ2_5 Pin=R12-8 -Added Member To Class: ClassName=Logic_Analyzer Member=Component R10 100K -Added Member To Class: ClassName=Logic_Analyzer Member=Component R13 100K diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 11-17-22.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 11-17-22.LOG deleted file mode 100644 index 12af0ee..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer PCB ECO 2021-11-5 11-17-22.LOG +++ /dev/null @@ -1,9 +0,0 @@ -Removed Pin From Net: NetName=NetJ2_5 Pin=R12-5 -Removed Pin From Net: NetName=NetJ2_4 Pin=R12-6 -Removed Pin From Net: NetName=NetJ2_3 Pin=R12-7 -Removed Pin From Net: NetName=NetJ2_2 Pin=R12-8 -Added Pin To Net: NetName=NetJ2_2 Pin=R12-5 -Added Pin To Net: NetName=NetJ2_3 Pin=R12-6 -Added Pin To Net: NetName=NetJ2_4 Pin=R12-7 -Added Pin To Net: NetName=NetJ2_5 Pin=R12-8 -Added Member To Class: ClassName=Logic_Analyzer Member=Component R10 100K diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-04-05.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-04-05.LOG deleted file mode 100644 index 344c7ec..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-04-05.LOG +++ /dev/null @@ -1,43 +0,0 @@ -Change Component Designator: Old Designator=C? New Designator=C1 -Change Component Designator: Old Designator=C? New Designator=C2 -Change Component Designator: Old Designator=C? New Designator=C3 -Change Component Designator: Old Designator=C? New Designator=C4 -Change Component Designator: Old Designator=C? New Designator=C5 -Change Component Designator: Old Designator=C? New Designator=C6 -Change Component Designator: Old Designator=C? New Designator=C7 -Change Component Designator: Old Designator=C? New Designator=C8 -Change Component Designator: Old Designator=C? New Designator=C9 -Change Component Designator: Old Designator=C? New Designator=C10 -Change Component Designator: Old Designator=D? New Designator=D1 -Change Component Designator: Old Designator=D? New Designator=D2 -Change Component Designator: Old Designator=D? New Designator=D3 -Change Component Designator: Old Designator=D? New Designator=D4 -Change Component Designator: Old Designator=D? New Designator=D5 -Change Component Designator: Old Designator=D? New Designator=D6 -Change Component Designator: Old Designator=D? New Designator=D7 -Change Component Designator: Old Designator=D? New Designator=D8 -Change Component Designator: Old Designator=D? New Designator=D9 -Change Component Designator: Old Designator=D? New Designator=D10 -Change Component Designator: Old Designator=D? New Designator=D11 -Change Component Designator: Old Designator=F? New Designator=F1 -Change Component Designator: Old Designator=J? New Designator=J1 -Change Component Designator: Old Designator=J? New Designator=J2 -Change Component Designator: Old Designator=J? New Designator=J3 -Change Component Designator: Old Designator=K? New Designator=K1 -Change Component Designator: Old Designator=R? New Designator=R1 -Change Component Designator: Old Designator=R? New Designator=R2 -Change Component Designator: Old Designator=R? New Designator=R3 -Change Component Designator: Old Designator=R? New Designator=R4 -Change Component Designator: Old Designator=R? New Designator=R5 -Change Component Designator: Old Designator=R? New Designator=R6 -Change Component Designator: Old Designator=R? New Designator=R7 -Change Component Designator: Old Designator=R? New Designator=R8 -Change Component Designator: Old Designator=R? New Designator=R9 -Change Component Designator: Old Designator=U? New Designator=U1 -Change Component Designator: Old Designator=U? New Designator=U1 -Change Component Designator: Old Designator=U? New Designator=U1 -Change Component Designator: Old Designator=U? New Designator=U2 -Change Component Designator: Old Designator=U? New Designator=U3 -Change Component Designator: Old Designator=U? New Designator=U4 -Change Component Designator: Old Designator=USB? New Designator=USB1 -Change Component Designator: Old Designator=X? New Designator=X1 diff --git a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-26-35.LOG b/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-26-35.LOG deleted file mode 100644 index 01b2f61..0000000 --- a/Hardware/Project Logs for Logic_Analyzer/Logic_Analyzer SCH ECO 2021-11-4 15-26-35.LOG +++ /dev/null @@ -1,4 +0,0 @@ -Change Component Designator: Old Designator=R? New Designator=R10 -Change Component Designator: Old Designator=R? New Designator=R11 -Change Component Designator: Old Designator=R? New Designator=R12 -Change Component Designator: Old Designator=R? New Designator=R13 diff --git a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.drc b/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.drc deleted file mode 100644 index bec3cb0..0000000 --- a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.drc +++ /dev/null @@ -1,48 +0,0 @@ -Protel Design System Design Rule Check -PCB File : F:\Desktop\Logic_Analyzer\Logic_Analyzer.PcbDoc -Date : 2021/11/5 -Time : 16:01:26 - -Processing Rule : Clearance Constraint (Gap=0.127mm) (All),(All) -Rule Violations :0 - -Processing Rule : Short-Circuit Constraint (Allowed=No) (All),(All) -Rule Violations :0 - -Processing Rule : Un-Routed Net Constraint ( (All) ) -Rule Violations :0 - -Processing Rule : Modified Polygon (Allow modified: No), (Allow shelved: No) -Rule Violations :0 - -Processing Rule : Width Constraint (Min=0.089mm) (Max=0.762mm) (Preferred=0.254mm) (All) -Rule Violations :0 - -Processing Rule : Power Plane Connect Rule(Relief Connect )(Expansion=0.508mm) (Conductor Width=0.254mm) (Air Gap=0.254mm) (Entries=4) (All) -Rule Violations :0 - -Processing Rule : Hole Size Constraint (Min=0.025mm) (Max=2.54mm) (All) -Rule Violations :0 - -Processing Rule : Hole To Hole Clearance (Gap=0.254mm) (All),(All) -Rule Violations :0 - -Processing Rule : Minimum Solder Mask Sliver (Gap=0mm) (All),(All) -Rule Violations :0 - -Processing Rule : Silk To Solder Mask (Clearance=0mm) (IsPad),(All) -Rule Violations :0 - -Processing Rule : Silk to Silk (Clearance=0.254mm) (All),(All) -Rule Violations :0 - -Processing Rule : Net Antennae (Tolerance=0mm) (All) -Rule Violations :0 - -Processing Rule : Height Constraint (Min=0mm) (Max=25.4mm) (Prefered=12.7mm) (All) -Rule Violations :0 - - -Violations Detected : 0 -Waived Violations : 0 -Time Elapsed : 00:00:02 \ No newline at end of file diff --git a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.html b/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.html deleted file mode 100644 index f2a6684..0000000 --- a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer.html +++ /dev/null @@ -1,324 +0,0 @@ - - - -Design Rule Verification Report - -Altium

Design Rule Verification Report

- - - -
- - - - - - - - - - - - - - - - - - - - - -
Date:2021/11/5
Time:16:01:26
Elapsed Time:00:00:02
Filename:F:\Desktop\Logic_Analyzer\Logic_Analyzer.PcbDoc
-
- - - - - - - - - -
Warnings:0
Rule Violations:0
-

Summary

- - - - - - - - -
WarningsCount
Total0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rule ViolationsCount
Clearance Constraint (Gap=0.127mm) (All),(All)0
Short-Circuit Constraint (Allowed=No) (All),(All)0
Un-Routed Net Constraint ( (All) )0
Modified Polygon (Allow modified: No), (Allow shelved: No)0
Width Constraint (Min=0.089mm) (Max=0.762mm) (Preferred=0.254mm) (All)0
Power Plane Connect Rule(Relief Connect )(Expansion=0.508mm) (Conductor Width=0.254mm) (Air Gap=0.254mm) (Entries=4) (All)0
Hole Size Constraint (Min=0.025mm) (Max=2.54mm) (All)0
Hole To Hole Clearance (Gap=0.254mm) (All),(All)0
Minimum Solder Mask Sliver (Gap=0mm) (All),(All)0
Silk To Solder Mask (Clearance=0mm) (IsPad),(All)0
Silk to Silk (Clearance=0.254mm) (All),(All)0
Net Antennae (Tolerance=0mm) (All)0
Height Constraint (Min=0mm) (Max=25.4mm) (Prefered=12.7mm) (All)0
Total0

- diff --git a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.drc b/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.drc deleted file mode 100644 index a7e6ea5..0000000 --- a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.drc +++ /dev/null @@ -1,48 +0,0 @@ -Protel Design System Design Rule Check -PCB File : F:\Desktop\Logic_Analyzer\Logic_Analyzer_ASCII.PcbDoc -Date : 2021/11/5 -Time : 16:21:05 - -Processing Rule : Clearance Constraint (Gap=0.127mm) (All),(All) -Rule Violations :0 - -Processing Rule : Short-Circuit Constraint (Allowed=No) (All),(All) -Rule Violations :0 - -Processing Rule : Un-Routed Net Constraint ( (All) ) -Rule Violations :0 - -Processing Rule : Modified Polygon (Allow modified: No), (Allow shelved: No) -Rule Violations :0 - -Processing Rule : Width Constraint (Min=0.089mm) (Max=0.762mm) (Preferred=0.254mm) (All) -Rule Violations :0 - -Processing Rule : Power Plane Connect Rule(Relief Connect )(Expansion=0.508mm) (Conductor Width=0.254mm) (Air Gap=0.254mm) (Entries=4) (All) -Rule Violations :0 - -Processing Rule : Hole Size Constraint (Min=0.025mm) (Max=2.54mm) (All) -Rule Violations :0 - -Processing Rule : Hole To Hole Clearance (Gap=0.254mm) (All),(All) -Rule Violations :0 - -Processing Rule : Minimum Solder Mask Sliver (Gap=0mm) (All),(All) -Rule Violations :0 - -Processing Rule : Silk To Solder Mask (Clearance=0mm) (IsPad),(All) -Rule Violations :0 - -Processing Rule : Silk to Silk (Clearance=0.254mm) (All),(All) -Rule Violations :0 - -Processing Rule : Net Antennae (Tolerance=0mm) (All) -Rule Violations :0 - -Processing Rule : Height Constraint (Min=0mm) (Max=25.4mm) (Prefered=12.7mm) (All) -Rule Violations :0 - - -Violations Detected : 0 -Waived Violations : 0 -Time Elapsed : 00:00:02 \ No newline at end of file diff --git a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.html b/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.html deleted file mode 100644 index a87ddf4..0000000 --- a/Hardware/Project Outputs for Logic_Analyzer/Design Rule Check - Logic_Analyzer_ASCII.html +++ /dev/null @@ -1,324 +0,0 @@ - - - -Design Rule Verification Report - -Altium

Design Rule Verification Report

- - - -
- - - - - - - - - - - - - - - - - - - - - -
Date:2021/11/5
Time:16:21:05
Elapsed Time:00:00:02
Filename:F:\Desktop\Logic_Analyzer\Logic_Analyzer_ASCII.PcbDoc
-
- - - - - - - - - -
Warnings:0
Rule Violations:0
-

Summary

- - - - - - - - -
WarningsCount
Total0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rule ViolationsCount
Clearance Constraint (Gap=0.127mm) (All),(All)0
Short-Circuit Constraint (Allowed=No) (All),(All)0
Un-Routed Net Constraint ( (All) )0
Modified Polygon (Allow modified: No), (Allow shelved: No)0
Width Constraint (Min=0.089mm) (Max=0.762mm) (Preferred=0.254mm) (All)0
Power Plane Connect Rule(Relief Connect )(Expansion=0.508mm) (Conductor Width=0.254mm) (Air Gap=0.254mm) (Entries=4) (All)0
Hole Size Constraint (Min=0.025mm) (Max=2.54mm) (All)0
Hole To Hole Clearance (Gap=0.254mm) (All),(All)0
Minimum Solder Mask Sliver (Gap=0mm) (All),(All)0
Silk To Solder Mask (Clearance=0mm) (IsPad),(All)0
Silk to Silk (Clearance=0.254mm) (All),(All)0
Net Antennae (Tolerance=0mm) (All)0
Height Constraint (Min=0mm) (Max=25.4mm) (Prefered=12.7mm) (All)0
Total0

- diff --git a/Hardware/__Previews/Logic_Analyzer.SchDocPreview b/Hardware/__Previews/Logic_Analyzer.SchDocPreview deleted file mode 100644 index 28fde91..0000000 --- a/Hardware/__Previews/Logic_Analyzer.SchDocPreview +++ /dev/null @@ -1,14 +0,0 @@ -[Preview] -LargeImageOriginalSize=662000 -LargeImageWidth=500 -LargeImageHeight=331 -LargeImage=789CED9D4F8F25C775E5EB83E87B88F087D0A2D1BD1D40F0BE5CBDD0C20B415BB5A77A042F66404B2D7B2CA9E9526F6CA029A00DCCA25B43340CC100690D8501C6144DB5655B96444A346D496C4AE6BC5BAF4ED579F745E49FC8C88C8C8CB3F821F365E6CB3F919971F246DCB8F7FCFEFD93BFF8F62321C44639D73BDE1CBAE7EDF1ED1D0F2F1E9DFCE6B79F0A21368ADEF1F6D03D6F8FBF909E0BB179F48EB787EE797BB4ACE7F7CEEF173F07B11CEFBCF7A2D97BDEEA3BFEF48DE7CD5E7BABD78DFB5EFA1C4AD0B29EB77ADD2DD3EA3D6FF5BA0D7DC3B585DDEFD3B3BBC5CFA3042DEB79ABEF79AB987DDEEAB3DEEA75EB9E973F8F12B45AB7B7ACE742B482DEF1F6D03D6F0FE9B910DB47EF787BE89EB787F45C88EDA377BC3D74CFDB63A89E9B7F816D27841022CC1AEBC9B1E794720DD65FBDA66B889DE3DCE73937B9F47CC8364208D132A8276DEA7DF14C9352C651615FFC9B8F83FDC2AF1B63F4E013C61A16DA07CE93758FAFC5C03E8760FB83FEE2BF7C0CCCDFBA7DE7E05C787DAC5CB93CFC3979BF765F4E4335B166A4E742089107D493310D351D0AE955DF3EA1B1AC8B58C71A091DB52996F5E9397E431F5967FD79208603B6E763D8316DCAE7C8DB606ACBB02DEF97CF2156AEBE8C0DFB0F6B3BCECF9F079F77E9E7642EA4E742089107AF3529FA1DDAA7D721D6ACD0F143C7E4FF77C5D9899D6F48076127779D3F6B35FF27745D7DE5CAD73EA6ECA6DE835A909E0B21441ED6D87FBE0554AE7BFA9E3FE9F9B2FC70F72DFAD6AE2CBFBBFBC6FCE9EE9BD1A6989FB2DFA76FD837F0DB97D3D3B327BBEFD15F5E62F3B6DCE64B5F7B09ECDAEF9D3FBFBC7E9B025B6E943E3FB12D504F427FB82F9B978DB11759CF783F6CFF631EEDCFBCCCB6ADDD3E65FDE13E056E07C1746C6C3894E51662D048CF97C7F41C9A8EDF53F709CD864E41ABFCB44550365EC75B2E13310FA827790AA019D09DB1FB651BAD6BDE2F1BD226BE76587FD05FCEE569BFADDF1FE53C76DF5B89112B3D5F16B3C3BFB37B6E4CCBCD5637BE9BE1BB10F6B901FB1CB67AEBF639CAC3F4DCE6659F8BB908D9E75897AAA9ECCBC5BE6DEC4FC6BEEC7E197CE34A974D8E72C53576D9D3A9E58CEF82D2D73A05E9B91042E441FDBCF3A072DDD3F7FC49CF97C5EC71B3D1619B973E1F21443EE6A82755F7D675BF4AB2453DE7FE68F455E337DAB9A1A9B60EBA8A6DF93F98C7B639CE0DC7B6698E7D32A13E7471D81F61F3A5CF476C13E9795D6CAD6CB7ACE7D04BD664E8796C5BACB73E6EAFEFB9F43CF73E016B16D36ADFB9E1BF6FF4AD23E6447A5E175B2BDBADEA39EC5FFBCDB6B56FE7B66DB01DE6A1EDFC1BEBA79EDB6BBBEF852FDEBE73F2EA6E6ABCBEE3E5EE581FEFCEC9A6BFD91DE3932B3FCB4FAED63D737D288F03F722A6E52DEB579796B75A26625E7C3DE9E396A5F850D754F7D6C6D6CA768B7AFEF0E2FFCE428E738BD9E3D0F36B2DEF78EF87D8F4D22A219627544FDA321FA775EA3EC57CF7AB66B6AAE7B9F6F5CE7B1F66DD67AE36FBFE32E8D7F3EF5C7D3370DF02E6ADDF8197DB6F9EFA7E8C503F428E717842D444A89EE43150D2F375B1B5B2959E7773EBF65F5E6AFA16F51C7E02EC17E8751DC7F3FA8DE5EC57C8CB72FB06085103EA3FAF8BAD956DCB7A8EBE2DE4FBF1398A0E73146E4FCF0DEFDB0F9B1D716859E7FDD4FB19F0B25CE30184A809E9795D6CAD6C5BD6735C536CDC3E5FF3BE0FFD709B678136E63E627EF3B959F3D8F6509BFDD651DF431B48CFEB626B65DBB29EB3EF29EC73CE77D0659F633DE72DE43C7E9C2380FF279BB5CD3268F19A5B84DF7FD42D88D78AF6BFD47D62BFE88FE7B644F6B9E37AADF638AF4BDD2F2E3BBE4FB8779C5787E7D7A68B2DEBF9947DB27EF33BCCF19343E5564BBD0E7F7BF071467BBF9632C8498BD7DC22AC0F9C7B85C7ACA5EE13F3967704F33E96B94D6D7D6ADE97D6E0B245BE36942BDF43CEFFC236E0DA74B1553D7FFAC68FAFB735CCE7CD96D93C4FBBF6C93ACECF0396556D9FFB7A60F73B97A65753061969F19A5B84EB845C7950429A13DA6FAAFDDF32FCFDC5F5B72FD7D0FC1A6955CFCD6F1DDBB286EFEFD987473EEDA1F1E86FBEF183D5F69FFB18342162B9843E89D810EF0ED86728D68DA7456D6BF19A5B648EBC21CA45321FB5956DDFF3D7A29E633DC789E179D376D6F7D03E6D3D6B3EE6B11CE3D63DA17A1DF15811CF0CBFE1A36EB1DFC6C61C1FA21F2F23DBC496E73A6E8BDAD6E235B7484DF5A4D81E2DEA39F4DAEB36DADDA1CDACC9213DC737C0BDF3EFEDBEF3FED7C13781FD0E697AA85EF739423816696A6CD241FA116843BFFC3DA14D497AAE6B6E999AEA49B13D5AD4730F6C6ACCDB14FDE95DFB647BDE34DDC7860DFD27A6E7ACD75ECFEF9D3F9F47CF8D9D76B3DFDB142D1F7ADC16B5ADC56B6E919AEA49B13DA4E737DA0D5D675FB9AE7DB2FDCDEDED5DE7E0EB756B5B472E156E6FB76598CED5DEEE73D6E428FBB5E939F73DC5FC0596407ADE0635D593627B48CFF7F8BE70BF9F903FDCB38BBF1EEDA7962347DB1086EA2ACE2797DE0CD9CF109FB93928E99B5AEA9AC5B2D4544F8AED213DFFF4BA0F1CF33C7E2DB64FDBDEB641BF396FBB0686EA39E2962DA9E7A16709FFC39463CA962ECB1C84AE19ED233C951D5F3735D593627B48CFD3F7C9BA5FA39EB366E6D2CD297AEE35FDE2F69DCDC449EDBA661F17569A5E2F35D593627B783DE7F8A5BC5D4DCFE9583D872F1BB7B9C35EEFDA2734BC563D2F75DCD0B3C43A067BD5966DD93E671DB76BE67C37A5CF57E4BBCF42CC4128DEACD773CCFBED6A7A4E53DADB31B5F6F3D03E72F59F2F95A763CD7AFE6E609B503F3EB73FC357700D203EC01862D78C76762E3FD9E7F552533D29EA26A4D55ECF112FC7FB02D7F49C8ED573EE03B7798C3FEBDA27EC79D8F6A9F6F95C75F7AAF4DC8D89B3F8737E8C1C6CF2983D6E3AFA579F7EBA0A068D1DECB9E68FE95B85757D2BED11ADF2F0FAFBF326663BCF5BBD5A729C85D80EA1BC61EA3F4FDB276B39A629FB6D42CF7B607F30FB8D1CEC87E55F999E0FB8669EA2EC649BD78D6FEBE478E0F85D535D2AEAA2753DF7F1E162FBE88A27035FF794736D42CF7B6CD5B7AEEA3CD3F498A6E5D0F32F3F7F7EC91AECF3BFBBFA66617B5C7A5E3FDE3E47FE4DE4D8B4F9B5E7F410F5D2BA9EFBF8EDB17830A1FEF3C7177F735D07BF7AF695A4FEF3507E961C6DAEABD27347A82F19BE04D0F4E3FB344DCF4DC71FBC7871C9544D4FB1CF63D7EC6300C817AE6ED0066A394B0DCEF7C1B9368548A1EFF9939EDFE839DBD97DFDE79C8F25D5363742DA95438BD7ACE729CFD2543D371DFFC2A34797D8FCD27A5ED3FB2384A893D6F59CDBDB39379AD7E8AE7C2C53FAEBA5E743EFE974FB1C7A5EC23EAFE9FD1142D449EB7A9EB2CF77DEDBB3D7F2E3D8B063909E0F2DFF3CFDE76873979E0B21B646AB7AEEF3A1A1EF1C53EFE3766C9FDB3E7E7CA9EBB9FDDBA5E7A1FF4CD373D8E69FBF7F5F7A2E84D824ADEA39B41B7DE03ECF699F7FBBE9B9617A3EE55C5BD4F39473CBA5E760693D97DFBA10626E5AD7736F9BB3BEC7F6693A7E7AB6B7DF6FDDFEDECE3E4FEF43979E0FBDA7D3F53C342F3D17426C8556F53CC73E114B2E777C38E979A8FCA7F79FE7B0CDA5E74288B5223DFFF4408FD946E7316B7DF164649F0F3F6E0E3D878F3AFBACE7D06A0363DB6C9FD6DFEEFBDCA5E7428835223D8FFFCFC78B9B231F4B289E4C68598EFD0E616AD9738CB718C8A5C6F4C551383D7B10B4B5A1B739C6A1F96F83DFBB73E772DF9FBB7BF7603B3B97B171205E3DAFE7FD1142D489F4FC26AF1ADBE53E274B2C5EDCD498326BB2CFD76243DAB3769C0FE8ED03FB193A3BD5579DB1FD79EDE6B680907D6EB13B2DEE575F8E8D1C31DFC536B067E1E91B2F4E90ABCFE6EF9D3F3F49CDDD2704909EA7EDB32F3EEC50A4E7C720F6F56179AF371FCBB0F7477A2E6E9E83D3B32707BA8EE57A4EC414A4E737FDE76663C7E2B8C6DAE2D94E4F3957E9F93135E939726BF4BD1FAAA78561FA6D3638345C7A2E72223D3FD4666B770FED23D47FFEE61B3F98DCCFFD5DCAA7085AD7F31056EFDDFFF6DBABC0CE65F8B3B5AFAB618FA93D55083117D2F31B9F768C3D43BF7957FED414B8CFAC6BBB527A5ED33D16620B585DA06F3C910BE9F9617B7B28177AE837C6A8C16FEEE67F7B7B0CFE2D98723B9AD96A5DE7233D0F636D1986E51435FF7D9F57166D1DB60EFEFDB60CF3F63FE464C5BE729577B83CC37E4FA5CB51AC036E6B1FD3E623440CE979DA3ED91F0E71656ED61DF68B793DB73ABDAB5E979EC7AFC9303D368D0E6DC339D48D8BDB772E751CFF43B9F0F8BC39F59CFB4A71EF4B97A3288FAF1B7C1D21440AADEB39DBD918B3661C6B747CBCDA8D1FDDBEEDCCEA6CAFE7FCFD0D9B3D764ED2F36358A3BBAEEF8757E3C6A0F73CD6DDD619B62F683C4FF33F8737DF75FC4C942E4B21C436695DCFBD9FBACF85CEDB4D8D27F3EAD9FD932FDEFED2C9EBE75FEBDCCEB723A790A2E72F2BBAC742D408B7D7C84617B9695DCF43F67928267B977D3EA4ADDDDBE7369DB3CF2C55CF61BBC28E85ED9AE31B4308D10FDE359B725B925F66BFB98DA9F4796F15F6B341DDC8B617C7BCF475262F87CFCE9CF7AA753D4FD9A7E548BDB1D37F1CD4F4D07738AF9FFB5B7CEC33635ACEF679CEB60221C470E0C369F3DCBFC4BE9DBCCECF8BFCF703E5CF7A1D8A956D53BB47DED796FD7DA4E7E318A2E73E4FAA8F23E373ACF87DDEBA0D3DDF6F6BA0FF1C638DBBFCDBD1CF3E57198C7E6676CFA9E9F9C7573EE0FC8D294D176239D8A7C374C08FCB607F101EB751FABCB70AF439349E06F784C7D0B09E735DCA3935E63AD756F51C36B5CF838EFF1FDBDCC7FDE7B76EA7C5845B82B1CF8CE9F8A57D1E686F2F7D2D42B446A8BE99426AFC4AF169B0FF74AD3E0FADEA396C728EBFEEF5BCCB3E3F3D835D7FEC3BB70652EDF3DFC81617A2289C072A1773F441B682C584ECCECB283D9F9325FBCF43BE736B20D51FEE63378E4BF6B910CBB244FC0C311CE9795986B6B7DB147A8C65DCD63E261FCBDADE9729E3D5B82F487A2EC4B21CD7358F0EA6C85764397A7DBF612CC6E5DAEAA79A603DB7DCC93E7FB2F47C5E863CBB3EEF4A68ECB97F1F18FBFF1FDCFEE3AB71E55F3979FDFCC1E4DC2C3949F18FC17835C454959E0B313F56B71EF23707EB789BA757E3D46CDE74FDF4EC4F8FFA0A433606B72582C7BBE3CC51F72CE53F1BF2311FCBB3A3B23FE6EEFD27D7DAFDE0C50BE9F9E2EF47B79EE37B969FEF909DDE35FE7C8B288FB710E539D4E147D7F6F8BDDD7736EBB94D4F77B644C8F7673FDE26DEBE3806F883D512633EB78F9A6F6FFFC2A347D2F345EFE7703D671DE7F8ADDE27B4ABBDDDDE1DB3D7F9DB00B1694A97C5B8721BA6E7D27421F2601A7DCFB5A5F9BA66DFAEFEE260DAD5DE6EFFF1754FA84E8CD59378C79143C82FE75CED257DBC7D9C0FCE55E7F3CC733EA4B1E7CA7A6EF6B9213D5FF23E2F9B8F85C784F86FE5D26531EE1A87EBB9723C0A311DB4E91E2E9BBFFEF2FD8987EB7E799D0392DF731EB7B5DFE7DBD771344AD407FEBB82CF175ACE391352BF3DE40F5796A1EF037FE79E9EDDBD6ED7B279B473C5F6E9C77586FADEB76C9FF33BC1DFC178B76D1E7175A4FD42C4411B3AE0BA0663D7ACBD0F6D80FEFFA1B1E67EDBD0FFFCB838D8B0A1BC80FBF37C71101F0BB67BA97678CE71E4FB047C9DE4AF63CC71649F9765A89E7B5F13C65FF3FE5D39DCE659C007ADB41FDC145E0F9C7F5F0C059F0B34B64DE9674288B5128AFFC2EB39D7634CCFB9DF30B49DFCE1F2F8C3C93E2FF37E0CD98EC77D78BF93BE36306C63FFB579FBEFE75F79E5726ABF61EF9F46F274D74AACCD2AA4E1297D5542B4442876C571FFF98FA3DB6239EB75A82D3DF43B669F73BC6A9F47CADBC425DBE0706C3E5F9C47C8FEE058DC638EE3ED73E9F9B22CD37F7E337E046563DF7BD0EF908DBF05E40F27443EE07FCBCB96A8BF907322B42DDAD58FCFF5B80DBE645D106A23F4EBB9FF3CF57CD57F5E96D8FBC0B1DC42F1DD908385D7C5F6E9ED735BF616B5D5C366F7BEABB5A3FE7021F2D1679F631E7553974F0EFCDC87D8E7A16DB8FF9CFB9E6FF6B1B785B18DAD83DF5C09702EBE9F6F5F1637E788F34ECD81253D2F4BD7F72DFB8B20A64C28B64CE87F9E37DFF8C1415FCC7736D6B61EA29631A842D4C2D0FEF3BE7ACD8F97EDCB2795D27FFEF862BE9C906B45F958CAD2679FA3ADC960FB1CBAEE633184F6E9F3AF196F5554464288F2846CEE50DB384F4340BF110BA3CFBF3D75ECCD9AB46B296ACA35D9929EE7DEA75F56C3FD1642AC87506EC652F5D7B0FDB4A7E71C3B7BED75BCF43C7D9FD27321C454FAFCDB73203D4F07F5FA9263F152313D47FC943E4A9FEB50BADADB39861BB6E318AFFC7F1FEFB5AFFFA985FE7321443EFC9870DF7F1E5A7FF8FF1B2C8FB34D1F5EDCACC376FBFF7E7ACDE9D98F4FFEE0F69F1EF58FFBF3F3FDC43C36ACA698EE5358537B7B9F469FDF3F1E6B1DDB4FE96B197ECDB138863771DBD81F0EFD527DFE707DC75DC3FD1642D44DA8FFDCC792BED9F606FB6D9ACEF3B17D8650FD553F2DB5B77BDB3C345E0DFFEFEBD3B2DFF81E007A1F84106308F9B879BBA22B9ECCBDF33DFBF5FB79683A749DF775F3FBE67F20567FC5FCBB5BB0CD6BA3253DCFBD4FF59F0B21A6D015BFF5E4E4CBB31D87DBE5415FFDE563AD952E3B714C4B7ACE76796CBC1AD6F5C593098D07959E0B21C690CB4F6DEC7152F47CFF3FD9E46BA6253DC73AC5931142AC9550BFE054868C376F3156CCD66849CF73C693917D2E849803CE53B6649D121A8BC6F953918B05F32D8E5D5B3B2DE979EE7D7A5F16E9B910622A3C76EC876F2C6733C7729AB07EDFBAFD28BAAD284F4B7A9E331F0BFBC303E9B910622AA6E125C63CC7F49CC79EC3464FC93B2AE6A7253D47DC18B4AD8F1D7FEE7976F1D707FDE7DFDD582E3521C4F6411E54CE5356FA9C441A2DE939F209B27D6ECB63F1E1FAF6999AD3400821D6008F3DB329B4BDF47989345AD273AC635D87B6B39E0FC991108A27238410B581D830ACE3D2F43A694DCF73EEF3D6EDBF2C7EAD4208910AEC718E1363689C799D6C51CFBBF204A760B67A689F6A6F1742D40CC69F71FC56D9E6F5B2453DDF9F6FBE580C3E66B2104288FAF9F4E4E4E0F76F6FDF297E4E53D8A29E9B9FB981F11E36F6C362B7C1FF5CE3CA841042B09E9B967B7DAF8D2DEA39C68FF1384ED373632D796C8510429405FAFD9F9FF9CCE5BCF47C7D98661B360FED86BE637DE9731442085116D36FD8E5D273218410A23C1CDB0B3C74BCBBE325C13A0E5EBA6D9EB97D3C0B1CA78FA5E2F64ACF851042D44E4A3FEAA53DFEDE8BC9F63962EB61AC5FA9F17ED273218410B593ACE7BB29DBEA29C7C6F87DC4E5C138C0A5CB407A2E8410A276A6E8B9014D4F39B6D7F3527173A5E74208216A67AA9E1B2F13758EE3F1B08DBE74196C51CFCD7F9D7DD9E1CFEE7DDEB11DC6B4718E429EF23AC69671AE626C8F7D627DE9F2104288AD13AA6B7DFDECB7E3BA9DEB78BF8CB75FF3F8A82DEA39EBB05F0E9D672D0EE19F078B45C37AEFB7E571EDDEA77129DF4621846895989EDB946D2BBF9DAFB7799E97611F16C7A4F4B5C6D8AA9EDB94B5D7DF2F5B671ACDDAEBEF1FDBE95EE3F9BFB167878F55BA4C841062CB74E979C84E07D0671F4334A41D6B6F77DDA29EA3BC6DCABAEB75DBDF279E727BBBB7AFF99EFBF9AE630921849887503D8B3A99D7FBF6766C8329F799F2726EA345BDBF36B6A8E79FBBFBE4E40B8FDE6E0AE5441242B44C0E7F38E563591FA66F7FF5E9A74D213D1742B4CC543D573E9675223D17228EEF5F42BFD49ADB1185E8638A9E730CF7D2D73105E979193E7FFFFEF5F40B8F1E9D3C78F1E2E4CBCF9F5F125B6FF336B5DF213D7FE7BD17D73186DF910F9E88101ACFC1FD8C42D448AA9EFB38EEA5AF630AD2F3727A6EBA0C6D8666633EB41EF3D07EDEDF675FF9FDA3DC03A767770F7E97BE2F621D780DC7189C25F34608911BEF8FFCD6C53CF9581E07BE87FB503E96746AD0F3CFDDBD7BA9D936359D367DB6DF36B5DF58EED7E3BFD07EB6CF719FEEED9E6B3C7BF7D47E2A84688092F6B9CFC7A2F870F9A841CF7313EB3FAFE9BE8965F0F687E79301F1324AE49A10A28B92FDE73E7E3BF47DE932909E9721D48E6E3638B7B9FBF5DC6F1EB3CF81D9E5E84F2F7D3F445D0C89618DBA0B3608F45D7E99A21425FDDB437AAEFC6A79A841CFB96D1D5ACD7DE6A1F5DCEE8EB677A0FEF3ED138A353C04FF5CFCEFDD73F1A37FFAC9C9FB1FFEFBC1FE7FF2B30F2EA7AFB9E766DF67F8FCBACE427D65DBC20E818EA3BDB1745989F648D1F3DFBDF2CAC1EFD47C2C6B417A5ECE3EF7B637349AB5BB6BBDB7CFD15F6E3A6E987DFE54FE4D9B2197FFF9C7BB67E2FDFFF98D938FBEF5DA413BFB8BAF3EB89EEF3B36E784949E8B35108BF7DA171F4EF958D64D2D7A0EBDF6EDE81893E6D7731B7B5F7B3BC6ABD574DF44374B8D271BA3E7ECFB232D172519928F654C8C77E563590735E8796ED47FBE7D72E9799F3FDC103D17626DF4E9792CC682CFBBE5FBB5FC3ACEA5B936BC9EC7E291D4A40B35E8B98D39C3D4DBE2667B87D6639C1A7EF3FE4ECF1E5CF799036B6B575C99ED10AA43306E7C4CFFB9F58FFFEBCF7F71F2FE2F3F3AD8D7DFBEF9FDCB69A8FF7CADF59710A0AFBD1DEDE4BEBDDDC74BC472B4B7FBF56BD173ABDFBD5687F43CF45FE9795E42F1626C0A5DEF8A27C3B167627AEEEBE39AEE9F08D3657F8CE583DDFF7EED6CF28F649F8B8AC9918FA5267FB8509D1EB3CFFDB635E9410D7A1E8B2703FB3B164F26669F737B3BDAD9F1FD56FA7E883CE4D473B5B78BAD3155CF1157A6F4750C05F53BD7F1EA3FDF06217F38D9E5DB62889E0F6D6FFFE79FBE7FF2D1AF5F1EFCF7171FFDEA72AAF6765123CAC7223D2F4528DF8A5FEED7C33EC7D874AFE7F6BD667E70C6ADDDF3A978AFDB62A89EF7EDE772BCDA6EBB0FBFF1AD039BFC47DF7C28FB5C548BF2B148CF4BEAB91F5F8E36F8AE783298F7FBBB75FBD8A6E238EE35DD3F1126979EF7213D1735B2543E9667813630E563998F1AF43C144F867DDC63F1647C3C58B6CFD1C68EB16A8A25B32D72DAE7EA3F175BA3A47DCE31181067A9441948CFB7013F3F687787BF7BE9FB21F290A2E7B178AFFFF8275F3BD2F0EFFFD7FB97D350FF79E96B17A28F29FDE7ACE929C7F6F1DBB16CE932909E9701B9576083631EF1E1D03F1E5ACF795BBC9E9B5DCEBE7035DD37D14DAA9E8F3D4E4D6376840025FDDBBD9E237EE2D265203D2F83EF0BF7FDE4D0F0A1FDE7A767F70FE2B7FBF99AEE9F08934BCF53E2C309B1764A8E3FE77CE725631F4BCFCBE97948A37979573C19BFBF7BE74F8EE2C92836DCB658CA3E17A246F4AC4BCF4B8176746E4F07ACDF7EBDADF36DED86EF3F67FFF6D2F743E421979E238E25AF575DB85E60EF710E3BE4A9B5DFCA39BFA72F7EBBC5460EE546533E967553839EE7C6BFD38A0FB73D72E9B9AFB7D6128F5A8461DD0EE5A8959EEFE97A3F2E6EDF896E037DB6E977AFE275782DE77167D0F5D2D71B427A5E8658BE158C498BAD67BBDEEB396C72203DDF1639F49CF34FF87C13A5AF4FC4B1F7DB6C72F858C13E2FE577B54642EF07C6A4E3B9F7F6B9FDC636BC2DEB36AFC77BF3DD95C6E9929E9721968F053E70B17C2CB13EF4CFBEF2FB477164144F665BA8FF5C1818E35CFA3CD646CAB3FEBB575E39F85DBB2FA8F4BCAC9E733C571E97D6B53E945F2D968F656A4C19B601CC26808DC0ED7D6219A4E782C74395F09F5E3353FDDB11C3BDF4754C417ABE0DBC9E43C7A7DE376839F4FCF4ECC9C1BAD2F7BA2572E939DA1291E339E42324446D281F8BF4BC34C8BBE2C79CFBFC2CA131E9213D47DB3AFACEA7C6870BD9E76C2394BED72D91D31F0E53F6F911EB86FDE0BC4F9C503E16437A5E5ECFBBC699DB7A6CE397F17EB8FF1C9CBAB89D53CBB5548C04B127A79EC33F487ABE7EBC4F3B7CE3F8B7FAD397CBC7F2F842F95896A4263D874F3B341B7DE7D0EED8FA503E16DC27DCABB5E464E1F65CF61DE571D03C0684C74F719B70EBBA9373FC39D6A9BDBD4E64971FB3A67C2CB64CF15EF350939EE762EE7832DCC63EB62EC17B66DFCF36C693BF59A1E96C2F623C28BF9F8A7BB25CBCD74F561C2F43EC919E1F53B2FF9CDB49D07EC2BE464B213DDF06A17832B9F4DC6B794A1B1FB73D995E43D76D9DB717396E03FE0FFBBD655B7229FFF6DAC7ECB480F4FC9892FEED6BF16D909E97A52B7E3BC77A8D8D4307B1FEF329F95842FD769E21FDE95FBCFDA5933F3A7B70B9FDABE74F2EE70DCCDB14F3D806BFEDBF066FDB774E39DBB97C3F7349B86D23B62CF4DB3F17960FF547FFF49393F73FFCF7836BFDC9CF3EB89C86F2A596BEF6DCD41E3FE7F145DDE73F07297A9E6BFCB9CFC76253B5B7E7A1263D0FF9BB31317FB9BEF87073DDAF946FCEA5EF47CEEFE235B5EFA7D8E7213EDE69D9FB5F7D70F2D19F7FF3A09DFDC557FEB899FC6A6BBAAF2D9EBFCA641EA4E7E5F53C9423D5F41ABE6FBC0DAF8F69D89CF9CFA5E7C3B0BE332367EC9D5C7ADE87F47CFDD47EFE4B95896FAFF2ED3288DDCA715F433160B12D9695BED618D2F36D30573C99E3E7407A3EB49C72F701E4B4CF5BCF7F5EBB1ED67EFE4B950996A1EF29F4BFBE7C2C9CE7007ABED6FE1AE9F936F01A86DCE7F7327F4B4ED573CE276363F1900716796742B9603DD8DEDA2D787CDF527A1E1AE7EAB9ECF33FBB7FF2FAF9D72EA7F6DBE6E7EE3F0FF51387FACFFFF5E7BF3879FF971F1D5CD7DFBEF9FDCB690BFDE7213F83D2F5D6D4E7B275BADE55E56339447ABE6E96F2A57C78F1E4A8AEEFE30B8F6EFA06B8CF20945F2614FB2E04F43CF49FD34BBFBA71E7F8267D7F7B86D41B1EC4D2B3798C0F986AA3A79ECB11BBFAE883DDFF7E7D7168937F74D1AE7D5E9B3EC6CED7C61A7EBC52DBB1549974E1FDD96B7FF6A5E7DBA0F4F8156B0740BFFD3BEE1B38649F23560EF2CFCC699FE39C723DC343EA8D583CAFDCC79D43876AAFD352CAB2663DB77156B867FFF999CF5C7EAF953EBFD2653214D673C495297D1D53A845CFDF796FF8B6D2F3E561DF3BFFAC94EE3F8F9D572ABEDE088D69E33676CCE76E231ED2DEFE56A02DC2DAD37FFED50727BFFAE6C303FB1CBF5B6D6FEF6B9759137C7E9763AE48C32FEDF306357D8A9E738CB8D2D731855AF4DC78FAC65ED76D7AB8FCF9C1182DD60FB4C5C286834D07FF705E8E7E5DF62187CDC8794B79FB583ED3D8B8324F28DF0AFFA76F3D6B18CAC1583ACE2B8E895C30BC2E763F86944FCC3EE7317E5DB963716E3C9DCA10DB8E7DDAE1E39EFBB8A95C8E57DBEDEBC36F7CEB40CF7F44FA5EFA5D9F9BBE7B58939E5F62FADDA0864FBD67CAC752968717D63F7A6337DCBA7DE7B22DD5A6B6DEA6BEBF96DB7843F94EB09E3594F522343EDC6B0A6B0B3497DB94BBF49CCF0FDF1AF82E088D3FC77ADECFADDB77AFF5149A8A6F9C9C36D6E380BD37A6FF7CECF74E8CDCFDE7CF4696435F3DC2F176A0E55373D92CA531D2F30AF57CC6E3186BF601034BE563195B5718CAC7728CB7CF799C75977D8EFADE34C0A6AC97ACF7A16F006CEFF5DCEB6C6C9F76CC2ECD0A7D6384342FB43E669F232E9CFDF67DD97362C70A1DCFB7B7E33E84E2DC0DA52B7FACB785510EA1BEFD1CC4F49C73CB225743EEE3A4A0F16ADBD7F3DF5ED937C0FCE452EE2B6BD2DA632D97B4CF7D3E965239EF6AD173D371EE43BF77FEE8E4B357B1FABAFA6BB96D1D362D74C0B7ABB30DC9BAC1FA8AF5D82FFF0F9A8EF598EFB2CFD9260FD9E0314DEF8A27C365B2F47DB3EF882E7F382EDF503BC3D0F6765F4643CA62AEEF9B503DF2176737E3D36C3A75AC9A31649C5C8850FFF9BFFCECFDE377EC1FF665A3FEF3707FFA9AC61C8FD173C4259FA2E718A755FABAA7944988B9F2B160D9D26550939EDFD8E57B3D471BBBB7BBBC9E739B2CDB757EB9D709EE3F677D1EEA873DD4CEF46D00AC737DEB431A86B2C8E9D33DEC99EEF787E3FB915A863E465EDFB70DFACDE72A8F503D62FE6F3C5E8DA76BE0C38B639BFC830BD9E75DF7744D36FB203DDF3DEFAC535BBFAF53F4DC98E2DFEEFBD772F9CC8CA5163D374CC7B9FFDCEA69D3749B375B3D36DE39D4AEEDFBCD43F69EB7E3D14ECCFBCDA5E7A1F31C938F057DC6686B471E16944F2E1BEB69203E09C3C7BBB91FE1F16A53CA30E40FE1CBC2F7C59C06EC4EF078A2ADE79F55D3731EAF66B15FA1EFA5E9CD97BAF27ED21CD4AEE7AFBA67F999BB87E6F36E63D7B81D196DEEE0DD8EF7185C7FDFEDBE0DF07FF4D7D87312DA47CA3B94C3F69FAAE746AE7C2C39FAD752A851CFD9BF1DCFD0A19E1FF69F9B76C37F8DA7DC0F1EF26DC3729B67FFAB9C7AEEE3B3632C36742FE40F17EA93BF77FEE440CFE7EA2B4EC1B7B7A3FCA794238F3FEF6B6F2F01EC737CA7B35F9C989721E55CBB9E0FB1CFD9369F6A9F9B969BA643CBD718B3664DF7A714B5E8B9EF3FC739F5F5D786FACFB95F9BED5F6E63F7F6B1EF33CFD9DEDED5171FF3D91BD27F1E2B9FB930DB1DC4EE07DF8754FFF6B1EDEDFCEC2EF51CAFB96E413C4B9CA7CF355F334373DFB4A0E736655FAF52EDEDDC9F3C676EF0AE7B86D8AD5DFF435B01CFF332EC63CDB1816BD573EB3F47BF68577F6D2B84E2B71BA70B3E7B43E2C395280B3C1F31FFFB395853DD1F3A37AEB7D67EBE63909EEF617F3868FA583DB7EF3E8E7B9EDA26CEBE62DC66B5449984B4DAD3978F857F735CF7D2CF40885AF4DCC078356B73B7F3E1F8296863B665AC1FDC5E8E29FBC4F172B403B38DCEFFC77F116314FBF0F146C780E3737C15EECBEF5AEF350C7DC55616EC2BB8D4FD19A2E7BEFF22A5BD9DE3BD8EF16F5FB20F62ADEF3BEA67F82BA36E5AAB7D8E717FD002C0FD957E7BE9F9F178B5543F47CE25967AFD7C4F70CF96D2738C09893DE7CAC75296D3B3BD6DCEDA651A6EFA057D0F8D3FE77E69D66C9F7F1C9A8DFF427BBCEF5C573C9331F8E3B3FF37CE2FD6B7CFFBF9EC2BBF7FE497E2FDBF72F8C3A5C593391E7FCE31DB53BF8372C69399E20F37977F8F40DD7363DBB13684C60571AC7CC6F7013D76F559DFFAD8B2522CF96D81E7794DDF33B9CAE47757639E41ED63006AD1733F5E0DB6789F3DC8BE647EAC14DBD9ACABB1FE596F93F37E72E939F7D3E3FCFCB9B14F40C826B5F2E0F8AB4BDEA7509C59AFE7ECCF9023DEEBD07C2CB1F313EB85ED73B3ED58AB43FEC331FBDCBF07637FC7969502DAC5ED2D7DEDC0DE4EF5BE136BB539C796C918D8BF1DFE83A5AF630A35E939FFE67153A5FB6BD740AC8D3977FEF394E7642DFDE7D65EB17479AC11D4E1E813DD525B426B7ACEBFD12EDCF51F6E3BF6FB6A59CFA7C693590BB5E8F9FE1CF6D37D3FFAA10DCABADE174F26B6DCC77161FB316443B3DF7BAAF684E2C5C0061DB2DE6B18CAC2E6978E2763C70BC5608BDD8FD4B676DF7E32341F4B89F68A3512F2E12D7D4EF99EC1B0AF550B7A3EC43E379F2FDB0E3E60ECEF567B3F51AA9E6F2D1F4B579C0DA6F4B91AE83FB7FE72ABA76DDCF971FF79773C191EC3CDEDEBA1D82DA1F827B1FC2E53F4DC8F790F9D9F5FCFFB09F59F5B99F0BD9DBBFF1CF17D7C1E98583C19BEEE947263BF08D6F4583C193FDF6AFF39D7DF5BD37323EC27B74D3DF73ADCE5D7E8FDDA78CAFE91A5AF2D95A5F2B1A4D415B9CAB54FA3CFEFDF1FF49CAEE15966FB9C6D50D8A1E81BEDCBC7E2B59835C66BA7FFDF1C7AEEF58DFBF5FDD8735EEF6D529403E74C5DFABE0D696FE7F24C1DC7CF65F67B77EE74DAE79C8F65A97258B346A2EE870EACF9DB63AEE7722B7A6E707C974BFBB281FBD957264399331F4B89F8CEB5B4B7FBFE73F8C4F5E947289E0CE67D3E96501E33DFF6EDFDE572B4B787E2C9F0F9F9731BD2C68CFE8725EF1B8EE58F198B2733C51F6E4C7B3B9FCF52FE706BD6F316E3BD6E59CF2DAE2BF41CF1DB4A9F5FE93219CA5CF95810F375E932A849CFBD7F7B4CAFE40F77939365C9FB86FE8ED2FE894BE7570BB1663DEF638B7AB0653D471CD603BBBC411BBDA47F7B28F69DF2B174C3F1DBB98F18FDE8A1FEDA583C19C42201D88EDBB97D1FF51CC4E2C5A01DA06B3DEF87E3B7FB3EEC25EF519F3F1CDF8FD432F6F164868C578B9DDB5CAC59CFFBEC73E979657A2E92CBC4EBB78FC333148CA3B479CEB5B67419D4A4E71C1FEE66D9F36B5D471F7A5F3E16EF0317F37B9BD22F3E94503E163EB7503E96584C34F49DC307AEF4FD02B17C2C537C0F389E4C9F9ECFCD52756BAEE3982DF7FFCEFFDBC9CFBFFE67071AFEC3FFFE3F56AFE743CAC0EEFF12ED40F7BF5D2EBF4E5F39E48A0FC7FE9D6BF795D3374E3D7A1E8BDFCE7E70606C3C19D67B6868286FD75C7AEEC7C2719F7A289E0CF71D87340C71DB31A66FB97B342C7E3B9F7B4A19FB783EA16F1B3E3EFA00E02398FBBA43F588E54735D09F96E37B7DA9FA4A7ABE2D3D4F8DDF8EE3F8F1EA6B255426362E8FC7F279DF4FC46EE5B8AFA118B0D876ED65B1753D6F85904F7789FB8631E825EF47573C99A5F4DCF7A7C1EF35F77192D8DDA35ADBDBA5E7C3CA017A6E6D3153F2ABB10EAE59C76265C263F2626D0C7DF95838CF01F47CAD6D15B5E8B981F676F49F732C1968BB6DE7ED739B72DB2CC06F9F5F25D48F3D579DC031C871AC502CD3D87AD630F8A371FEF3A5EF5B5FFE5ABEAE503BC310BC7DDED7DECEF164E6E83FE7771D7CFE95BB97BC7EFEB5CB5CE8AF9EDDBF9C9F32A61DB606131A73DB3706F7B5DD7E3EF8B7FFB884AFE3EFDFFDD1E5F4B5403C8A9C63F3C7C2E73856CFFDBB0B7F199BF7F19CF959F43195FD7F6AD0733F0E6BEA779A7D1BC0EF6E8DDF7C5DF6B969B2CD87EC736C033DE7D80CF61B20160FFE53FA7A43D4A4E7FBF330CD38AEA3D07FBEF7873B6CCFE5B823784F7DBB7628AECB123E71B9F2B19C9EDD3F187B1E8A3590A36EE56FA8A1F0FD30382F4E8EFEF3E3B2189F8FE5CD8026C71862A7200F98CD23EEF81CEDED4936FBAE3EFA60F7BF5F5F1CDAE41F5DACCF3E9FAAE7A16F417EEF7D1D117BF7D9EF660D7AFEAAFBE67AE6EEA5E519B1716CACE79FECFEC3DBBCEBDE81D0BB7D3D8671F75F8C85C378F7D03E52EB991C311052DE05EF0FB7A6673F859AF41C7E7066A35B7B3BC74BE17654EF4FEDFDA6D8FEC67ABCBB215FB439F51CBA14F25F479D125B1FB2495126A5E2C9F87BE1EF87BF0FA9FDE763FDDB43FD00A90CD514DFDE3EC771B3B5C1136BAAD372EB794ED66E9FDB771B6BFAA4FB3A612C1CE7C7B3DFF005CFF14E8C7D363CACE768CF28754F73508B9E87F2B1C4FA88D57F7E181770A97BC4F9E84BDE8FAEF16A39AE73A8A6202F18C799C87DDC943ACCEAAD9F7FF5C1C9AFBEF9F0C05EE3DF25DEF121D72C3D1F560EEC0F074D1F7B5F113B706A2C58FF6DEBC7692F552621A0DFDC3751EA9EE6A0163D0F9D8FD5CFE82B66DFE521FDE79C0315EB38C74AA85D6E0E42FDE3DCAED7B79E358CE3BDB25FC192F725D42610BB1FA9ED1FDE8760887F3BA635E74B1DA2E743EA346B2B7D7FB7DD87DFF8D6819EFF68057ADE773DD2F361E5E0C7ABA13F7DEC71E0FBD597BBAD0B1E9BCD367AEEF1D9A97ABEB57C2CA5F43CE447D4878F8D6FFDE6A663989ABEFBFEF358BC75BFCCEB02DADCE7EC43E7B1713EAE6B6CFC7948036FDDFED2513F96EF47CFD17FDE958F25DE7F7EE89FC4DF26A9DF4AB9FBCF633916527D7AFD7835D463B9EBAB14BDEBA3763D379D30AD9D9BAF1788FF35B41C3E0E7DB726F651DBB1FA72B7AD81A5F2B13C4BA83797F2872FA9E7885F8FEF348E693FE67CBC4F775F3E166FF3FA38333E76FA9C7A1EFAC6F0E717D278BF1FF66F47792C6D8B0E8DBFEB7D15A6945B48CF63F95852CA23B50E9BA36D31A77DBED6F16A39F49CF388C5FCACB00D72C1337E7C12B643FB33EA67F6832E554E3EBF5A975F5928BF9ABF5EDE7E4CEEB635906A9F73ECF65CF95886EA586E4AEAF98D0FD78BA47A8FDBDA79795F3E169E724C36EF6BE6B79F4BCFBD8FBD3F3FAFE9A1F389F9809D161857D1E7CFC0637F52CA36351F0BFA68C65C8BCF2B3A94D078B5A96D23A1F16A7E99FFFDDDC058071B8FF62F3F7BFFE85ADFF9877DBDBDE478357F0E39F49CEF594CDF58D330E5730ACDF36FD6F5A1E7959350B9E0FE77FDC7E73F0F5DEBD2F5C55C653204E837FB0DA61CDBE7632911BBDD58839EDBD4DA266D7E68BB24ECAD90CF97FCE13E2D12BF1DB96BD7164F06DF7B297A9E8A1FAF96C39F37A7FE7D78716C937F70B10DFB9CB78B6DEFF53E64BBC6F49CC728B3DDBE8672BAE8883F1ED273DFC6D0AA9E1B39F2B1E05DCFD1BF9642493D7F7CF1FCD276B1FB80581B7D3137D097C1E3CDA7E463B1DF866F6F0F8D659B8350BE158E95D2B59EF7833E63B3C70D6E775FB2FF9CEF4BDFFDC03D185A569CD796EF23EE9F2F0BEF47701AB03BFBFACF430CA9BBE7F0E7CDA5E76BCE979ACB3EEFEBEFE5B675BF3CD4DECEB638FB7CE37958BA2D1AE735B5BD9DAFAD662D1FFA6C7872E563E178CEA5DADA8D5AFDDB0DF4D71A313D0FC593E1E5317F38EE5B9FDB1FCEC793E1DFA17832219F38AFE74BDAA27D84FACF53E2E37B1F02FE26633D9FBBAD6B48BDE1C7ABAD49CF9722E57AD77C3D6B22560EA647415FB806D0B351BEBD9DC7E5625CC390710CD02BF413F3BA31F164D83EE758B0DE4F6E4EFBDCC78BF1395B63EBFBDA98978E2713CB79128B2713F2EB1B639FFBFB192B0B3C23B9CA62A89EB3BF678EB13939F49C7DBA86F433A73D07BFBC2E83A9D7283DEF2F27D670EB07969EDFC0395642CFB97F17B8DD056D16DCF682769DD2D71AA3B49E43D3ADFF9CFDE2869CCFD07C5E2D10D2B012F1E1FAF29F972A0B9B728CFF2994D2945CF639E793E036E51CF0F7B9F47C996721E8F3B0707FFE1AE87A3FBABE5B958F250F6C8FFB588043CE0794F6BF5A03317FB812F95287E4AFF53955868C43E71840BC8FAEDCB1280B4C73F441D4ACE7DE2647FDD4755CF6E7431C10CC1F7F3BBD2D3D2FF42CB4A8E17D65E2F3A57A1D563E96F5D3155F70AB2CE57F6171F3A7C49309F9010CF14F088D37EFF32518C7709D7F3C62DB9C94EA3F672DB7F95BB71F5D2F8FBD77F6DBDADC78993D3BFD657BB8CD9BAEFEF5EB5BA5EFBEE68A27C3DF7E35E64BEDE3C8FFADF26FA22DEA39E7EC0D4D4B9F5FCDF4D95CA1F6803E3DE7E543F53C142FA0AFAD22D43733F4BA52B7CD49693D473B1ADBDFFE3BB2CB3E4FA967FA7EB74ADF7DCD15EF75ECB88E3597498803FFF6ABFC35A5AF630A5BD473DF6762F3682F297D6EB5D3A76543E2C32DDDF780F3EA1A8FDF929EFBF647C4E7CE658349CFCB3C0BCCB59E538EB5543DE718EEA5AF7B4A9984503E96F583BCF5E8F7B065B2CDF330D53E2FA1E73C0E3DD67FDE9A9E7BA6E4DBF0C4FCDBA5E7F33E0B4CF67CA9BFBD6AC3878DBE425B3D59CF77D7A27C2C62EBF8B1D386EF131D320EEB0FCF9F2F921F038C191BE6AF2BF4DF1C65908339F53CB79FBBE1CB457A9E8F3F72B1912CCE16C704FADD2BAF1C68B9F1C9EE3FBCCDBB03FC4AB0AD69B9C519E2984346681FA562A9A4E663F1E5A47C2C42C4E1B69135F5C3711CA72963A69722979EFBBCD64BC539939E2F87D9E73ECFC814FB1C310391CBA7CB3E5F53FB551FCAC722C438D6A8E5C0FB64E78AFD326739762D1BA2E7A5E2BD4ACF9783FBCF53F59CBFFB42B171E3F7B02E3D4779E5C8C7929A5B2C17D273318429CFA9D7F3B5F8318462B172FEDE9C659083A5FCDBE7CAC7223D5F0EF66F47BB72CA7DE5369BA1CF528D7A8E32939E8B56E8D2BA2EB82D774D7195D036C66D6543DEC135D557A9F6F9AFBFF5DA256C97FFE2EB7F366B7E35E9F9727CE2C6F2A00F7CEC7E7CECA161F7793DEF471F73E563517BBB5823D038EE13E265A5CFAFA53248D1F31056B7BFFFD507271FFDF9370FF4FCC557FE38AAE72975A5F941DAD886B959B3CFC3DCB0EF439FFF4328BF1AE793F3FFF731CF63CF007F07E37D28A1675DBE9F5DF1DB7D198496F1F66BEB3364A4E7A2FBBEBF7D308F3CF57EDD96594B19E4D2F33E72E9B98D3528156FA03558A3BBB6F1F9CFB13C976F4BC9FAA1EBFDE018635D65E7E77919F6B1E63826D273D17DDFDFBEB647ED5D459C7DAC2B7D7E2D9541363DDFD5697D3E71438EDD87F47C3986EA39C674F9B81C53C755A1BD99FD49D7A4E75DE337FAF2B1F06FF419AEC507C8233D175D702E0ECCF3B4F4F9B5540643F5BC6F0CEE6BBB7AEB5F7FFE8B93F77FF9D1C17FFFF6CDEF5F4E5F73639B1F5EA48D4D673DE71CC01CDF17B1FB2D762F72D8631D72DB631FC8BBD317DFB7257C9ECF2E3DC6763CB5E53C6E3BC54667BF527E2F96AE1F42CFE8907CA9FC8DE37D7DFC3710CA79ADB1F2A4E742D4C1103D1FC40AEC73C4DFE7DC7888C78FDF36CFF9F3F01FE8BEF45C307A0EA4E742F4C139ECACADDD609B64A9F3C8A6E73DA8BD5DD4889E03E9B9107D70FFB969F99AFDE186607AFDF3AF3E38F9D5371F1ED8E4FC3BC771A4E76249F41C1CEB792C0795F45CB44AC83EE7B8114B9D47D7789C2E42FDE7FFF2B30F4E3EF8B7FF38D8D7DFBFFBA3CBE91CFDE7D2733137AD3D07965BCAEBB2D773E48AF679A8A4E7429465299FDA21F6F9105FA7AF5FAC2FFF8ED81EE8FBB2EFEC5271D94A806F6DD6EA907DCE53BF5C8896498D9197836C7A9EC11F0E3ECCEC4BC0CB6DBECFE71AB139B00DFB58C3BF98C70D633F1C4FDC6F53FAF910CBC27D61F67B688CC72D10D26AB5B70B318CD2B19959F3C6106A6F7FEF1FFFF968FF6F7EFF0797D3507BFBABE78739623106DFDB445CB7F258DEBE6B8B8DF7EDFACDCB871E476C8FA5F316AF8521EDEDF132D3BB22DAC56B39F7A9973EB7B1581CEF7FFBB33F3FB2C93F78F0A783E3B7B37D8E183B1C0BDFB6191AE304E3A131BED7965B6C0F23A4E73C769AE7A5E7ED11CAA9D48A7D1E427A2E445BE4C8973AC4168236C7DAC139C7878F911D6B6FE7ED43DB952E5BB12C88138FEF6D5B263D979E0B11C3DBE4668FF2EFD6DAF98410EB447A2EC4386AFEFE875D6B6DDB98229E65E97313424C437A2EC4386AD67383FBA9BD9F9910A25EA4E7428CA3663D0FE5EF9892574B08B11EA4E7428CE3D9C593E2E72084101EE9B910E350DBF436E17C9FF61BE3F16A6E8F116D213D17621CD2F3ED01CDE6F8381AD32C6A437A2EC438A4E7DB83638023360E62E5D41A3748B487F45C8871607CD714E47F2684C84D693DB73E2A80D8CFDC8735171CB79F8FAD6F71D1470EFB5CDFC7EB067542E9F310620C25F5DCF75979FF9339359DF359DBFCADDB8FAE97ABAF4C74213DDF361CAB5FB1FF444D94D4737C03F3BBB3940F0AF4DC8E893E322C979E8B2EA4E7DBC4E7F628994B4F8814D6D4DEBE3FCEDB8BB5B7FB367E1C57ED6CA20BE9B910628D94D673A6549F15F4BCF4BD1075F078EABBF0DE8B93772D87D9554EB1DFDEBE53FC9A5AC7DBE63EE78EBEF3450DAC45CF4BE5AB0AE5CF15A20BFF2E20862AE7E6C63494EB04F9C531959EAF0FD505A246D6A2E742D442E85D088D4983967FE7ECEEE1F8B49DFE9B967F7CB54C7ABE3EA4E7A246D6A0E721FF93256C74F6BF53BB9A184A977DEEC79873FE93D8FEA4E7EB437A2E6AA4A49EFBB6EE50ACC5B9B4D51FC71F5BFDE922C6B3C0BB805C653CC572E9797D3CBE50BC1F511F6BB0CF6F8E51EE9B58DFE32286B58B5BFB38F8E4ECEEC1EFDF5C69B66DCB5A3E14D3F34F4F4E2EF7E1FBE26DBDE2CB2E8FCABC1D784C157CA361DFD5D6562B3D2F7F6C5137A8FB598BC7FC9FF53CD4462F6D29774FC5B641BD8FF10C4BC6409903E979F9638B9573E5BF766D9F9FDF3FF8FD968D3DFBEDB0B6F510D073F685671F3A9B2F5E068D213D6F839231CDE6407A5EFED8A22E5E5E84FDE178ACDA98FD999E1BA6E7F65F8373BEFC94DAF3C532A8BCDB019A0E9F29AFE935B1263DCFF50EA5ECA785F797FB76B98D1853E8906FE785A6406BA05B7E1B3E06B71DB38F18EFAB7479A492FB5D903FDCFA98521F601CE2C7153FE3AD52BB1FB4F43CEFB1D70CEB285F2FDB81D05CB4F7725B2F6BB727B49CFDC2BC0D8B63952E9314B2BC0B74EDD07394B9D9E66A632FCB94FAC0C70B1275B0853C3CD2F3BCC75E3BD050D30BB6D5D95E87AE20268A2F235B66DB616ACB60B7F37FFDB1B1BD6F1BA88DA9EF82D96DF099B7DFD073EE3F6FE5795C2BD2735123D2F3BCC7CE79FED0C85CFDA7BCBF90BD1C1A37CDE7C36DE7F88D7DFBF67A6E07F07EDBFE58B531A79EFBFE0C5106E9B9A89135E9F9906384DE33B309B99DD7FF1E425F8E8D25F527D46E9DA3BFF90B8FDEDE0C9FBBFBA4D83B93436B39268DFA59D7C7903AC3EEE14307C63FD83E2C4EC1BB6EFDE391F5522AEAAF1946578EDC1A7DE2D6AEE7EC33CC3625EB9BAF5F53EADB580C4F6869E8B873E1DF4D6EF39EC25F7DBA1D4CD34BBD3339F45CF910D64DEDF6B9DA77DA64ED7AEE6363FB713CB6CD1C7A8EFDF8E35DDCBE33BB9D8E63F17173687A690D969E2FFB3E8932F7587A2E4A519B9E7B7BD9B699CB3EB7A9E977ECB8B363E7B0E3B23D16D391FBB8B7FB0E787AF5BF433D7C74F2E0C58B93CFDFBF7F892DFBDCDDBB977CF9F9F3CBF5366F53FCB6A92DCBA1C7380EF669FBB7F3E0A9ADB373C479DA7636CF7A6ED7B6B4364ACFB78FF45CD4C89AF4FCDD889EB31F1796E7D6F3D0B1D92F0DCB72FB2AFDF04A8F7C1F5C08C425F37D72C6D3C07E98D3B3BB477A0EED84A6DA145A0ACDC576F80FAF9F02BE234C9F711C9BC7F1FC774348CFED9AECDAEC9B2574CD4FAFEED51C7D9353F7F17AA63E14310FB5EB61EDE72FD228ADE75D792E867EDFA6E8F9901C1B4B947FD7B9C22E1F639BC316C7D4B4EE9DAB6B89E9A34DD946675B1C1ACE3632B69D6A9FFBE3F03706D6B1EE6319DBE7766D7836ED9AA1EDA5EE99D80643EEF190F8483EBF0E4F797C6289F317DBA3B49EF7C1E3A9626DDD39EC734FA8DF7E8EEBCBF9DE999699CD0AFCFAD27DDE73F69FE3DA4DDF9FCEDC1FA2BA72FB0CB9C7D8A66FFC65A87D065A3E971FBA9ED13629ADE75D792E5E5E3C3A7A67B2E9F9881C1B4B7F47FBB6DD31FE77D0F1D6F41CD78CB6F639DF19D595DB67C83D663B1BF86D6017A00EE1BA84633795387FB13D4AEB3913EB3FE7B16273D9E7A1B67DB6CB97D4737BC7114B2DE7F77B690D9E5BCF974275E5F6A9FD1ED77EFE228D35E979EA31E61AAFB6043E5E816F0FC8F95E96D6E0ADE8B97CD3B7CF94F76E0DF958A4E76D223D5FEEFAC2C75D4E974A6BB0F45CD482C6ABE5C3E760E236CF587C11F45F609EB7E3753FA4312CBC9CDB36D1DEC9C7295D2673213D5FEEFAC2C79DA64B4FDF08CF8728ADC1D273510BD2F3FCE7C29A8CE5BC2EA4D17E7BBF0F2C67BDEE3B6EAD792386203D5FEEFAC2C79DAE4B0F2F6CDCD61EBE1EF3F9C6F82DF3FB663DC4D8339B47BC181E0BCE63C331E67B4D48CFC59C48CFF3C13E50DED6F6791CBD9EFBF14D212DF6DF07311FC450CEC8AD617ACE7EC15DCC7D2ECF128F9143CF538F9D4A280F40FABE3E3DB975FBC541EC9821F16430B69BE3C3F8D831A5757B8D7A1EF2DB14DB2234C6CC33241F8BDF26251F4B8AFEAC49CF2D97F8FD6FBFBD0A6ACD6B0EFA34FAFCFEB0F81B6BCE979A43CF977CFEED99827EE3F9B2DF29CF9A6939DAD91F5EBC08C68AC3B621FB1CF1E17C5C362C5FABA697D4F39717377D815D798244BDACC93E5F7B7DD687D56DA5EB0B505BBEB4B1ACA9BDBD153D37EE9D3FBFB6D1ED37CF4F01F7E95EE09BBEF4BBB4949E73BF43E8F714CCF662BF65B6A1A4E5DB417A9E0FE9F97248CFA71D3B05B3C34DCF01B7BD4FD92F629F22EEA95FBF9CD63EBAEE73E758B11CD395FBEC7919C77605F8CDFDF87DF6B9F914F03427A6E93FA3DC01DCD7B7D43324E6457A9E0FAFE788D98C3A00F3589E52DF707DC27928BCEF8FF41CF7447A5E3B4B69B94D6FF2A63C3A98F27B1CCAEFC2FDFAF81EF0FB849EF7F525994F41EE32F479057C7BFB967D675B62527D806720D3B3905A9F2D41C887E0D877E7C1411DF17B77EE1CD51521ED1D53DF703E08AE337CEE283B97D27E6273223D9F76EC9A5842CF91E3D4DBD5FEDDF5B677E87B9BB7F5EFA6B7CFAD4D02EC63B81FFA1664E32A4EF052F97A441986D607BC5DE85BCEE787E4E9D0369D1AEA338CA109E54E60FB9CDF65B6A7F93D4FAD6FD84E8FE939DBE77CBE73E77C580AE9F9B463D7C4127ABE14A1F6F69BB17987CB73F69F1BD6DEFE775739535B7A7E5A62C8FDE4F1CC16B324169B39E6B36ED321F19C6BA9CFA0115E2BD6DE7F7EEBF69DEAED72203D9F76ECD2A4C693C1776DCC96E6FE2C6C1BFADE8D7D33F3F738EF13C7C477397F9FF339E0F8A0AFFF1CBE03FBFCB03765E1C7E5E7E0E5C5619F39DADB4B3F0B221F63F41CCF41573E160F3F377D7D3435D4675D7EB85ECFF11EE33DC77C6A9C0BAE47B84E0BD5555ECF914F5A7A9E9FA1CF20CE0539C4DEBAEAF7B8779E9E3BA5E6FAD87CBE86B42BFB77EA269778B7E676B55F75BD5BBCFDB11E1FB7B7F37BE8FDE2FCB1437A8EB6F6FDEF7D99646F6FFFEDA19E77E5F115F532A6BD1D7A1CD365DFCECEDB6F45CFEDBDF3EF20F07A8E31B178FFB9EE49D572AE4FBAFACFBD9EDFF4CF6DE3FDAD51CFF9D9B1DF68679DF2ADB5053D3FD4B3E33AC2EBB97FE6593B437A3EC46F6548FF794CCF59EBA7F69FCFA9E75BF9961771A6D407B9F3B1D4A0E706E25EF8E56BEF3F979ECF43EA3378DC5F53C7F39F03DFDECEF1E0FCB6FE3D08D9D2BEAD9BDF379E0EB5D17DDBBDD76DD66EDF1E37A6BD1DF71DCCD9DE2E3DDF3E1AAF360EC496B6F9AEFEF350DDC2B6C3D4F676AE5786B4B743CBB7F24E4BCFA71D7B4DA06DC2A67D7A5E3B5DFE70F7CE0F7DE2A4E7622CD2F371F0B7745F7B7B49BC9EE37C43FDFE35223D9F76ECB511FB463696785FD896465F16FAB330369473BDD87FFCD8511F7B86B78BE939C7B8DDB7BBEF757C8E7832D2F3ED233D1FCF503D476C09DFE796D2DE1EF2B9412CEB505B6248CF659FCFC39867D0EE8BD5E95DFCE1F9F03E91ADE87917CBD8CDE17E725EEF63C9C4D6E3DDC73B3A369ECCE9D9F3ECB6399EBDD2F752CC4B6A2C15CBD5C3F958DE75EB87E663E17389F9C877F19DABF1944B30269E8CEF43634D9E124FC6DB008A27D3BDDD1AF5BCEF5E5B3E9D398E5D2B4BE839FBAAB2ADCDFACE311939165CECBB1BF5C0E17B7CFC9D8DBC72FB7E87FD72D8E939CB517ABE7D4ADAE739EAA252EDEDF60E7ADF32EF0F17F2C79992FB2964030C89F7CA635CD5DE9E9F543D7FB2BB67FF6777FFBEB7BB7FCF76CFC593AB7B283D3F64093D5F8A983FDC12EFA6F47CFB48CFC73166BC5A4942FEED5BB0CBC116F4DC74FC7B57DF663C2F3D3F849F6B1FAF857D4DB95F8BC793B19F7A4A5FD79C7A8E1C34F0899BB31CA5E7DB477A3E8EC3B12571FBDC58533C19E9F97C84FA661E47FB646EFA4BBC9E7FF3CA17E2BF9CDD0FFE37D68735F5FC1193B904B17262FC3BE0FB98D857ED46370FC78B0E8D2BB3B49E2F0172E0594E3C9B5A5EBCD2EFAF988749F5C1C4D8FEB9F47C8DFDE786F2B1CCC7DAF4BC6B3D8FFB1F6A9F0F8D1550E337715F59F965FE3DF0315F58E3FDFB3236AECC96F4DCE7A9B7A9E5BC959E6F97A1EF32B6B369AE7C2C35D645F05B09D53B6B8E2783F3563C99FC0C7906711E5ECFFF7EF77D062DF7EDED43CEBDC677A8AB8C86C693E1F700DFCADCF6158BA93E24AECC56F49C393D7B42E5AC76F7AD32E45DC636D0E4D87FFAECDB9463E738FF9CA0DF3C54D7AE399ECC56EC72B0053D8F013D1FE21F55E33B14A3D5783237D77FE3D39E2B3E9C3D6F6693032C2B7DAFC53C8CD173B3B7BB72F28434DC72B7D8774028BF5AAD75D19078AFA509C587939ECFC3906710ED3963C69FABBD7DCFB27A7B3CAE3C36F5DFD38835C3ED07C7FD0037E3CF314E8DB11871F7CE5F641BABE6F5DCDADAD5DEBE5DC6B4B7FB3C2B9EB1F958728C1D5F7AFCB9BD83663759EE51F8A4C6FACF4BE663F1FDE7C895CA7548E9676F0AB5E9F99A8FBD263D0FB1A49EDB3BCBE349D96FA54FCFF18E42D339BE1CEB39EC8150FB0B62C3CD114F466C9F1CFE70B9F2B12C7EFE9989B5B7978827B3F536B55AF5DCBE69ADCD0AED569C7B98BF4D6DDED685A67C3CE9795E389E03FBA9F8B124F81DDA9E63C3F9F73D164FC6E639FFF91CF9D5C4F699F22EE78EF7BAF4F9A7D015677ACDF164D0AEA07832E59F41F88886FEEBDB9ED05785BE2BE979DDC4E2C9D8D4DBE4B2D1C558A4E7E3B8F16BAAABFF9CE356947EE67250AB9E734C638C07E1FDB0CF296C77D8F3538F9DE3FC9782E3AB70DB13E74AB16F636BDBE638E93C9ED3E6B17EE89892586E049F573D947B05CBBB722B40CF3986053FA388F32AFB5CA4203D1F07BF837DF164D6928F85C7ABD5DE6F0E6AD5F3398E5D930F8AA72F9E8CF97DF836AD584C19BC0BA1F6ACA1EF1CDE2F7F0CDF77166A93EFFA3FEB397C59BCFFCDCD354F8BEB21DA65C83B17CAC7621AEEF3B1F4EDA7D4F9E72054065DF164D86608F9CB8E6FA7533E16467ABEBDF3DFE70B45DC9D9B73E2BE24B6CF59C3B93F1BDBB37D3EB48F8BDF2F6FEBF33A2CC331E12F17FB7FA8BD3D34F615F958E6C8972AB68FECF37120960CEC5D5EC7F639BED143FACBF990C7DAE73E0FF3D07CA9660B28FFF9369EC12D9F7FE87ECDD11F558AAEFE7321A6223D4FA3B6FEF3AE7EFF1A919E6FEFFC5B8C27B3A53E30511EE9F938609387ECDCB17ACEF128BD1D8F653CFEC5E789E2EDFAC6ABC93E9F8F92F94C72108AF5B4264A6BF09C7A2E444E26E921DA9B07E665D97A5D94A2E7E8D7E37167D06DEE93C33CE778617F3B9E1AEA3FC73DA9FB3A45790D969E8B5A18AAE7D8CEA6A1DC2A29F958963CFF2548D1734C43E3D4D9CF27B43DFC7EF83B00FB8EB5B787E269D688F4BC1D4A6BB0F45CD4C2103DC43688DF1ED3E690FD6CE366E7B4A36BD6F33909E9B9F9D35AFFE416345D7ADE0EFC5C87E21EFB3C4573131A8BC6CB380F53287E7BE9F214DB658C9EDB34968F85E36430B0D3F1DF12E7BF143EDE2BD735BCFCE6DDEE1FBBC6FB09E56A8B8DAD0DF59FDBD4C6BE962EA71C48CFB7077CC3EC9B137906EC1B949F6BFFCCC7E2A4CF6B631FB693F1323EBFD8F873C4AFC038743DA3221763DADB73E76359F2FC97C0EB39C791F27ACCF55157DD81FFF35876D8255DF95842F9D5785A3BD2F374D066B60642F164ECDB93F306792DF5F6716A8CA61C7ACE3197793D9FA78FDF8EEBFAEC2BAF5C6B3BF33853D9967ECEC4F22CE90F37D7F92FC5987832BEAEE13A87DBE1FA72B3F8FF2A9ECC1EE9F9B47726C77E3817A7E5E0447E6DACF3535B6FD350AEA0AEE7D2BF0FA176A9941C47A9C462C7E13C426D69ACE7A1EB1E52D628432B6BFCE6B2DC7A0E26D1CF9477BBC5F16A60C8F873BCC7DE1EF77E6C7DF507EF87FB09BB6C9350FFF916741C48CFD3C9A9E73CE5BCDAD06E2CE36D43F9B739FEA95FB7944E2F63DB1FE75518A3E7D0729B9E9E3DD995D9F3A36DF8BB4AB485F43C1DFF1EAEDD1F6ECB7A0EFF003FBE7E2BD79B931CEF0CDB88D06ED616B6C55963425A637D4088F30A4D47BC045BC67D527E0C08BE7143311872E263B573AE448ED9EEBFB343EDEDB866F42B0C8909E1CB1AE5EDEDF3D8F7926803E9791A215BC2E74BE53AC02F1F9A0BDDB72F729F1CD7275DF952F7E7566F3E16D4ED7CEE5ECF63DF2B355EEFDCA4BC3343FBA45E3FFFDAC9176F7FE9E4D5B3617DF4DC7F8CFC7F877D58770FDAB7BC1F28B7752D635F1FF7A1018E0DE16349B09EC33700BEA9FE9AC7F69FC7CABCF473269667486CAB502E12CBBFE2F3B1F0FAA70BC5CC5A2A37D40F037E2B5DFDE79C37624AFF39E79EB0DF1CAFBDCB1F6E4BFDE7DE5E3342EDEDE1987DF55CE752A4EA39FF867D0E1BD1B7F386DA8763F623BED5908F85F3B218FC5C7B3FD3B1F956A6DAE77C6C1C1FF19E389E63E8BD67FBDCC0B7CC101F556F9FDB34649F7B3F062186D2B27D8EFAE770D9617B3BFBA1731E66CEA7D8570FB11DCFFEB463F2B1C4F2C7D484D765F59FA79343CFF7657BA81FACD3586E7DBCF8DDE5AF85FBD462FF7928667DA8AC51DE5CB6BEFF1C3A5FFA1913F5D1B29E87DAAED7DA7F5E735B7B0CE9793AB9F59CA7BC8EB525E6D76EF0F7666B7A9EE2DF0E42FEED585EFA1913F5213D2FA7E7DE6EEFD2739F87E5E91BB66C8FCD977E8E52909EA793127B39D4DEEEC7AA713B2F96B1DEE37768FF683B0ADD2FD3C0ADF0B9BB4F8EAEDBB7F385E0B2F6EDEEBCCDBE0CA5E7623C1FE3392CD88EFBECE24991E3DA3BD895FF7C996FFDB89EFBFE73EF6B747AF6A85A2D37A4E7E9A49449C972445E089EB7EF8B39E25309D102F83E8FC5872B958F654DDFA225F5BC2B3E9CB7016097C34E2F5D6E2948CFA73CA775E939FB6BFBF9D26529446DB09677BD437D3EE2739C5BAB7AEEDBDBBBFCE10C68FADE8F8F97972FB714A4E7539ED3FAF55C63B2844803EF4D2C170B6FE7B158D1F61D30577EB556F5BC8F2D8D3F0F213D9FF29CD6A5E7DCEEC76D7E6A6F17220DBC3F5DEF50897C2C6BD3F3D2FE36C0970BC6F46E45DFA4E7E9A4F8AF96F47915426C1B9F93604DBA2EE6477A9ECECB8B47411F97AEF6B79717877DD66C33ABDD5B08910AC6B5F298D735E42160DF3FEB67E09CF0A5CB6C6B48CFD3B03129ACCD3E0662A80DCDFE83B12CFE3FF81E287D5D42887AE13893F61B71934A9E937C7097437A9E06F49CBF357BFDCB76DB5E7E03ECA63E777AEC1B40082186C0F99C7C8CAA92E7F596AB276D196CF5D265B635A4E789903687FCCB62B636FFC77EABBD5D0821440EA4E769982E8FF66DC337C00ACE5F0821C4B6909EA7F3F26A1CE94FAFDACFFBC6AD18964BF167576D4D9CDBB0F4B5082184A81BE9793A2F1362B2C03E370D47FF91DAD98510424C457A9ECECB047FB677AFFAD7619FF7C58A1442082186203D4FA7B6F870420821B68BF43C1DE9B9104288B5203D4F477A2E8410622D48CFD3919E0B2184580BD2F3745E3BEFCE6B1C4231E0841042CC81F43C1DE52E124208B116A4E7E948CF851042AC05E9793AD2732184106B417A3E1EE423E43C46A5CF49082144DB48CFC701FDB6DC84F61B390A4B9F97104288B6919E8F035A0E1BDD96999D5EFABC841042B48DF47C1C5ECFEDB7EC73218410A5919E8FC3B49C359DDBDE851042885248CF85104288FA919E0B218410F5233D17420821EA477A2E841042D4CF503D1742D48BDEF1F6D03D6F0FE9B910DB47EF787BE89EB787F45C88EDA377BC3D74CFDBA3653DBF777EBFF83988E578E7BD17CDDEF356DFF1A76F3C6FF6DA5BBD6EDCF7D2E7508296F5BCD5EB6E9956EF79ABD76DE81BAE2D5AFE866B59CF5B7DCF5B45F679F9F3581AABDB75CFDBA3D57BDEB29E0BD10A7AC7DB43F7BC3DA4E7426C1FBDE3EDA17BDE1EA6E7A767772FEFBD10629BE81D6F0FDDF3F638BF7FFFE4FF0324B5074E -MediumImageOriginalSize=166000 -MediumImageWidth=250 -MediumImageHeight=166 -MediumImage=789CED9DCF6F1C679ADFEBB2E7BDEC39B9EC65CFC9BF91DC032487047B08B0BB58640E136081043B939DDDC1C083B51DD846046E146135F2682468E43187309736CD314D0F4599129712AD6EC2ADB6284A94254AB46449166DAF9DF7F3767D9B2F8BF5BBAABBAAD875F8A2AAABABABABEA7DBFEFF3E37D9EE77D777EC1DBE86C4E1CDE6D9F7BE230A9CFFEC1874BDE75B37DF1EDF763C793E7FBDECDADED4AFE1B54F5DCE0EAFAC6443EF7BDDD3DEFF6CEFD897CF62ADB1CAE57C9F349EDEF4BCB2B13F9DC707C65756D229FFDD4E93395FD77953CAF1AED734F1E26F5D9C3787EDD3F76DC814CADFA1EDAE74E7FCFC2C2E292DDA20B469DCB7773C616D76F6666E7ECEFD8721C9D02BC353D63BF67CB771CD37FF059E7EB5A1CD7EFD9E777DAD7FDE8FFF9AD7EA373F86DD2FD9785343CAF7AFC69D1C2057D125E884FF005BB2FEC5CF8851F802DBF838BAFBEF6BA77FEC245FB3BB62E1FB81EE788B3D816E23DE7B38FCECD67CED5B800C45D20BF83F8C3B5740D7EEF8E17FCF6E1E3A7237D5FEEE796E72D9A00579626E923F0D8959DAE8C655FB25C32D6E5BBF6F94EC7B42F489E8BAFC1EF351E04C713A0FB1A87FEE3BEBFA6F2FC0B335E5F3163E4A67967B712FC3AD73BBBE6FD6E793F7F79D96EAFAE57E7EFE5BF4F9D5E37F2E5B269EFBEBDB7AADF6513E0F2F3CDB3E7AC7C8EF2E14A668BE7D2CDD5FF47ED07E47F90EDDCE71B27A6ECFFFFFCE557227DAF9C57B65FF6B8C8F3674667EB9B77F379AFEF3D4A98A7B9B7FB95E513BC8267B77746A72F2581FF5E59DD19DE0BF756F5BB6C02E081F45E57DE86413AB56C72E9D7AEDD3D4A592A790F7FA52F688C0A9E2B1DA2EC7BAA529EC34770D75C5FFCD43E32B967DEC983AD6DBB4DE22EBF81E7FD94E3E0C3C7FB96EB75E095C61DEEA9EA7B690AB2F4C926C8A951DF6B95F21C2E6F9BF1EB9AD1A9D0B7E1B238DE31E319C7E1ED86197F1F24C4CFF4CD75664F9EF2E60D5E70AEB9CEBEB9EF7D73BCEB3FD303A3DB732EBC9A99ED99717DD3A24A5DB9DBDB1BDE07F754A56ED124A84F764D3B4B36279DDB041C479E2F2C6E9B6B3F8A05E72C2DDF4DBCD65DF71ECD7801BF5F04C686BB479EEB28BFD11D1873185FB4956EA17DC626C07ED2F893BE1D5ABB3CDBFB1AB4A562ABE26CEC96E7D5F21C1E078F757B7DFB7FC4BF0E7C98B74D3B3E48BC5690C369CE09E3167A047CBE6CF48235634FC1758EB1CF16DD421C47DF48F3BFE9DE45CBF36CEFABD5DB8B5CB76A9EA37FB9F39AF829AFAEDF1BFA33960CD7960DA64F9FF156CDE7799F6B70906D16A492C5BDBEF7C2D7F793C09890F51E84A5D9F772FF165DA3EAFE396EB8B200C4E545E8DCAE694BC5BEB0AFE3553F4BF05EA5A3706F83FEBF319C07CCEB87AF13CF1F3EFEDA3CD7338B6EEF0B0B8EE93C621D343FC9BC84FBDC65C9D543E81DD8F82F52C43014B98722EF7824CF5E73C88F8C2C10D7E3CEA59F109B225FBB3B6F5DF5B304EF159E334FA8F97CCD09687EA08CFE5525CF4F9D269600B97DCBEEB3E51CF476D9EAAB8B9F783796AF1939FE7BBB954C73E5F9A7AB1B46E65FF6D617D7EC76717A39540EDE7062228447BDFEE07E0CAFF79DF9D89B81F3D643C6D596E7E3439658DDB839B7BA6154F75AE5BC5A90E737B79E5888DBC8F3C19CD3E03CE4FC5BD33D3B0600F6393FD8D7F15B2F2DDFB13E6CE260CE5FE8A4E747CF91E111719451BF6D793E3ED44D0ED71D7592E7403C0733B3FD43F21CBFFBCAFC3F1BBBFC8A91D31F1F92E7DBBEEC7DF2FCDBE178C11C15E344D45C55183FB075F3F8F4403FC77BC21651CC64DEF798E77F9B8E96E7C5DE57D53CD771D9E8AE7DCE16399E669E2D0DC2B88A0F7D3B450E7CD86FF59EE41BC32F7725658E719177ACDF1213C87FF2DFFCEF1729FD874D44CBF362EF4B3C47C6285E789C3C471E63A38395D5CFED31C973B0B9DAB1767794EF3929B6DD45117D37ECB7DBFE31FCF8DC07713FF06EC7E8142B9DDD585C9C5F8FFDFEA36BF723E3E5B61D9EF3BF7A0F65CDEDD7112DCFB3BF2FFC7BCAA313CF41B7D71FE93B8DE2B96263346FEECA737479FC7351D7CCC2DDD2786EF8646D7AC32DB69F7706B1BBE299E5F1F7DF17C2EB9BBBDE9139767C85CEFF3E36E332FFA998C2AAFBD638FAADE65FD8D66D8EAC4ED0FBC23E24FFB56ABD5DF638F25CDFBBF27C79FE9AB7387D29529EBB7EF72F13E6C2CAE6F99E192BD9EE18BE29A786EF93787EEAFE7DC3E34DEF177B7BB978AEFF7DE4CB72FEF7B8CFA96BCE4979E0CAFDACDA5F5E57D4C9DF1EC5736DB1D791F5D8EE69F897C4E3B2F5F6A8F794C47338FEC373E72CDF33F17CC4EDD3E2F8A04E7E387CE46ECC3BF6397ABCE4F9CCEC03EFCDB39FC7FAE19AC873F8FD370B0BDE2F9F3E6D79DE6224A813CF91D78A8F81E3CC8F735C3C9F3A79CB70FD0BB3FF45E435ABE4F97601790E4EF4FBB9781EF5BF2D5A0875E239407EC377CDA36BCB77CCB165F1C38D9BE751D713CF91DB70F9EFD7D60EE9E8E7F7F72DCFC36CF6975656EC6FE2783E8971322DB2A16E3C87D7C8720159EEC6BD12271337AFE6FAE192725BE2BE970F2D0ACC4D87CDE9D9B85BFF1D2A7E9A3933B8FBA3B939EFAF2E5EF47EBAB414EB7383F77F79EA941D0FF8CDFFDED8B03C9F995D1DD62A3DE463595CAFBC1F558D817CD8B331518C876D1EFF61D48DE7B497E264D8BA7132D8E5C8F371D8E765C848E51C9439AFC69C483067A3CD691DD4EB50ED90A9936BB61657D5F75427D48DE700BB5CF92CF0DD8D7B5D5FEE1C8A7715C857B9B57EE3D0BC71119E97114B7ACF8F47FBCCC896056A4F16C03B57766C0C2F73A0F79C3837E416B1FCADFC1ABC8B819D578F7A607542DD78EEC6A7ABAD82F2FCCDB31D3B5E939FC2D8CD38CEF78CE5EEB58AF0BCCC67C606A04E0578E6E7C650AFE2D28929EFC3975FB131AAD8108C51D2FDD35C977745FD4840BE4ED57DA96AA81E18EFA3E5F961D48DE7C86EECF2A993D7AC3D4E7B499E23DF9766AF58FB7C757ED59B3DBBE84D9F5EB0B21CB0EFCAF8A4B8CF383E95E9C326FE351887AA9A9780981AB6AA8F97E41B10E039E31D406FADBA2F55096282D16BDE3CBB61C77BF6ABBEA73AA16E3C478EE36F87EB47EDF3CFCD787DCB7E4F0D64C66EDA95F19BEF91ED59FA7B24CF8D5EFCD4F052F5E1D2E4B5B4A8075C5F85FCACAAEF473BB26D5A4CB0F2A1B877D530E3193876CBEFA77C17271FEAC473388E6D8E1C478623BF39E6CE9F9FBF301803E0B37456B52DFBCA474F83389E7FC5BAD846B7E63DA695AF2DAAC78DCE41FD6FF4BE850B1FDA386961FEECFB76EBD61A8D8BAFAC03E64FCF78ABCB3DEFEAEA96AD9972F9C23BC39C48E54C296F2AEA1A75E239725A3564140F27BF3BDF130F77FE42BAFAAF6910C9F3C74FBD877E4DE9A68DFD930EB74DD3D40F0551FEE0BAE0D4E6E1F99A851CF32B75E3B9009735D64A9EDB7CD5931F183BFC83C4DA88691097EB71CFF09C9AAFE84455B7738BF4B8DB71F3371ED81C4CC5320CEA097686B1D56CE96BEC6B7BABF359EAFEF32CA6DE5014D00DE3AE79AB733407656A63C7FBBFDBDBC3D8AAA6F31C5FBAE6C7D9D20E6E3C9CDA82E300D98F2F6A34F7167C07ED5C4D13B06EC66EE5A70EE229B7873584076B35FDB3B50D157FA5780DCE1FD41E7A366C6FE630B00F6523E2EFC4BF57646E9E6B720DFA355BFC4C6CB51FF61BE439715570FD38F01C747B87EBB7335FACF3D0E3E1361C671C40BE67B1C78BBC17B53BFB039FC17D3F766F6764634D8BEC80E7F4A1419B3D1AFA75A5C3ABDEA010AC3FA8F36857FCBCE29E6A0DF2B9C81C26BFE5BA8C1DCC11681E50EBEB85FD069E23CB89933C2E3C4F5BBFFD77A7CF78B367CF0DEBB7978D5B46C71BC4B0DEB11C575DC9C13CDFFDA19F1FB4312AF50131549AABD17C8DF2A2F89ECFC45F70CCAD63A29C67EA092BEE8A795BB67CD63E7E30C55DE7D1DB67CE2E993EBB64AF716379DD5E4FE07394DEEEE63F3499E76EEE8AC6DFA3F36A2BC37A02BF3A3155B87E62B67BDD9DF839EA2600FE1CE8DE8F86EB01B83E75779D009DC756BA3CFB8CEBC4614947675CD7585FE4FE90DF5C57762073C15C33CE16384E7E38C6527252DF38B136C857F1F358F4FEE57FFF74BD379C131D67FF696DF3660079EED61FA2DD5CD90DE847C8F4575FBB7268DE966D941F8E78EBAA9E6971B1E37D70A937AC15F8590EFDB12E3C970FC48D790DC6BDBAE36D9B8BD9220CD4FC0ECA69FC27AE0F457D8DEF5D3F9C6A0C875DB7CA5C21ADE159E41A613C3F92F73822DDD8E539632E63ACE4B9F2CCD1B1DC3C96AAE4798B66A0DFD93A24CF01721B9F2DDF5FEFA03B0EB64BCB701EF9F1C83FFECC5BF3ED73C546696D7A74F6AA6C37EE252E06260D82EBD7BC1BB2E6D4B8EC73C5B6CB56972F5DE749C762BF95E72DC2E0EAE792159A8FE5D8CDAD01C7AFAED3E790E16E3DE101D877FB17FC96BF3DAAB676DD5117BD1D19AE35953437CE3628CFB1935A79DE220AAEBFCDF5BBC74163039C07ECDFEAF40F5DB7A9FC16EAC273C972C52A292ECE3DCF8D816DE5798B2410CB98571EC81E573C8B7CEF4D9D73A90BCFE1B8625F90DB5AAB2128CFA91B05C7DB1CB21649C892E3EB026E2B875D75A8140F37AAB8AC51A32E3C57ACAB782E9DCA3DCF95E72D5A8C028A831AC4D135537687A14A9EA7CD27D23CBA6A4E54FDCE5A1C5F20BF15831A1587DA4454C9F38FA63FB2EB289123BCB2D8F556976F86FA499AAA2BB56891155F9F3C65B7DFFCB71F947ADD2A79CEDC3F50DD96E3BCBE678B1669F0CDCF5EF2BEFDF3BFF0BEF7BC52AF5B25CF5BB49854A826A06AFD538F90B530E1F877FFEA5F5B9EEFFBC7BACE39FC867C17F0E9EA46AA3A88A0E5798B16E347D4BCF0372FBFE2BDE8F52DD7A37E2BFF3FB13B6973255B9EB768317E44F17CDFAF5FB41F136B0EB7017EC2B4F95555F2DCB5CBA963A93AE7BF7FED75EFDA858B367E9F5A8CD4B5E4BDB0059CCFEF389773BED83D3EF31F2D2603E2B96A106A4B5C886AFBF3F99A5F5F41355DF3FE5F953CBF787ACE9BF9F5E210B3D3CBDEC262C79BFED5BCDD9F9B5DF5E6E7D7EDB1DF5FDBB1C7384FE7E83C3E2B672F0D365BFF7D8B8A219E23DB905B805C953D7FBD8E2DC36FD5F8D73850A4EE70953C7F7DB3F8BA6379F0DB6EBB1E5910D44651FC98FA5ED5F7749C51C43ECF83E3C473D617055A4FFC6F1616ECBAC2EC735CEB8BBFF14FAB36F796750EA949D335EFB5EA76AF1AF01C7DD1B593AABEA7E30CF4F0307F3BF3E6FFF26FFE6DA8BFFD5648FD8B26F8DBCBE6397C66CD61D61186D7EC03F83D58437C7328CFE1F75BA64F8FABEE54EDB1BBE73D36EF62CF8C7D80FD1781FED3D6BB2C0F91F23CC5FCB9F2E1A941953686EC38F15C7C16C7E13BD031F639EFCCA59E95E5A78CDC6A793E0072E3AB4FBADE8B1B037C75F98A3D16EC5FAAB580BFB7ADA5951FB17ABBD1ADBEFD77FF3EF2B76E5DD226CCAB95CD7374F4FF31336339CDFE5F5DBCE8FD686E6EA8C773DCE539F564D1DFBBBD7EE5ED3E6AE0AB0DD3F9B6FDF6DE602DB28F2E79CF3FE9189E6F7A5FAE7C6C8FF1DDF2ECA2A7BAD6E46CD1BF98D3697A4E769510CF55BB467EB607BDFE706D4D3E6B3DA5BCB9774214CF59635BEB6C3785E7D4B806D4B347866B9FAD3EBB7AFB9B67CF4D4C6C80FA15B65C24CFDFFFC0C8F48EF77CA3E3EDB1BE9CCFF31BBECED3F2BAFCF6D05C1AF3CADB7E2D71FC23AC05C43EC7B1E599432EB23690FAB9D6B010CFA99DACEF9AC273FC6E3F3C776E28CFFF6C6AEAD067E0FAE190E7D8E8DD5EBFF2761F57BF8A8CCF30C79F7D6C74F5B77FEBBDF8CDB4F7FCFC85A1DEDEFAE446D71E410CF358D0DF4BFC3F71183B953511C4F3878F9F364E9EA39BCB1E478EB30FB7E58373FD703C1BCF0CCFAB6EF371F62B77DE3628CFB78C1CF9CA70FC8579277B6FFC9F23F2BC45F9ED1104FCFEDAC89FEFFEE00F4AFD3F71987ECF1A474DB6CF91DBC874B67F79EA94B5CFF1C7C16FF82E3FDCD4FB6BDEABAFBD6E3129F67990E7C17E6665B7790F9ACBD937FA5C2BCF4787B879B5EFFEF88F53E5B1685D98499B574386C369EC70D69D937C77ED74C973FE1FBD1D54DDE6E34014CFEFF6FA4379FEF9FBBF1BE8EFD8E773F343797EBB8D9919597B04813C27B6FDBB3FFCC3C8DFCA170A26715E4DFE76B6C8F11F9C3963FDED7C560C8DE4F9FFFAC9DF793FFDD94B132FCF87FDCDD8694359EEE345C19AE12D92DB23882C792C5A8B31CDFF1D279E23B315F706142F235FBB2BCFB15334AF56759B8FB35FC56D997BC3E75B74ED8FBA813940EAB5322F08EA509FC8F5B7F3DE5597563E767CEEF2C36BDEAD48BB1C279E4B8EC36DE438B21D7B1DBEB32FFB1C7FFBD4C953DECF8D8E04D7BBE63D56DDEEE3EA57515BCDD16A5BF5FD9609AD5FAD9A6F75981F0CFA436563EFF99C6FF358E2FDEDF2BB695F71AF6E7CBBE6CF8987EB26BC3B7423C51E35B9AE6FA2DE7ECC41EC1EED57078EC7BD773B9F66744D62DCCBFCBFE3C473205D5D5BE5B2680E5DF21C7D1D990EBABD7EE43D0ED66A3EA8DFDDD4B5CE93784E1E0B3AA2F29DABBEDF32C1582DBF559658D151A2CD6329CE73E9E8C86FE6D6F82CD9CE398A7B251E2E8DDE8E0C40A647C573A35FA15B81E1BCB4B1ADF4B90E799E893C7FFCD4DB999EF1B6CC3B2187E538F9E1345693F7C1B6D63CFFE17FB7B1ED713C5F9D5FF596672F7B8BD3CB767F12798E2F4E71AFD2D535DFA63819F19CF9F3347132C803E57084E56CD166403540E4D3927C2CEA432903493C4F93C7D27454B9B671547B0491268F051F03FA2548FB4CC78DE7E8E6C4BA2A8F85D857E6D7D0DF91EBAEDE2E747BFDC87B74F576B661F6F9DF2FF4BD53E659B222CD7A1FD20FC2409C04E3BAE225E2C09813B6BDE5C7373357FED9FCEFBC67D76F58BE3FF9DDE270FEBC9F70EDB230EAB170BBD3AB9CDF419EBBB564F8FCD81CB7BE503F7F85EFBE34BA9690F7FF8E1BCFD3407132E8ED0B296B6EC58D9B3CC72F9F3E1DEA1180389DE0FF4AB7D07769C66277DC0FF262FEC292F7B73F3CEBBDF693B70C5F6F64E2B9F446374E262A8F655C3CD7BD8DCA3F5027BF83EE45EB17A8F61BF61E392CD448641F7D90F7C2B18D0231DA93CC73E27CEFA5AC21D9EDED785A239EB87877DDF8D737EF0FF35ED11F5C1B21A86BA053E8BB99D9D5D0EBDDEC1DC87077BDCF603FC52FF8E6D90D8B249B33C9BF8E8EFEE5C640963F37DB27B2D12BE8FB23E7B99191C490BF28201FCBBA176436754C55CBF4D9E93356877B68788E6F94E3F2F13C2AE02F1907CF9F3C675E63003E3FF4DF2F3C47B609C844B66E9CAAB68A65953CD479FCC6E552F03BF7FAE7F7F7873C87DF0F73B633B97CD8F57A2F3C07FF277E23B783F7259EBBDF499E73BDAB29D67F55DF50FE223AFB2F5E7BC7FBD589B961CDFE2459A9F50184A83C96A7FF70B23279EEDEEB28B865390EAF2AF433468D65A3CE631925CFC1D2F2BE915F9B564F56BC297250324E312DD8D6C4B8E02F975DCD317CE5D8DB1C53CD378EFF871FFFF810A7743DAE817CD5F554378E73887BFD9F7FFD63EF8D1353965F3752F4C1BEFF5E247FE78CAEA5DC5DC973EE4D3E8030282657F3F851F2FCD3887B905F557D047FCCD4C9351BE39554DB25494622BB9F23C3D10D0D9E1B542DCFCB96EBC3EB193969219EB38D18F355EBA1ECD8A1D83C9684F558A2FA45D53C7FF87820CBE7E6376C5C79D77F679283AE0C77755ED9BCCA4D512C2B7259E70565BAE4AA7B2DCDB1B979A9FC3F5CCD5B370A797EDBEF27B23FA46F44F15CB6BBE26F25CF356E64EDAF6BF397BDD9B38B56AE27D9E79A0708C295E7DB4E1ECB7D278FA52A79EEDAEB65CC4B06C78DAF19D37A83DAAA51631AFCE63E8AE8CC69EE45C89AC752377FFBDCFCBEB9AF351B6B0A24CF15CB822CD45CB7E42FFC441EBBF523926C6F5D4FD7949EC035B9FE409EAF5B59CE7DC0D734F2FC56AF3F94B780DF11533790E7BBC3FAB292D561D03D28FE56F21C8ECFF89CBAEE8FDF49F7C33BC50FF7F397976DEC76E1357C8D1E7B248FA5D72FB56F07118C4D8B93E765C8F61BBECE7453B2D3B4FFBFFCC99F0C64A779FFFBFE776E3B5B398B9E63DA68DFE8A25FFA3A5C5C9F493326443DCFD77EFEE4D73179945A9BBD6EEBB1489E2F2C6EDAB814AE870F0C7E68BE5B36B8F82DBF1670F3539278EE9EABEBE91AC13C16B8055FB997ECE3D6C2213F83E4B5381C06E919417F3BE3451EBD821C64D5642C1ACF49BF531E4B91753FD242F395617D7F543C0F93E7D61636B2334A9E5B1F19BC95AE1FDA17FA76AC0559EF4575A36417488F69621E0B7E38ECF353A717AC0C653E8B7E0D3F54F345F16AAA13A17AAD7CD6776E9C5B1497DCEBB971AF1A3B38C78D7BE55EB2DAE780DF05E5B97487A87BD3B349B7973CD77893459E4B172F8B77AA1BA76D59D775634E8929D4BA606E4CC2ED9D414CC2B6F8EDF7F96DE73EB64BB8A7E07329F7D3CACE08BB009E31EEC5D9E7F84778CE2CB90FEE5826BF2A9F77FDFCB59EF95FDA42392CD8F3DB297CB555F3FCE616D7D9B3FD195F1CB62DFC90DDAC2DFC144F657FAB1E8C7C5892CB513670542E4BB07E7B913A90B71DDD4CF23C6A3ECD1D8364A307FDEDC7B5BE347D1F7E2B3F003DD38D2F74FB57D4B68C3E284E691C73C74864B6E596AFCF708E785DC69C56D4BD841D6F721E0B3CBFDE19E8EDD8C5B2455DBD9DBE2F1EBBC7DCFAEBE26A1CCFA3AEE7EAD48A7B65CCC9E2FF72C1EF5DBD5DFF11E787D37816C6F3B4F13AA30273B5C80DE989A3FE3FF85E05CFC571B7762ABC261E859AAA5ABBB0486DD5B4F71276FC9B9FFCDD30BEBDCCFF0BE3B9EB13D2BC4F91FF80E757D7F78DFD32F02BD3A7351FE5FACD5CDF195BD9EAFA8E9A6F6E9C49941F4EBE3BD594910F2F98C7425E2AFE823C7A7BD00F87CF5FB6429C1F4EB97341BD9DF792556F2F737E39348F654CEBD08E93E76CF1A97D6DDA3E4A571F07CAC86361AE051F4D9AB90877DE16BCEBF7B7B8B1200FCF25CFE1167DBADBEB1F91E76E2D37D56B8D938F49F2DCADFDEACAD17357B786F96A79C7309E41B174AE3C4FF2C385CDABF17E5772D8DA65DAD1415FFBBEB99F71CD9F8F9DE76CF1A9D5201E2E882C792CE4DFA5C991087B7FA3F4C321CF950B3AF0C30DE264907302B297D851ADA512C79B30703DD58543BE2A8F4536FF605E6DCDDE03F96AF035CFBC9A7412C9737CE8D243A2EE4DF9B14179CE3DB8F2DC8D7B0D83FC31375607317169E6CF87F1ECC16B750EE6CF3F5BF8C0CE9D13FBFAF0BD72E3DBC3F4E05F5EBA63F379A63676FCED9DD0AD7BCE6A819CB33C7E38AD475EB62DA37B511E8BE25E1F9BFF6B6A1E0B3CBFBD3390E7F8B8E108B250713292E192DF9A7FD2BEE255D3C0BD1E7C723FBB7E38C5AEA689370D83EADDB3AFE7D03DC7F908C3E4391CCF52475EB1ABCA6321F615FD2D8E678A39916F378CE7773FFCFD48F258C23806CE9976A06D01768FE294B52FE87BDED94A893CB7F36A27A66C8C6994EE02D7B6E11CFDA4445F9CEE85B6944F5DE34A93F35890E76F9C18AC81E2C6C9C8FE46FE2A7754F367F092E35978CEEF64072B375535E2DC7AAFDC03B17945E4F9817D3E184B14DF13A76B2866D795E75C2B2A8FC54550A6B8792C49F3E7717C03A3CA6349E2B9621CD8AACD79477CD6BB92BD5394E7617132C35AE9813899AEDFDED66E36ED63E364CC39617132AAA58E5EC5E72C7132C72D8F6530B776DFF2DB9583B29FDD3C10DA5BF5D7E90359782E1B597DC6ADF9EAD6871BF0642DF77A2CD81FD205A4B74B2789E379983CE73ED2E815C11C14FAD6AF4FCEDBFE95569E0FF3CEFD3858579EEF949CC79286E7596CB251C8736434735851639ADE559CAF0B3B99F800E6D1D3C6A1C6D9E74DC86389AA8B70CB975BF0831C12F815CC6311FEF49557AC1C569EA7ECEAB4F6B96267F99D9BC77220CFD76D2E8DF269F2F8DB91BFC13819E90E71F6B9BB2E8C6B9F47C5C9C4F9D4E953C460E19349DBAFA27857761E4B1A9EBF77EDBE1D73B360B3401DCE23F7D0EB1F6C23E616D095E5DB886B07F4296280D2AE111FE56F67EDF3EFFEE88F6A9FC7C2B8265D32F8CC5C4739627C76F358649BB96B9887E5A9A4B1CFDDF852774D16C59B9621CF15EBA3E7E0BA69F258DCE749639FE37B891A7BB0CFFFDFCB3356A6278D535139229BBE3FF1481ECBCC3BB9E4B97C846978CE18E6C6D86AFE1E6E3197CD5631A08A09C35ECD1B97ABFBE35A5C5FC7914DD8BF80FFE0FF3A23AEEB5F449E2B8F258C63E3E2F9FCF46A682D23C97378AE75CDDCB857C58CCAA6564C9BD62FCF629FCBB72E9BDF8DABE51CD56FE75EF2C6BD72FF4179EEDADE61F7253D2328CFD3C6BD7E119039B437792CB477D2FC4A14EF86FDCD8C5959F3589061697351C2FA75B03EA67CCFDA574EA862D4C4D338D99AF40E549F9EF852C5AB3396BA71E6456BA517E1F9308FC57024EAB76E1E4BDAFF2B9BE7C438AADE7930DEB7DBEB0FF3B695C7A21837D9D070457E39C5B6A4C95F7165A6C608FD5E7359D2DB91E7C862E57DE769277E1796C71225CFDDB51C751F59F358827D436BEF44D5A7CCC23FF56FD7B64E42983D9A85E7E386EEE16B33B6E353AB324E46F7C2D822A81DD057545F9B7DC638F79C3C289BE7D88BF09CB126C873F996C58FBCF5138B62FACA8EFDFFAE79A769797E7B67F7903C570C80E4B9C62BC6A820D735E7A6D87DF9E124CF891D42BF18FADBB77642EFA1481DC3343C57BE465096D19EE80E5AB78863B42F63B96A25DFDB7DEADFE3E6A1ADAE55461E4A59DC7AA1FCB314BF4187420718557CFB119EFB71B76BBEDF5D71F7D83075CF578B82EADFA9F679D5FD20FE3DED063E1FBC13E9EDC86AF90F83B25CF37DEE38A06B2AB727EABF928E67E957515BE670D49F83FD1A2ECBA7CC9663CA434B1BA33EAA3E94E71D08D6DF4EECD99FFF45A4CF517132419BA9EC7B11D2C4C3E5EBBFD5F11C5F075C77EDB2BA22C8B16EAF3FDCFFD15CCFE77A36B87EB83AF01CDF14A00E7D1AD9819C6F34CF8DDC84E3F26D87FDC6CE5F1B1944DCD0305E7604F7227CF3B39786F7546EFFAD8EE74D4070CD9EB01C63D50028129728C01D64A6BBFE8BFC1D9AA3CD53532291E7E6DE774D5FBE6FC65EC07A7E59F2589AC0737C326E9C0CBEAE6FFFE37F4AAE27834EDDEB0F6289867ED8D542E36E9E3C16CDABE1E766AE65FAF482F577D7A53E5CD301AF063668788D1EC52696A1DBC169FCE7C19A40F2B7E5BD6E12CF6D9F32CF606341FD3A2BFB196CA926F03C88A1DE6E781525CFE163581D48377FBE487B049126FF5C792CF8C2EA94C7D264C8A72DDF72DA7A5C658276D53DA46DD720A2F8FD68776F387FFE9981D66379E8D481DC8CE13BB928367EF5EA56AAED3F7C58EDFAE39A57B33230645E4D73776E6DDD602C8A6AE1A4A9B39BD41EF27BEAF39ED10BAD7FDDF7B36B3EB5A82FB0E5793C3476324F9D653DAB3271EAF4BAD5E55F7DEDB295F745FA95B66171AF77573E1EE6B17C69FA9B787E23C65667FEC2CD4551CC933E6B6E419F5DBF4415509C8C3B47E5C6C9F01DFE89B83819F84D9B300791F759D40EB2F9E4876E7A1E4B8BFC50AD47E4605E5998348F6DE3E0AE7F325843D1C8F367973E1EEAB27173DFA79C352A949302D795A3C01C03FC3EC859A896E77541B7133E773A2AB43CAF3F14C38E0C292A3F8275DC5D797EC7D8A2C873BB76AAB38E62923CCF9287D2F27C8071BF83289EBB733D2DCFAB05B21C1459BB3B291ECDE6B1ACAC7AFB6FFFD67BF19BDF7ACF2FFEE6883C974EE1E66C107394250FE55797EED462FDF12AA1DA98E3F4F588C3C479DF3476BF78DEEDF5ED67F79C16D501DD3DAF0F0E04EB4B84C9F3ED7FFC85F5413FBFF8B6F7E0E55787F27C7579C38E31D8A5D8A4F80AAC7FD2E89ED20FF43FC43D692D78F6C909516D453E2B77651CB526EB08F9F0684BDEE5F8FE77D046C49C138FDAEAEDF583E6CFD1DFF3CE9F2722451E0BDC565D66C964F8EACE27BAF936AA3FCE39CA1171EBC457FD5EAB805BBF7E9CF30EAD7DDE1C8CD2A673F358C6B11E4B8BF1A2E5797370A333BA757C5D395BF75C8316D9D1F2BC39A8436EE738A0351CD06F8BC406B53840CBF3E66052788E0DEBD63168E7E18AA36C9EE35B50EE39DB2C3E23C598CA4F51458C699D1155835D583F666BB4D177D2D6456A118FB2790E47C9C350FC6F169FA2E66EA64EAEB5FA5A0892E4F971D2BBE837CCDFD18FDAF1BE3846A5B717699BB65DC3F169423B7C8E3CDFDD1BAE33D254283F50B94369EA62B58847D93CA73D645765A95327A81E11D768DB36BCADF0877FF8F22B3606E5BDBFFEF130E7C2CE79EFDC1FE45BD6E07E8B3F6F6B9797F72ECBB7CF691FD51AC912E3A8D84EFDB6CAFCC53A4235D6C84F541C9A5D1728501F909A2455DF6B19F8B4932F37AFC5518C4A6F2F3216B7E3F861B0EE8F6A3FB0DDF26B0346C594B19610F59F883575D7EE6A1A26657EC1053E297C12E8B4CA7D2DE3BAA3E2F9DA62FC3A4020AACED2B873F66A0FC36774F23DBFB6D18E9F431D5577E0DBFFFC5F86F535DDDCE6A66112798E6F02DB157EA3D796A5D38E8AE769DA28EA9C71B7AF6A8C883BE208F62F72917DD5D4C616E65CC94BD5F4E738FBCF4AAA1398A6AD8E00F96EC64E643E35099A1EBF9A26C76E5C6BB48F1BC8F532EDD651F13CAA5E373C903CD7DA3F47D63E2949CF543D9EA4DCA847BB4FBC850B8BDEE2F4B2377F76DE7BF7F43BC3FDD9936FDB7DB03CBFEE2DCDAE7A2B8B1DFB1DE077FA0D585DEE0D7DC441149D27BC91D4EF91DBE659C5F32275FDEB80B0BEA19A889F7706F519F7FC9CBAA8356CE250C79C39E439F30CAAFB99B77E5010A3B3CF07BF51BC349C766B1CA81DE37E4BDE93D6DCCA239B90B7D4DB49FA2D1CCCBA6E671E5093A168BFCFD2964DC7A8E5799DED82B27D54A3E6397AB0D6C4D3FA7469798EFDAEDFB2CD2A9FF83DEB683D42CE45D8B2DD1E6B41AD0FD74DD1BA485A335D6BA6C5AD6BEEAEF9A4B5A3DCB5CE0578CEFFDDCE59CFAFE57900E65D26AD0157E8FA15A2F63C571E336BC3E36B33F2DCAD55192BCF89F1707EFBDC5FBF214BAEF2DDCE41ED6DF43A7459E9B3EE1AF65AEB88B593A8C5AD7553A867C67A87AC91A4B50FD9B2BE72D27A8EE2B6D64BD47A905A6F696A63C7FE3FEBAFB08623F57AB67BE1EB488721CACEA9B31E5A04613C0C3E277D43B514B5A66A91EBD70545D6D80AC3C8780EBFF00DAB4EADB35E6E24CF8DFC3DF45BC303CEC952E752D7C40F80DE4EBB87F9C6E0D8415DACF1EAEDC873EA72759DFEDAF47E390A843DAFD6E812D735FE699D72ECB4B4EB65D4F97D967D6FA3D2DBBB0EDF90E5AA3192C63EBFE91CE7B759D639D19C1CFFDBF3C789E477D00CFBBC5BE37E390A24B61D3A62819AE66571093946FF161E387AA8203D44DF2BD7DFFDCEEDE74DE179D46FB2F8E1F23D4F3C97EEED129B3BD8BABF8187D41D16B4C629A0F6781D787EDCECEF2434C50FA73805ADB9281D547A86BEC7C784DC42CFE438BCE637B2C75CFB741C3C9FF1E72A843C6B84F70BF03CEAB74960DE4A79CB51B1F170FCFC85A746675FB136FA4F7FF692B1952F1CB2CFF1B969AD72501779FEF904F23C695EED7E8A79B528BF45595C9AF970D33BF761E7102E5EDDF22E5CEA59BC7D7D67B8A5E62DFB67DF5FB7DB37FF69D5EEE30B1EA53CD71ADEC2BBC6C619659C4C1A9EE77D46E61DB5664A945C973C5F585C3B629FCBDF8E0CC76F8E5C0FAE655E26CF1F3E1EDC0B487C3ED357EFF971ACCC5BD4D9B62C0B65C9F351C763B19E54D1BE01FF47716FC2B8E3E146C973E5D0A8C678DCB9F776F79CBAD5D9DB897140F36DAE6F1E3027077E70E68CDDA21B3066C8DF2ECCCD8394F173E65E8909914F7312EAA526F6037C3E29D6AE8CBA4E54ADEB386C3BED27B0761CF28076567B6BBDA9B07EC339F413FA87E66BCF5CEA1DBAE672CCBA4F79709C789EFF1D64E7B9D612A29DE03B3CD6DCB96C7AB69CC371DADDF5B79F37B2B9DBDB1FEA1789F769787DE7E4A9A1BF799CEFA72A44F9DBE1A73B7FB3E1C7FFA1E7B02E5996BE98E7BE900FE882F7FC3106792E1D50FD214A0F54BF71FB8A2BCFA9AFCE7C6F93E5F98A69A339D3BF67CE9EB3FB51B1B1A3E439BC9A9BA746FEC1D8E9CE9FF3EE91CFCC97B3D5D81BB4D3D5AE8AA5514C0CF6BDE6CC357FCE967325CFB195E0F9C222EB993F4DC77383BE337F3EAAF75327843DA76AC02B1E83AD95B3861FF8B2D90FCECF9429CFEF76066B151103012725CFB5B69CFC3A8CFB613CA7DFA85FD12FD4AF24CFF18D71FD26CB73C63FCB75F31C8C89713EF951F51D78DEED7D6F793EE7C754489E4BF7525BB8BC97EEADF6D25A816A577E435BD37E707AB036E8E650E607E539EDB9B2BA6DEF252DCF5B7F7B00BD7EAA78B8B2E579B7D7B7E3B42BCF65C7B9FD218CE7EA37407DC595E75AF3ACC9F21C1F38B213C02DB66176F438E4D575E739F3E8ED9A7353DB6A2C77E3DF90EDDA729E2BCFF1F5BF7976C9703DBD3CBF5E728C54DD11E76F47174CCA63517C94E22882488A2F8C02ED876E8DCC923C177F5D3B2ED4176BC67BB77F28C652F21C3D8131A4C9F21C3EB15EA68B8FAE1D8D7368827D2E8EABADC4777431D967AEBCC75E17CF19AFE9276F4DAF64E4F964D5DF28CA73F523C5A294C5736C73E2965D9EBB3E59B651F2DCE539F66090E7AC7348DF683ACF678D9EB26CB8B0609E93FD9590BE5B15CF6573CBEEA63DD817678BCEB1496F47DF93ED92F53EABE6DE3891665E2D4E6F4FFA7DDE7E269DCCD5DB19C7B50E3CFD244A9ECB9E93CF2EE88763EC584819C799F59EDDCF65F15CBA52DFBF1EF73E337BD9FB85917F1F99716C0EDDC6ECFFE3AF178673F8B73AE9F3CFB516581EE89E341ECB0F079791CFCA41912C66CB1C08C7A3DA2F0BCFB3827942EA8B101F3049B570C3FABA7C70D6D766F4727C6FF8E604F737495C29E287A33FBBF36A70563950AEDD1D36AFA6F3FE6C6AEAC8BC1A7A3B68AA3C1FF82677BDB7CD78861C7FC78C63EC2F5CD9B27C4B6ADF347D202BB09107CF972FCE81F15BF2DEFAD90C1807A4C7B3CFF82DBF1C3C674D5AC981DB3BDFA79A5783DFAA153649323DAC8D55074BDFC155E24895BFCCBC9AFCEDA394E7D8D00FFDFF519C0C6D2C59CE7E589F41EE6B9E555B579ECB77D314791EBCCF27D491D979E2BDFDFEBAC5029C37DB4F3A77BCBB668CD6784C1B8D8BE74F7C3F4D5E9E3316CB1E972F8E7D1DD3DC09BA80E264F0B36383D19E69E36490E1C874EAE14E52ADEBB03656AE88F5B199BEF2CCCF9142C6730C792FFF9B5BD7A44CFB9C3604EEBC9AE6C315271365E3D12FDC79B5A07DCEF8D164792EF06E15E3806EAFD806C0B8ACF9D0BCD7CFF70E768763ADFCE88A7995CD1E96CBE2CEA548AECB96777D70B469D03EE79DDEDC4A27CF271569ECF32AF258E037909C409EABBF24D9E7B20F352E04E7D5D06D9B1E27A3DA708AD97CE0D4A0706BC5A41953F38EC5AE7DAEF1F38D1367ED3B87CB8A8F01D84FB4035B3E87B5171C766B5328F695EB705CDF739D37AE6ED9B13AAB3C9F5484B55D308FE549A01F648915CC1BF74ADBD18EAEBFBDACB857D9FE4D97E765F681A2D7501E9E2BCF353F22D92CFF6858BB690C77735FE473D56FF4BDF5C76E1EC4360264B97259AAE6541D91479E67E91745E4397DC795E76A6BC9F3289EAB8F29672A689F2B8EAC29F23CC9362A8A326A99767B7DFFF9C65F4FE65E8AFC8B4947625F0FA933219F7B1A64A931E582F6736BFC45E5AB617FAB8618FA1D70739B14130DD725CF07F352738D91E74D4253EAC94C1AC2782EF9E1D68D4ACA63C972FD3C88E2B9FC346E3CACB6E88C9A4347C6BB792CF0FC56C935B99BC6F32CE3751AFB9C77FAD6F4F2D017CAD84B3B689CCDCA65C533D27EB2DF81FCEDB4E39C9FE3EFC60CC4A1EA775E15C29E5DEF44792CAA1BAEF532D8A6AD339677FE3C2C2FD5ED3BB2DB823E77C567C4C5BD2A4766D2E57952BF67DE89FAF68A29613E4A6BB76A7D463D13F394D8590B8B9D43731E8A89CB23B3DD3877E5C3005B8B6A73D7C6C0C90FE7DEB75B0B87F5E33956568DFEA622718CEBF52BABEB4C3BBAF679B0FF88EF6EDF70739BE2F258C6190FC7731CD4616816CFE13880E3F0E7FC858EE5B9BB8E76B737C8391AF07CE3488C4B5C2E42A84EEEC73D285E567A997434C5C944F15CEB7D530F473CE7BE2729FE2D6B5B57591F0EBD8C3EC4BE9B7FEED6150CCA73F9E9E2E25EB9E6A878CEB8C4F5F12DB83C3FA8AB547F9E4B07BBB57EC39B3EBD60D7495A9D5F3DB43F7F61C97E7FABD7B7FA1118E8ED4B43DF3ABE12ADD190458ECB4F8F2EF65F5F7F7DE873912F86F697DECEF8A23919E9EDEB8B6BF6FEB8D7D9B38BC3FBE578D5EFBC2AB86B7405E7D582792C9FF6B2DB7379E666B10D247315AF8DDE4EDFA19D9553AE7A04419E6BAE15D04782F9E79AAF4B5A632B0FCFD9CEF8F64053F5761D475E2307D1D591E5C8496246B506A5CED7DCC8E0F9C6EB8773FF5BE0DEB4A6D6ABAF5DB6C7CA5C5FEB38A24A79EEE635E7A90F27DD3138AF06CF07FEFC415C7459EFAA69F639E376D8F122B5CDC9819F9B5DB576FAAC91A74BC4DC1BEE978DD5098A4D1F15145B65635B13F2589270A393BFF6BB8B3C3C478EA3EF01579EA32720CF6766FBB6064959EFAD693C8FBA97A2F7A8F545D3AEEDD0A21A684D4E7D56CD7440DC34736B69D7A62E2B27280FCF95F312561F0EAE971D3FD5349E47D5302F52DB5CF90FCCC7201346B986798B62407EBBF366CF7C991E96C712076C3AF96B8BDED3FB460F7CC7C863F0DEB51D9BA395156BFE9AD9C44F757BFDD2DF5BA3786EDAF2B919CF89630AAEEFBD6FECDD1D5F1EF3FD715B53B045B9706BFD930758E45ACCD95FF36BEB3F2AB00ED428D1289E9BB1FA2BC361DE277C76B9CC1AABBB9DCD61CC445DDF778B7A8039577CB36C8BE6FA3EF0F3AAA55754FD6C61681ACF1F9A71533E17F73B78BEE3D7F56E65798B1687D1289E1BDC999D3B22CBC1A3CE202FC15D33B7458B1603348DE7A3F2B7B768719CD1349EAFF8B9B941ACFAB17B2D5AB4388AE6F13C3CAF7D12D6156CD1222F9AC6F349AA77DAA24559680ACF99E354DE66D1F9CE162D260D4DE1B9F251886F70F3515AB468918CA6F09C3C6CE438085B7BB1458B16D1680ACF5BB468911F69793E0950DD8049C3A43EF7A43D7B12CF2705ED734F1E26F5D9ABE439F5ABAE965CCFB6296DBE50619C4F95CF4DED94496D736AC754F5DF55F3FC7685F93E55B679B7D79FC8E726DF7A52DBFC6685B15DF07CC6AFAD3769689F7BF230A9CFFEEEFC82F7FF018205B3DB -SmallImageOriginalSize=60000 -SmallImageWidth=150 -SmallImageHeight=100 -SmallImage=789CED9D6B6F1B497686EB0F2540F213921FB0B903592001827C49805C810009369B452E1B24C86293CC6207333B839D78663D8EE17894D1C85A8D46966549D6C51C4AA6255A3275A5449114255137EA6A6BE2D453E4A14BCD26D94D36D994AD0F07249BCDEE66D55BE7BC75EA9C534F66E26A3D9DED287972FD4C57FAB966E2736A4DBF9E5DBC6A5A5653E940AE8304F54C85D3172AB1B4DA51CF84CC2F2C775C5BED154E026B2BB025CF95CBEF9BF79D20B37389D09F21CC675A5C5933C23D9793A94BDFD1F7CF9E2F9AEF9F6ABD303236593E065E27A3D3E6377C872EE31A7CC72BDF738CF3D1035C83EF108EF11BCEE3BB469E1B0C397115E478BC96E684BE884CC7D4FDA16195DDDEBDF4DD78246AB0C4F79FF7F4AA9FF70F18AC701C7CF099DF7F3930A81E0C8FAAAF0687D4A389887A383A6EDE739CCFF98323735E3436638EF37BBEE3DAE9DC4EC3CF1D06AEF2FA1E49FDFC7B8EE7CE1F9CEB364CEAFFBBA1FFD37120F7CAE54FCDF5C62369DD3727A163C58FA047E8DF8F6FDE3278B075025842EEDCED32B8010BE8A146F48B60EAC38F6EA8AEEE9E4BDF715F749F5F3D1B04AE8E8FCF8CECEB3175A07520AFBBD99C3ADC3B54053D1E9CE7EF68FDBAA9DBE0F4FCA2E23BF0343BB7A33951E5778DCA6AEA508FE1BC3A3EFF2674ACF8C515BAC7ADEFD02BD82CCE115BE6B4957E702036D1CDEEF37D18B84A27736A3EB6AA22BDA32A114FA967D10515ED9F504F86A6D5766EAFE2FC046DA275F0B9B6E367BADDB2FA9E192DF43B981A194B193D73A2F93638059BE836708A80618EF17DBD673B387EA9C7E3A6D1597B85FAE77792485FA0B3A4AF9CDFB5EB191AF94DB3B85A4BBFD649DBBADF85232EAEE4B5CD5F33B8C95B92D27A37EF38B6A1B981BC5F4F15B1086E56E0A35AC7238B9A67AC6A3CAE6B4EB1ACF53358E31CE7B5DC643EB65CF79CA34267D949E98B63ADD78F1DBAFD6DC355767B5FEBE859AD1F66B47E3835DFC12D1973D871746DDEEF3DB47E3AE3371AB3CEEFBC5ECBCBFFF2FD5C6DE853E666F06B6C9CFD1D1C1D3E0FC7A26D19C7AD7806FA0BFE86607BE15BCE39443B70F564665BCF45B44D9CCEE9FB9F9ACFA3C34BEA7F6F8DAAC8705C65B43E475F655636F4E76746E2D1C54B7A6359E6F2F8C2C052C92796D7FFA73C972D3DE79B8CAB5ABC078ECE77BC6FD41FE045B807F7E21E5EEF1314BFB271853C8DEF68DDB4A552D96383ABAF2756D5F8E0333513798D9FEDBD337DFF7DFDDC7B8657BBF52FBC7E438F933317FB24E76C7A785E698F7AE779B9563BA55DB6AE55CFBD5EC2BCCC279AC5D5E2CA81D6CB455D09AE1E8FADA8E70E7EC37CB1DAF56C5CED54F1DFCB3969190F7A2EBCA0E7CAEBB159FD3C850A89C6562A8EC1E9ED6B722DEEC775E0729DD23F574D446709AED62CBDD528AE8ECFFF4F4D46378DC877BC4787B9E1A216666A893947EBB173CD2DCE357FCB697EB169FC3705F5F9AB5797E47FCECED49D93938AE3717DAE5CEF5CF315AEB5A3AFC5BCC0E95B0BAB7FE0575FF4F655F0AB4E16B1CD41DA4170757F685D73BCE2758AFC6A59ADCC255DE7846EFDE7195717AFF595F823DC70F5E1DA9A7A3791A8892BB916D7E05AF832C2EE1F995B37EA970A4B5AC1AFD04D5F0DAEE931B66C3006AE6EDFC91BDBE8860B370CF9C155C671AE1BAE3E585D55EF2D2ED6C595F35AD7D298B4623E88C0D7979387663E188D15F9556C62D1555FB9F9B29CC7DC740736CFF67B6DA4654D6245755D5CA81FC5E3652C61036F1F1D99F71FE772EAFB4343EA4636AB46E3EB97C65926195C2CC6DB2CADC2155C0A3FC3F6DEB9F90EBBD88CBEF23AFF9F2FF12B70F4E9FE7E857E125CF1FAD98B17465FD97E9F3587FEEA24617DF3ABC155F31AF6B38485ABF9853D83AB83E30B6307878796D448FF8C1A1F9C550FFB62C667B595CE79C655CAC733B1163435F05825B42E623D69A2EBBEFABA6F4C3D1D7DAA66279E559D0F3E8D6F9BF5A3B0FBA4962C270FAEC41A672B705538FD46DDED5A303A2A7FF0C2E0EAC1404263694E0DF44C1B991C8AABE4F335839F430F3EF46DCD0359CBF6B21E886F625BF35CF837D7E65A19CD7DF16B6C39D6D89C7D8684DD27D5DBB8A01E8EAEAB85A5623BF0DF5877DAAFE3FB0E4A24AE8079166D29EFDDFC40ADC015F60E3B886007C1D59DBB9B9AF7E4F4FB2DA31352D9A30A5F68555C810D3DFF67EEDFAE36EC5449A50FD461E1543DEE1936323D185593DD43A6FD11EC43ABEEBD9DDD5113DA0E44869FA82783136A6978D48C53FAA55DB8624E889F015CADA6345FEE59AFF05FD5924BB8D26373ADBBC7C46B85DDAF614BDEF413F839D36333677C4489A55D730CDBE0E423410AFA92B90FBEC08799DA3CB415B8C2CF3E329636AFA2AFEEF73F57BD77A7B40D8C798A3D70CEFF845FA1E7889F09BB7FC392F1C121DD9E49E3D7620D1F19195B356399B9376D1E8B65D4762AA3FABAA2668D63A4FFA9E11EB189445D9FDC97DDD3E5DF080FB6E7D960EABF0F0F43C115BF2776F15E5FBF8971254EE6C1C0B87AD47B5FB7CB985A8ACF79C2D6A5189AA5559549EF9AD82CE64393D18C892BED749E1DB4C4A309334E73F933DDBE2B464789BF90310CAE1E4736D466326D70351359508F068AF325F8AC175CC96FC016BE6C1B57F866F0E1B41B57ABA982D155087342387C713E38A122FD03C66F5C2FC6A296104B7AD562F38294B9E9E532AE649D0C6CD1DEE06A762EAFA2D1B4D157E06229BEAAC68717745F786B73E21F89D566FC323FB6E79E1CEFC9168C4CAED59EDFB40257F817E0568C1D70C5771CEFB41894AB28C483089792F64DE75E6AAC1DE97E7F69BE73FA0983F2C931F724A6D21B1E5EE30A5BCD67D6A31AC5157E763085A473C5D816C6576C3AA5D2C41C7740DF5C65595AD937ED892DA08D8B7E1CE64AAC25BED27D77A426274ECC7A45B13F8E34275931FAA79DCF29B970C41E06A1AF18435DDD8BC67F45FC95D8C16B5C0523F811F2F9828A479E977D0BB680B3FC01EBE77B655C11E356CBA7D30A09DA0EA283F18722A2A7C1D56C2CA57201E5D0BEED823DAA169386C089C83DC2FEE1E7E53DD86AE73306852BF813AF8C176CA18C1DE1577E7C57D7D29C901F77AF6FC9E029AC67080A573BE94D35D135A8C6EEF49B3C2FD1CBC2B1AEE5EACA8BF77FA25E7EE7BBBE7E1314AEAEE5CD11F8CAA6E041CB37BFF2ABEAE2377F4B9D948EED68C1AF353DF6DCCCF1DD728B83C215EBA0D87DEE2139CE92436A4BA7C4615E4B75913C4AC9FF3D9E88A8426F9FE953FA17C197857F8BDC17B76B0485AB4C326BF29B23BD23264665E4E6176A7AF06BF5B8E7A1894D19BD754FC5869FA8C9EE076A6E7A49B9E53520CC5FC26ED7B75D648D83F93BF10A1BE4056B5C113F492E8997F95750B87ABCBAAF6E640B9EE5A3F4817A37B1A13E5CCBAB0F56B7CD7B5E7F12DF0ABD5DBD086399D89BED2B94CBE00757F6E730F9D5944B4C792D618DE99F8787D57FC662EA5FC7C7D5BF8C8E9AB5A74F527BA6AE0939BCDB2E71599D22871A4FEB7DFD2AA7C7F259A9AEC95588B7F3228C975AFC6A4B0BEB43AC13AD2FACB7945FF9C51531C07FDBD363E2CCFF717050FD5D6FAF8947175CDDBA7DA76370E55C03276727333AAE8E2353EA64744CADC766D4CA52CAC4961177477D91B09FB9D9FF0B9722D68DD7A34854ED77F794B9315C9A9812D61C9DF9976EB8223787BE6C97BE22EF8AFC2B72657E3C3767E2CEC1153500C897EB245CD1C636AE3634AE4EA2D3AAF070C4E02AF97CB16A1B5F35919CE1ACFE4F70A9B4E6ED4B0383468F516BA556CCAD8D2B6AB2812B89356897BEC2FE912FF3CECC8CFAB7C94983AF5B9A7B510F805A6161B7AFDDCEC2394C3B5BB83A1A192BE32AECE70CF2FFDA9F5FFEE087EAE55FFCA5AF6B8021E20EC3E257604BF8D547E9B4BA99DE37B5517E7AE3938ED25776EE5046B757A684ABE312AE521EC6F0551127BFBAF8F5DFA8F05FC1AF4CCC9FB6FF9DC4AF10F81598825F812B383CB8EA547E65BF2F68DDBEAFE7E1C7E029A4E7C47704CF093A7E56F8D541A9F6EC911E3FFBBA4F1AE557EDD657D83F78153C0B4CC1B5E057D47A7A57CF6D3B1957E26308B38603B12FCC11825E07147E25B156696D3F9634DFF5CBAFC2C215F33F7005A67E188D1A5C09BFBADBD55D710FC6475777C2CCB9C2C6156337D3409C5A9082BE8A4C674DADDFA0FFAFFDF9E577BFA72EFEE88F7D5D234C3BF8D354CAE00A3CC1DBD15FE82B62C1FEEB939B15FA8A757AE2DAEDF847FC93D427C2370CA726E728683D52CD0E6EEAB16B6A08E6DB1B8322424C36BE8DA0EA468B54F0ABDFFB7D75F1DBBF73C97FB530B3A2067B9F189ED569FC0AFB0777875F7DA7BBDB702CF15F311F74E28AF64357D971D7CF1633AA7B6256DD9B5A50BD4F96D4178F9FA9CFC79EAAFEF90D13DB8FB8AD6149BE6AD9AEAD6C98B622DFC0AD56845D4B22B9B06CE683C791A83A29F1F64CDA7B0E889B349A17994D071F0B23FC4AC66641FF3F377E454C57355D1926AEDC043BC8F5A861E9769F558D3BBB4EC7D07C4ADDDCDD553F8844D4FBCBCBE5EB509B01FB8A3FA3584FEDF56FE00E12BB8A6EA31DC96DFAD90723E535FA6AB8A2D608F3416A08DAFEAB667125D76F0403E67DC0FA9936C20E98F1ACFF6B3BF915F1AEC454931B399CC8989C457C9B086B3208EFF11F60EB788FED937A1C723E9F3997BC3470857F36EF52F3FD32BED2C65E8267AE01AEB886E00AACC1DFC0157693BAF6CE7AC2761B0AAE983BBBF5B9D4AE71FA454F1F4D04862BC44B9F399FDFD42A0F3016376C7E95CBBF525FF446CC7E19E80D3023733B78389FF17BD2BFFF3E3DAD3ED9D931DFE3FF147EC5B91C835F712E7E06EABBE06F77EBAB9CA57798378ABE72D6B602ABF035D1579C2BB1FCF6F5880731FD9ADC56DDB71F1BBEE0BC277E67E73A4ED9DF1E901D145C89DE72DB4BA11E06CEFBFAD50B873F991AE57EB1EAE4572FFFE44FD5C5EF7EFB92FF8A7148AE2B715841F3ABECF62BCD85E60CC7EE9E8C1B7CC095BED7D767F812DC89D77F1818B8A44B6C7EC577AC110ABFBA993E30B5A3B9E646AA92EB6CA19F2FE16AC3E0131CDBD7E67E5C1B9D08AEA40EB5B48B7D4DF415782276D76BDECA9ED60F793D4738C4CFEE11034EB16382ECE771D319D5847CDD54A9FFBFF9A55F36BAE5D01A7BFBBA0DCF35564F4AFB45C0B9C94F8D8ECE9B57B73A2A32DF95FAAFFBDA2EE4D847279D2DEFCD00AF82EF56DB13A4597D05AED853A57BF299B177F42F827E12BDC52BBA03BD62F73DE7731EF8E23C748ECDDBEBE92B6C1BB80243E83BFBDA6207C9FB0657D48FAF862BD1497E30815D2477E1C0C75C50EAC1805D79BF5ADAFF20571A33523B3CE7B10F2EE92BAD67CE1DF97D529BC33E86BF06CE5DCD9F2AF8110E9AD1D758D5F683FF4C8D8C5A391B41E9ABC9E8AAC99797FE854709A6E857B175E00AFEE4D429F81910C115FA0AFF157BFFD4BB3F3C0C7E85CDE33E4E3B085ED157F421B55F83DC1791F99BE4E8791519E3C45AE2A72EE2EB759BAF35D00760005B2718A0DF9FF5F49AF83BAFB6B4165691977FF6E7EAE20FFED0D7359AC94B05570F86E78C2E107E0536C0153C1AAC8019E6697C76D6CF73E757455C117F554F5F316704CFE826F0ECC415D703CBC2AF64AF2B377D452CA49F763BD2F3C86DEADBA49BF35F05812B373DD58CD4E3575B257ED5DF3D55955F3593978A1DFC72206EEC604F64DEE0038E84C0B1E057D8BA5AFE2B38106B84F02BB067AF0FBAE1CAE6573CB3F02BEEE5D4851C137E0506C50EC21B2E5D53EBBDCDEC9E990B3A6B3623B4B31B6F27FEEA48DB083FBCDDF6D14FA70ED567C9BCA977F05972A72CC5CFF98A9ABA75758BFE7F4E7CE127F6EBBF107E25F68E75D076F22BF4D5BDBE19F5B35BB70DAEE85F894F40FF6007915AFE76CE43BFF11B5977A6160DEB38DE70952AF334FBDACC3D3966E34AF6FCB071853D43C4CF009F759BABD9D8728BBFF2822BD603EC3E9EC8148CAE159F0C7A9DB1C631F4ED94075C5DE2EDBFF08B65DE9E2AB5D38ED6D127F86F4BBA1A5D830F98F1C36B35DE4E9B481C7B4EF7474AF7C75669FF995AFB39348A2BBB4F322B5935343C69F48BF42F764F70026ED041D570C5F9B2F62CB1586207DFFBE0C3BA76B078DF0DE3BFE23A4EDE0E4E5987045760D5C9DBF93FE217653ED8732752B12786ED03E03DDC55E245FDF8AFEC7693B61C5EDEAB990340CE801F7DF542F7FD0BADE72FE14E8FBD4DC71ED2D48CF979FF72D59A975EFC0CF67F0BC2CF40BD29D6E8E433B18045FFD586C109E30E7C487C0298A9852BF499E81B7E2B7E51E602F5DA947B4F956AC839FD18F02AF169C1DBD16D398B07C169EDB6117D45AE502D5CD9EB38457D55DF0E3AD78CE419B033626BE0DB60605EFF6FFCDCDC87D77AEB3BC20DC5BEF23B383B5C5E74B1DFBC3A2FBC9D36059BD562FAFDE22A329A3035BAA48DA6F5FFC027809F011DFEF7FDFD46FEFAEE5DC3B3E04DF5F895AC0FC287C4CF50CD0EBAF91984FFDBD766CEF057B76F1B7B28BC5DECA073BC156DFA89A961CD1E506EED2CE7C97BFC577BBA3F0BE802973DA1ECB571E77F90E3B2C72CEFA576AF8D052FB99606B7CC394A3532399F6B710D373DE21557DC5B728DF68947D6D7B7F91535C86AC551F8C5157363BB461731CC4842E381B5DE2F9FAD97D77B1B9107CBC57E9D77E86E91EC76A10257E83B30293A0B5D253E7EE157E8BFB2BFDD6A0F2FEBB66EB8826B60DB642E4F5C0175045913C7BE3C18664FDC9DD23DB24672C48CD768DB463160F6660443E83607F78123F95DD3167E25F6B31DFCAA9A806389B30FB2DD2EB551FED4F41FBA00FD4B2CFE533DA7FA7469537DF27C43DDD673A8CFB41DE5F5E3B975738CCFC5FDA213C60E720D89832BDAC7ADAA39BBB57085FD8A692E83DFD1FC7F3D7EB90E98E5D9F03BBAF9101A69DB5AB2415F9778D0C5B77EADC2DF9ED6F3C182D6D5E26FDF2BD4B789F5E2645AC1AFC2147C89E0C05EFFA07FFDECE766E761711DAE576F7F72375C9D521F5E630A39ABA20FDA812B5BC0D4CBFF78E7D2B14D8D9103FCED257BEAA5765F05BF725977862FDCED7A5E35F6EB2AE10A1C306FF05A2BB39E106BC91CA45E7CB81357264E46F3E2A3358DADF905C3DBD71D7A9AFA9BAF7D53F94BC2B1C500EB0560AF8CADD3D861AF3CF83E5C1E1E64AF3561A3BDC4DA0A8F121FFE96BE5E52735E6C11D24E3BD80EC1CEC05D82AA9789DE02577076AFB882CB96FD575F4FA9E39147AE795E7045E60CB2B625B1B11C83F379F1797A15FA59F63B97FD1F784E27E7971A18F5AE47DD6999C3CAF5B91EAFE0CA6D7F905AB862FD4CB86DD8186A878029B8B6177DC598AFF08B46A6D4E9E8D8A5BC54F8155C6B7475DF70BB6A32DFA1FB3BF11FD06BCD5E070CB1262BB8626EF7B6E00ABB4A1BD6E357CE751F832B3D473ABDD7A78E34775FD77662652563B81AB615BFA3D80BFCD9097D2EFBFACEF5F619C14E71ECC8C53F11B6F0EC708D667331C0501079A957518A710ED56B38D5929CE62F59CDD90FF04796ECCD9B52F72398B6BD3AFCAA15D268DE81EC6515A4CE01DF6F4A0DB0B71D57CE5805B3961752DE1678C29F1AD47C374CF18B2B78EEED3B73AEEB1DF6395765EF1AB71892B0C6153C0FBBFC36EA2B7435B8A9559387F99097795627C87A69CD8275DAE7FD03C51AA9D33175EEB2A75EAB85B68537CB7A42D86DD38CF8C515EB13E8EA5A7E10F636B812FA5CCF577635FFDE653D5ACFD1F0FBC87ADFE94737CAFE85763E532BF24C9B7EA6ED13A343FDE45537C2AF569EA75CE38BEC7336D2E170145FC2DA3CFBF3B2079D23F6FAF09FBE5F8E5769342EA01171B3CB671EF61E6EA5A01FF0F5D5E23E41E0CAEDBF3B8FB9B64F1591FADBCEE3F878A969426C126B80D829EC15BE1FFA9B5825E26CF10979C911A9F5FF6D21CF73575FDBCFBA632B7115864DB6055E837DF6E38F6904577C8FBD603CD3B7C43148DC9BC8923EC638E71CF2436A5D0FACB8E5B6104F49DD64EA24FF289E34359311B7D8CAF71633EAC773EB46389FDF253CEC35E4D68F263E20241D21F1ABE27F25DEEC9CF629BDAF1593DAE8D8AA27D84170D5523BA8392EB6837AC0AC6DBAC5D7929FC239C455A04FC4EF5CD186A5186C72C01993BBBA5DF0D11283476EEAE74F964CCC37717FC433136345BC9E33AF47E2F8C86F4578CFEF3EEB1BD33C6F542D2E55E630DBB1A0CE63DB21D6B4B2DB11FF98E17B7A2E819DA6BD6BE539FAB1117E6533EDAF4D1AC1D57E29F682382FC943BFF49FD85B429F53D0DFD30ED5D62973E92D8337749E3DD6245690BC82666A882CE8B9056B53B56A3D78CDFF0C035765DEAADB9876246E212C5CF9BD7623F9834EDC55E0AA1E364BC27A9A734F5D72C7E617722666F8AB44A658D3BD1417E0CC3DF5822BAFFFBF53A49A1D5C73B1834E1BE0B5EF59BB84B3BAF156F4A2AC61DABCD52FAE1AC91F74E3E87E793BEB9AACD13A7342C0D5D3F89AA9A700AE24D7959C1BA91722428E3C3127E0EECEC989C9C1210659F2AA055707C745717B8E7D7D1F6AEF345A7F2A68F1C3DB1B9D2B096F65AF0FC4E6A9705304BEFACECCA6EF6B8B04311F6C0457F896F19BBAF957A92774707C56D70E4A1E35F14D765E193914606B722669F03919DDAD8AABBDC121C35B3A25B6C0C9AF8CBEA8C2AF9C6DCCF755397D49779037C07825168CF16AD70C931C297259C80F0067924FE7B78E78B3B882BF4435CF8E3BE6738DDAFAE5E4851A8FAC9A1C2EFE3F3A8ADC40F6A3003B7077F4146D40DBC0D3A58E0DE7C9DE15E8307045DEE0A3899CA9D5E5763F625CFCD6F16917AEE056C6FFA2F929CFE89CF3F9C115429E09D8A25D2567D8998707CEA8534DBEB0E08A9A51EDC615FA867C17C4E64A8DE2AA704AEC74CA8C2BF41518C2C6A17F980782176A5A49BE3439375213025CC91E03D84470456EE3C3D1E5AAB85A4B6F36F49CAD1227BFCABAF819C4074D9C70BDB9AD2D8C313834B842C74B1CAB535F49AE7A98B8229EB64F73EA3EFD3C538E9CB966DB185C8129F024B9E57C167D05E742578135F41AD8939C74E157F819124BD5ED605031CD4189177E55AD6DEBB53998C2BED0AEE0C90D57B41D98A25D6F946A7282C776F02B93CFA5CF212F7D687A517DA9F1FD9596AE473193AB4C0D00B7F970ADB164F3006CA08C2BB183D840C692E4DB07311F647DA2D3622E9CFCCAD48ED55CD3E657D5FAB89E1DA4EE8FCCB3FDF02B70D54E7D855F6839B5ABFA66936A6069533FF782DA2CC5D77B59EBA925E4FA79E1EDF029B006F6C899C627FA375D5D669E885F94F9EE7864DFD50E3217AD56A3A0137055E6575A6C7E65C7DAFBB183CC61680FBFFCEAF69DBB6DB783F83C1927FC5762B8F187D006364FF0FABF455F717FC6D5CD07C59A59527B4DF4B35DE38A638C3BA96B2A7544C055CFE0D746EF4563FB55ED60A74935FF951CABE50FA9371F445F096F97FAC2888D2B3EC355C197E08A5A64EDC655A363B196E067C0C6DE4FA40D3E4C7D48CDA1D0D1361FE03BE19F760D113E9BFA8F731B864FE013BB2AB8AAC7AF6AB561BDF6A52D845F498D16700477E533EF693BA9DD29FC8A35B576F02B7B2F3EBFE2E7D98258C7091B27CDE0AACC274E5F14EBD844A2C6875B5527795C7776B62B18C2EEE1FBC36FC32B63F4FDE54D8305E6D42B3EF76C69577CBB5B3BB0876B3CBA68EA7B518F9FFD1ED616D60D07A0BE28EBCE76CDB55A18125F16356C78656E08BF62AC6D94EEC7BD66220B666F33246C0CD5C395D46E392B8D63B846ADFD59EAF176FA957995F076A97F273515D157F8079DFC0A5C3563075B9997EAD455E83C6A99511F8F9A53D4029F1C8AABCD54719D125C7DAAF995D466AF554F121B09AF0253E09036C30E760F3C36756404578F06664C4DCCD844C2E0386C0CD51B7F4EFFD596238FD10F7F45F731CF167EC53C9B76E5153E21ED2875786C7EC57CD05927C00BAE242FB5586FE4A42DB8E2B3D4F321BEE78BDE4513134F5C37FF1F7E35913934FE2A6CBEFC773711BF156DC1B9BC0757736BC53D9CE49ED401BB7377DEF8AC3ACDBF504BCE3DD65DAEC7330ADA9EA2AFC42F28FB8248DC11B50DC196ECDD27FC0A7CA473F05E7FB8024BADB6831B8E38E594877BACAD68DD353EAB1E0F4D19AEE457AEFA7ECBE81833FFD3F318E157B5EA36AFA7BDEDD7588FB7BEAE9F58D457C4C33D8D1FFAC655F1995ACCAFB48D852B482C96F3B39B10D346DB86B977649862E7BDD6E357C49E13D3E9E5BA739A8F3F984D9A3D8DC05835192ED5B85B6C60FDB46D79A97AAE4C8C4F79BC393F5F4B53421D45CF7BB0946A10B53236A85DB8DAD5F3633B0F21AF31D5CC9E08D7D2D9D22E5C39F954A7C5695E4BB0D22E5C2D2F5C5ED7D97A4B39D3DB22EDC015B1A1D8FEAB9E1B7E2DDEA51DB8221E05DFD4AA877CBE6B7933E46DAF53742DAD11375CB10FFC5A3ADB1182AF37EC67B80ACFD469CFB55DF24BDAB80A0AAB9D742DD63082DAD732C8FFB79C0C6E3D29A8E762FDA5115FA89BD879A9CD0AFD1714EE837A2664B1B4E7C29BF84C413F57507DC8FAECFF0338DC9FA9 - diff --git a/PIC/door.jpeg b/Pictures/door.jpeg similarity index 100% rename from PIC/door.jpeg rename to Pictures/door.jpeg diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" similarity index 100% rename from "Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C02.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/Thumbs.db" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/Thumbs.db" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/Thumbs.db" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/Thumbs.db" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsp" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsp" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsp" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsp" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" diff --git "a/Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" "b/Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" similarity index 100% rename from "Software/download&driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" rename to "Software/Download & Driver/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" diff --git "a/Software/logic analyzer/\345\233\272\344\273\266/logic analyzer.bin" b/Software/Firmware/logic analyzer.bin similarity index 100% rename from "Software/logic analyzer/\345\233\272\344\273\266/logic analyzer.bin" rename to Software/Firmware/logic analyzer.bin diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.drc" "b/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.drc" deleted file mode 100644 index 444041a..0000000 --- "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.drc" +++ /dev/null @@ -1,24 +0,0 @@ -Protel Design System Design Rule Check -PCB File : E:\PCB\逻辑分析仪\logic analyzer.pcbdoc -Date : 2021/5/2 -Time : 2:24:49 - -Processing Rule : Clearance Constraint (Gap=10mil) (All),(All) -Rule Violations :0 - -Processing Rule : Short-Circuit Constraint (Allowed=No) (All),(All) -Rule Violations :0 - -Processing Rule : Un-Routed Net Constraint ( (All) ) -Rule Violations :0 - -Processing Rule : Modified Polygon (Allow modified: No), (Allow shelved: No) -Rule Violations :0 - -Processing Rule : Power Plane Connect Rule(Relief Connect )(Expansion=20mil) (Conductor Width=10mil) (Air Gap=10mil) (Entries=4) (All) -Rule Violations :0 - - -Violations Detected : 0 -Waived Violations : 0 -Time Elapsed : 00:00:02 \ No newline at end of file diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.html" "b/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.html" deleted file mode 100644 index 2fece26..0000000 --- "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/Project Outputs for \351\200\273\350\276\221\345\210\206\346\236\220\344\273\252/Design Rule Check - logic analyzer.html" +++ /dev/null @@ -1,292 +0,0 @@ - - - -Design Rule Verification Report - -Altium

Design Rule Verification Report

- - - -
- - - - - - - - - - - - - - - - - - - - - -
Date:2021/5/2
Time:2:24:49
Elapsed Time:00:00:02
Filename:E:\PCB\逻辑分析仪\logic analyzer.pcbdoc
-
- - - - - - - - - -
Warnings:0
Rule Violations:0
-

Summary

- - - - - - - - -
WarningsCount
Total0

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Rule ViolationsCount
Clearance Constraint (Gap=10mil) (All),(All)0
Short-Circuit Constraint (Allowed=No) (All),(All)0
Un-Routed Net Constraint ( (All) )0
Modified Polygon (Allow modified: No), (Allow shelved: No)0
Power Plane Connect Rule(Relief Connect )(Expansion=20mil) (Conductor Width=10mil) (Air Gap=10mil) (Entries=4) (All)0
Total0

- diff --git "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/__Previews/Sheet_1.schdocPreview" "b/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/__Previews/Sheet_1.schdocPreview" deleted file mode 100644 index 45a3307..0000000 --- "a/Software/logic analyzer/AD\347\232\204\346\226\207\344\273\266/__Previews/Sheet_1.schdocPreview" +++ /dev/null @@ -1,14 +0,0 @@ -[Preview] -LargeImageOriginalSize=706000 -LargeImageWidth=500 -LargeImageHeight=353 -LargeImage=789CED9D5F8F1DC779E6CF37C93748BE0107D8CB05ECDDABBD5860C804B9080270495F188B0019706C68E138993063074E9484A62959D65A182F4D4B564278249A8A68DA198B2165DA6634F2240CE1581A3A124C44466C4A02B4E7E933CF99B7EB54FFFF53D5DDCFC50F7DFA5F9DEAEAEE7AFAADB7EAADDD6BD767BFFEF023D102BB2A4B956584A82C559EB1A2B25479C68ACA526519232A4B9567ACA82CA7579E7BB7EECCF60FEE07CFC758CA1284CEC718CA7228F91C421EC9E13BBF089E87319427CA51EF797B6539847C0EA53C2F5CBC243D6FB12C8790CF21E491EF79ECF5E610CA92F9C4F3193A1F63284FD4972ACBF6F23884F77C28E53984E772286589F77C08F91C421E6903C5FE9E0FA12C99CF21E47528791C4A3E43E7A1889DCB5712D476D40E4328C7A19425F45C6D1DD3CAE710F24886F0AE0FA13CF5DDDE2EB17FB30FAD3C8780CA526519232A4B9567ACA82C559EB1A2B25459C688CA52E5192B2ACB7ECB937E18510C7C2CA1F3301654962ACB585179AA2C4395551B7A1EFA9B43082184983265B4587A2E841042C48DF45C082184183ED27321841062F848CFFB81F168317696E3BB87325E51082144FC48CFBB875ACE38AA1BE73693E59062FE0A2184881BE979F7300E13749D5ACE3118B2D1851042B481F4BC1F68A3DB367769B9104288B6909EF7CB50E634124208312CA4E7FD9635DADB49E8FC082184180FD2F37EB03A6E51D90921846803E979B7B00F7B1E43989B54082144DC48CFBBC5A7E7EB274FA5D6D52F4E08214453A4E7FD23DFB9104288B6919EF78FF45C082144DB48CFFB477A2E8410A26DA4E7FDB3F1EA66F03C0821841817D2F3FE919E0B2184689BD07ABEFEF94F27FAD694134FFC4E2BE9AC7FF913ADA535D6745046A08D74766FBF1EFC1D10428831105ACF37CEDD68E53ADA4A67F7DA83E8F2145B3A2823104B3A420821A4E7ABD7223D2F5346D2732184888BD8F4FCE1C1FDD99BF3F41EDCBA337BF4CE2F9225B6BD76F152F2BB693A772F5FC94DC7A7E7380769311D6CC3FA9B05D7EDA683739116D2E13AB7D52D23A6C332EA231D9F0EB35C6D1995296B371D96AB2DA332652D84105327BC9EDF4AADB3DEB64B4BD7E9EC5EFB9937ADACF4F2AFEDB5CC74DC3CB555467DA48332024DCB68F7DABFE5A653254F42083175C2EB79DA7E736DC622DBB5ED7476AFBDBD9216EDF32AE9F8F2646D71E42FCF762D736D58C28E6D5A4655D3411901B78CEA94B59B8ED5EE2A652484105327363D0F9D8E4FCF43E729B6747C3A1C321D21841061F4FCC2C59F24DA024EAC5D5DFE0687EF3C5EDAC320CF97BB73F941663A7BB7DE5DA653E4A3C6B13C6FFDE48D545AD01BE60569E4E567FFE0BD541E6C3AB8666B0F17B78DFBD3D93AFFE36519E1BA909FBC6BC3F1456554C6476DCB1A65047C6584635956BE7CF17BC9970ECA8879417B81DB7E2F8410229BD0F6B90FDBF7AC4AFB76563A457DE9CAA48325D269A22D3CD76A551BD7D6561915F5832B930EAFADAECFDBB6B5B3EFA0F45C08218A096D9F5BFB8CF639FB7DE3D8FCFED16F67A6035B99E9D8F47C58FBFCF499BD15DBB3AC5DEDDAE7AEED8963988EEDE7EE232B1D7B6D6E1F81AA658DEB2E9B8EB5CF5146C02D23DBBF3DABCCED3D73D3415EAD7E33BD873DCF0F8FE719F3DC02CC4D8FF96C35A7AD10227642DBE731FA8663CB536CE98CD97F8E67191ABE33FFDE025BE7B797FA2E4D1742C48CF4DCBD16E97999321ABB9E43BB310F1ED6A5E7428821105ECF6FD53EB78B747CE3CF43E729B6747CE3CF43A6D336D46FE83A755C5A2E84889DF07A1E5F2CD3D8F2145B3A5389F77AE1E225CD1D2884180C55F51C75DC8ED39F5A7A3E8C6B939E97037639DADA89FBBC0B21448CB85ACCFE3F59C7D09F9897461562D4AAD8F2145B3A63D67368399F7197D0791342883C7CDA5CA4E7AE2FB1495D777AF36BB3DDFBD71BB3FEA93F6F259DAD2BCFD54BEB5E77798A2D1D941168239DDD9B6F047F0708FBB55BDBDC42BF7AE87C0A21840F578B519FED3BE37DBBF49FEFBD75A7158D09CDFAD953B3ADAF6E07CFC7D038FC653CFAE8DAE6EB274FADD8E8D2732144AC84EE0F371668BF85CE8768F79E86CE83104294457ADE0ED2F3F1213D17420C09E9793B48CFC787F45C083124A4E7CDCBCFED37153A4FA21D369ED3BD14420C07E979F3F2A3A6DBFE54A1F3259AB3F1EA66F03C08214459A4E7CD609C6F9603D6A75C1E63427A2E841812D2F3E6E5C7EBA77DEE8EF713C3447A2E841812D27321FC54D1F39DCBFB49FCBDB6407AA1AF5F08312CA4E742F8A9A2E76DC5D225D0F3BD5B87C1CB4008311CA4E742F809A9E7A162DB5FB8F893F9B5DCC925F47D11F171E1E2DDCA6D50382774BEC786F45C083F53D4F3D367F6E6FFFB7626EB27DBBD4E310EEA3CFF6DBF33427A2E4416D0F34C9E72E76B797A791EDE07CC2B8CB90AD13792BFF99E1CBEF3AB44ABB7CE7F3F01BF61AB587B05DBD64FBE98B6699EFF5C7E9EEAB0FD42EA3FD64FEEE697C9B95BE93CE1FC8CB4119FDF9EAB7A62BC48CFE3407A2E849F3CFBDC1DC360EB268E79808EFBE65C855F1C7A0D1F39ED70D71E77D7F90D8065669EE7797A3CFF0FF03EE66CE73AE64334F3C8BC39DF466ECCBF331ECE8F7B70346762517B3AF7E3DC47F3346D5A45E587EF1ECC67C3F9195186765D0C173EFF7C4EF370CF11ED213D17C24F969ED3DE4E1D6BEA266A1496C49D9B8DDACC25B1FB7D7A9EDB476E9E7EA2E5F3FC595DC7BA3DEEEE7C1BF5F7E5B9C6529BB18EF6F43CDFF989B5ABC971F67B80DF046E7E4EFCCE5AAA0D03F3D5A10C507E007339725D9A5E8EFD77EFB7DF46538695F6A83427D69E386ADF7971D9E6E4C3B6392DCEC949773BC0757A409987BEEF65919E0BE1274BCFA13DD0A2D4B11DFBCFF11BFF51649F43BB3F98D7851FCC35167A4E1BDD1E073D873D0E3DBE7B741DB4CFCBEA39CFC71269F8F47CFDF3E9F9664F9F39BBD46F7C0FA11CE98F909E97E3F067F7672F5DD94ED8BD7365414773196FED6DCFD6BF796AB17E3BDDCEE4B27EF299A50F69C54F64F8D8C72F1B6D7F2637CDDD9BDD5C971794E3F54BDEF28C694EE722A4E7A20FDCB9C5F1FD0D4D8C39FE0E7DC05E6EBF9EB23BAC9ED317EEFAC4D3E5F128D9C73677FCB6EDE9AC1B53F6CDBDEFB55F8FDD7C23F51FA7CFDCCC2F9373B7D379C2F91969E7B5B7B3AD02F75E5A5E0DB6BD24DF6C8E2FA54D7CF730FBB918BEFFFC83A33637F7FB774848CF451FD016637C5C6A79CCFED32C3DDFBAF2DCECC2D7FF3E53CFB90D9A9DD547DD9E0B0D77E3C7F8F47CE3C99D421B23B1DBE6BF97CBA73617768739EE99F93EF0C5F9BE2FFCEF3F4ED27EE6FCF395F49CC77FF1337F9DA403DCFCB8ED94B17EB70D8AF9FB92B4C1CCB5877E95F79DB6A2B698949ECFCB9565EAFAA78684F45CF405ED32F6838ADD36CB6E6F3F5CD1DFB4FFFCD81F9EE5EFB6FBB084F6DBFDBEF676BBF482B6F579792676066C36B6B53BF69BEDBF06FFF96BA6FE2A3B5E8D6DF56C77F7F58713ED83B6DFBEDAA0BB686F3FB1F66C9CEDED39A8BD5D886CD81F2A743E8AC8D273F64D4F1DDBB1FF1C7A5FF81F07F797F6C5B23F9CA79CF3FCE77BB7DECDD573C0E3E93FB7FDE345B7ACF8CFAF5F6ACD870EED868677A9E783F09F6369F685BEE755909E8B3E413FA8A1CC159F679FBBF6B4D55A683DE3B5E6C5C0B27DD65DBBDB174FA64CFC57FA5353CB08CA52B4C4517BFB92F9F7585BFE5E3766409DF6F6A2F16AF6198EADBD9D65D995FFA20FA4E7A22FB2BEC343E72B8BFCF13B4FAFD81EC7D779ACC579EDE3B61F1CCEB7F55D6FF1642A427B2DF4BD99326C77598E456CA95F421B7A5EE9FF62D2F30F17FDE196E34222C84F1DA4E7A22F86A8E7DEED47DAEB6EE36FD8EE20CF7FCEE3B8B47DE31665B56A9F8788FFBA720F07D806392AD8E672D45722D916919EE3792F6A6F77CF8982A3D80D6D966708A4E7A26BD0EFCD8D2B72626D2DB52DC66728AB2EF3F55BEF237E3BEACADCF1E73D203D0F4B9BF164D0D602B87EE2D9B5D43A7E635BB078329F09DB1645D41F4E886C38FE3C743E8AC8EB0FE7DADD3EFB3C6F4E95DD6B3C76F19B4BFB1FBEF870AEDFBEF77B273D0FCB919F97BE5EDAEA6DDCCBB6FCE77973AA41EBDD73A280F6B96DF71820D273D13743D1F39D7FBA52CB7FCE3832457A4EB89EDE0F5B067DDA3F3AE6F94B95EC8AD3BB67677B6FB55B3749CFC3B3F49F1FF9CEEBEA4F177A5E85A8F4FCC38F96F179E43F1FEEF58BFE198A9E67C1FEEB769BF51F5ADCE3C0FE01EC181CBB005ACEE57119B9E3D58EEDF8D2E5DC81F64ACF037364472E7507B67944F639DA8F4E9F7939D33EC73EF79C28386AF748F9D10788F45CF40DC6B2C21F173A1FB5F3EFB1BBD9476E36FB6C27FF6175BF741A81F5DC9DB34634A789FF7CE90BEFD87F9ED76F331D5B46FEF3B6919E8BBEA9F2DD1F231C5B6EB771AE14EB1F6C544601ECF30B177F925A364D33D67E8E8386F6396D736C2B699FBBEF9CEC73A75C5B1E2F1002E9B9E89BA1EBB98FBC3E407569A39CABE839E736CF9B03BDAA9E730E96D0F7674C30E649D578E37DE87915A2D2F30F17FEF3A45CE10B1CE8332B3D177D33463D2F82F38B6309101F953152B90D7153193BD5EE6F52CE31E8B9B5D339173CC630BA73EE85BE4783C0F46FAFEAEF959E1794EB51FF42C5872B4E4394076DB95DD87B55E83276C914F51C739E00C63DA776237E3AB6731BE736E1FEA6E56CFDA1094FEE38F7FAD68C739BAF9F5CD4AF98E3FC78CEF3BD747BE91F7D39E937EFF5356E67FB42E14BA76E53C719C79FF587EA916ED9787E33FD7CDCBB9EB0DCFFDC666A1DBFDD73B2C0788EAA754C5E2C64510FE9797CC4F0DDDA651EA6A8E7760E322C618F53B77D7ACEFD4DCBB96DFBBCDA3394B6CF39A71E351D5A8EF9F5ECDCB9A1EFD39871C794B8ED226E7F87BAE350F01CF3F9B5F3F6705FE8721833D2F3F8909E8F0FB6A7A35EE3FC66ACE3EC1C65B6FE6BDCDE7E3B6D7F15DFF36EF41C7AADB9CFC3D3979EDB6F57CCC78BDF58F2B90F5D0E63467A1E1FD2F3F141BDA60DDEC77F56F54B77A1E7439817772AF4A5E76C6FC26FABE758EFEBD99F2A53D073EA47343C85F7E4A34C4EAC1DFB95F60F16DBB0643CB19DCBD5C621FBEE17EA59F834D9EE89DF3BA61FC8C6B917327DA14B9EAF77FDF4E9867E2EFA84360B78AD278DABA2E7C8D70F6EFD74D157EFE0E172DBA3066DE0438E193446FAD2733E337C7EF01DCBF6F726CF9328660A7A1EA376EC1FF8E38225F93D67E7DE5C2CB7CE2F628A51D3F1BBC93DA7A667CD75E6DAE7F47BC2DFD9F47E4FD13EB75A1E9B9E5BBFBECDAB6D3715C3A72F3DB7E333D83F0448CBBB477A1E066A336CED3C3DDF3F385E329E08E384D6FD6FABCD1C3704DB7CCFF8B65C3DE738A33662844C51CFED98B4AE7D88BCBF687361BFF2BCE35D3DB7FE7DF93BC7435F7A7E63FECCB1CD9DD0460F5D0663477A1E860B1717363749E53742FFB96D936FEA139DA29EF709EF11DB5FE857C93ADE6D0B95868F93BEF51CDF8576FC869EABEE998A9E73EC4E14DCBEBF6C37F7B17EF2386628EC78683FEDF93A71BC5D384608C0EE66FD9F7EB75F5A698B5FE15EBDEBDFDADB969E7788BDBFF85DC647C23146F8CDB684D0D7219A3E0787B3F4DCE39F4EAD6F9D7F3EC1EEB7EBF8ED9E137ABE5E918FF43C9C9EA3AD1DC03ECFD273B6B1D386B7736C36B9E7C5FEF3B49E431B689F2F638348CFA3C4DAE4BE7BEB03F613C706CB6F3E0E102B3DADE72F3A7AFEFD04BBDFAEE3B77B0EDBED6C3F372EF51D189EA9E879E83CB8EC1F1CEB38ECEF547E4D5B37ED70EA785BF639EB78DA6FABF6F96A7F381CA3F6F6F8E13DC56FB4BFE07751AC16B6B7DB3820AA9B878DFB0EBBEBEE9C3F6E5C48ABDF6E1AECDB697DE5685FD7776058A4E761D83F386E47CFD3F36065B6F2EE2FF49FBADE246DE9797CB02F32FBECC9DF397CD2E3641ECC4EAC3DBB8CB18A7673D8DE80EBD88F75B6A9E337B6D93676A4C96F3E8E2BE76F687B88F86F55C665E2FAF3E67F6B739EA410E335A5E7E1809603D7D65ED5D2E3E5FE41BBFDDB79FF8AFAB7DB389D7B0DEB79E9B910DD63DF61DADEDCC6DF76DD62CF716D78F79B8FBE9A36E61CA88AF519562D933AF8E64ACEFEAFCD545B591F9429073B97828FD86340058F1FD3209E0CDBD969C3B7E53F4FF9C1BDFE73C5931162C874A5E76CC7B1F18AB1EC5BCBEDF8D9BEF4DC2D8FFCFFDAF4D6AD5DC2B9108A282AD73EEF635562D48EFD83E3316B43F19F43FF712C964DAE5DF6B910DDD3959E734E40FACBE947BFDBE23CA3B6CDD0D64FB475B1B473FDD4D173F62DF11DC7713FAE7D5D57CF69ABF3DA782D765C691B731CA8BD3D1CD071F6734F3F0771FACFF14CB2DDBD49DAD27321BAA72B3D679F37EB3B6F7B4C04F5DCEA21B72FF2B199D2F3F593A7D26D876C0F7C32DDA6B87EF2CF97FF411B252F0FEEB7C2621CC027FCED94CFBBFF752A957F7B0D1C4F8AFF77AFAD69B9353D467A5E9DFD83B4BD9DCA6F84FE73C07ED2F29F0B113F5DB6B7733C04B6B9CB36B0E36451E7B8F6F9222FCDECF33C5F31ED73727C4E7DFBDCFE2F6D73DBF620FBBCE4731DDA5F3E56FFF9B7EA5DBFFCE742744F577A1EFABA08347728FEF3A2F1A26D31153D0F9D87D5323BB6B741FA3988CF7F6E357FA7A19F4CF6B910DDE3EA39E2C360AC16D6193F86E3D5DCF832D866E3CBF8D28C015B97552D13686C91CEBAFEC5AA7ACEF931FA2A0FE9791818BF95CBF47310FE9DC99A8F45F16484180655C69F1FBEF3ABE5F873FCC6B6ACF1E7A1AF6BEFAD3BE9F6BE2F9F4AF0B607E6F8CF17E5723DF7BFDC36F95CFFB9C38927D652EB888B79F8CB6EED74E979A067F2D6F1DC6A45F164F60F8ECF81FE639DDBEAE0C60CB363CBB3F2606382CB3E17227EBA8C0F179479BDF5187EF4797DF5B8A2F6A4E7AECCEF0FB72883553D2F6B9F238F493E51CFAABDBD3582FBCB1BF8CFA1E1EC07DFE6FCE778463986C2F6233D7EEEE53F1762C8B871D0606BDB75DAE776BF5DA77D5E373E5A977C30D7E1F7E775D8FB15DB0AFBF49FE35B03F94CBE3F7AD2C8A9E879E83CB8408F619FEF1FAC6A73BA9D6CB1A4A6737C5B13FFB9F583F337E75AF1E501D04F5566AEAEC2FF977D2E44EFF4355F6AE7CCF5113A9ED8BF0DECF3326375DC63AAEA79F2CD31AF57DF6F716C7E1ED2F370D87168A9FC46F00D9CE53F67FC8346D72D3D8F0BB605E21ECFEF4D95E3F7DFBD9F7F4ED9B4ABE461286946C658F4DCF59FE7B2E23FFF93653AACD3F2FEABD4F8F392ED94F29FB7438CDA61ED73CE85BACC6F847ACE3EF0B0E3A5E7E302B6036C0950E6BED02E82ED51742F99369679C7D9348BF25036BF3CA693340BAE2746C6A2E7873F9B7F435E5F3C7BBB77AEE4CFCF7C333D1EF7F499AF655EBF0FB6611E9F837100CFA5C7F966CD1B8D3C92793EF11DD275D94C45CFA3A2D07FBEBFCCFBFEC1621B966DB6B7539B395FDA6A7BBBFCE75381ED8165F51CFD90E8BB2CA3E724376D936619ED2D935F7C237496A6F43C28F04B27FE69E4AF425F33B73F5C19ED6AD2DEFEC1517F3BF9CFDB23C6F78E7DDBF60FF2DBDBB90F367C9BFDE1A8E9D9F164FCEDEDF29F8F0F685352EFCCEBB7B2F679A27F25F59C756FA14E1EA559467BCBE477E9BFEC20CDD2DF3E11311A3D9FD745C933357F663EA83897449FFDE1ECB35FB5DF5EFDFC5D6F7C8CF4BC6ED9A797CBFCA6FA6C1C2FBB18AF468AC6ABF13E6BBED4F1B1EC575452CF138EC6E014DECBA3670AFF917B1CC7F494FDA638AA730A8F2D9B26FA58A17DAA48CFF9EC2336D9C09EE12EF4BCCFB94097FFD9C87F9E8EDF5EE43BE498368EED95FF3C3C31BE77F49F7399CA6F84FE73C633D67C2CE3A3AAFF9CDA57C57F0E3BA555FBFCCCD972B67499B6FE0FCBDBDDCBB22AFA3E89902EF43C84FDCE3E98A5B89DED3F07457ACE32B07ABEE23F2F9B9739D2F3169EE348DF3B6B7BA7F25B53CFF76E1D26B19C762EEF27CF1DD6F99B603F8FC17E6CE3316E1C2837A6F3CEE51F246C9D7F7EB1EDDEF72A3DCB04DFA9B1DE93A953F5BE54F9366BF5B8A3FAB5EDFFEE2ACD18D8D8DE4CBF8757B613B8BEFEA953A975FCC6B67C7D3CBB123BD29DEFA9758EBE2793F6F68ADF137DFACF97E3D4D03744E3D55A6370EF5D4D3D872E239EA3ABE15CC73EC0ED8CCD8CFD8BFBB81A2BCAA6816D582ED3AFA1E5D2F3B8198C9E0F2CCD18A864D796B677CF2EFD776897C6923EB92EDBE2E9976E32FEBC0E75FAC3B19DA88F7B2C3D8F8F26F639ED72DFD2DAE88BFB96B6BF19B7392B0F4C0BDF01F6D8AAA8BD3D5EA4E7E3D5F32EB07377BBF1A3BBFA4F8C577BE9A9CD640CD84BA63DA1EA7835CEC39AF75FBEF1E755C6AB319FF8ADF16A2D3D73037BEFE2F49FFF2AB1CBF12DC0391DEA223D8F17E9B9F4BCD2FD0F50F7B7D51FAE4CFEDD983355E663517FB86E18DA7B97F6F11C2FD90F1EFDDC2D65D3E5DC7DAE7F8BBE2FDB3EE6FBA6A04DDEC4364FFE4F7A1E2DD273E979F41CC543671FCA2AE7BAF15E8BB48BF35B70BD6A7B7BE20F50FCF65629FD2DD71715E66341DF77C46EB773B1658D732B82B15AA9DFF077658F3F2F114FA6E477A98BE2C9C48BF45C7A3E04381FCB10FCE775E681AB9FBFE2FF19839E87CE43161C579ECAAF33FE1C1ACE63184F06EB5C96FD2FF651614C18DAE88CE55A144F8631E414EF75BC48CFA5E7D163FAB757D549CC39D7A47D11BE463B0E288F65FB0162301CC561E81AE9797886321F8B6F5ED55AD72B3D8F968DA79EAE762F6FBF3EDB7872A7D5B4CBA6173CCD8A6525C283FEBCEEFCAF5528EA3BF460AEE16F06D443E97958F60FF2E3C9D831EA3896E758CAFE978D07C7F8708BF416FEF4BCF8703C47F164C64DD56F49B43D963DA7EDE38694A6889B8747751FB418609DD8FD809ACDFDD46F7BCCDDB9ED63F7F7A5F153D1F3A8A8E83FE71C2C760E74C672AF12C7DDFACFB1840F9CFD3DE43F178BFB2E3D979E4F0FE82F34F7E5A3F177F8FDDABC8E04D06FEE873E3F9ADB36F88D25F6F1B8974D6C1BABE5DCDFC7754C45CF43E7218BFD837CFB1CFBA1F16C9367DF38F8CDABCEB3E6F67DB33ABE3ABFDAEA7CA98CF7DAF49A659FC78B4FA35067B14E03AC9BB0ED6BE79F9B7DE1CCE793EDB45BC08DF9F384FA8EC763DB17CEED24751CD75947F25C1E8B3CB8FF69ED26A48DE3903E8ECD4A9375B14D93FBEC714569629F9B267EDB34B1DDBD1ED6E3ACF7B98DD7C26D21DB67C502DE036832EF8FD561DE5BDC4B3E1BF679C7F61B666E18BB9DE7F6711DD2F3F040A353F98DE0BBDFCD03B45C7A3E7E7CCF1E358A9AC73A0EDBBF78EEE904EA1496974F9E4AD58BFC8DE3AC4ED2A661BAF84DEDE5B9562BB1FFC5336797E933BF4C937ACB34712CF39B9526D22A4A13FBDD3491864D93D79095A6FBBFF61B05DB1EB6F05E09213D0FCBFEC130E66369635E35223D8F17F7BEB3CD90362A7F73FBAB975F99FDBF739F4BB54D3EFBF1FF96D24E9EFBC5337F9CA4C9752CA177D03DABC37F7AEE85A56D83ED3C8E601BF412FB3F79E69BCB34F9CDC134ED366A2F6D641EC7A54D9365C0F3A9CB364DFB8D8034B1DDA6C9DF4C13E7D08673F55C367A781E1CD56D6C33099D9FBA4C42CF9FDA0C9E874AF9ED51CF6D6C77F4FDB47928E4F9CFD5F69F235652E872160B70EF794F4FAC3DBBFC9D37CE96C7AC9F7C31754ED9B47DFD847DC75549D3CD2FC615B59D26FB0B94B99E2961CBA52C65C771F781FDBE1AF2B7D524F43CC09C7ECDF2DBBF9EBB711256EDF347CBD8EF4DE3C389B8E0F79CDD8618FDB8D7ACE7ACFD8DFDEE385EFCC636D796CF4A1BCF9D4D1BCBFFB1F6A799695AEC1C4204CFABCD6F62975FFCEA4A3EA93B6E9AF005F8D2C4B9D637FFE2B9CF2669BAE58773DD34876CE755A54E9D15433B24E1BD929E4BCFDBCF6F7FCF39751AB6B96B9FBBC7D1868FE9BB5AB403F51BBFAD06DB7E4256CFA9B53C9FBAE9EAD9A3240ED1F75373F8B969A34D3A39FEE0ED659A4C9F69F2F8BB477D36A9B54C93E9DB63A9FD4569D277509426DBEEED3E5B0E3C8E6DEA8FDEE93656774C0C5DCFC782F43C3E6278CEDD3CA00E46BDCCF9D542E74FB40B7489F7DCEAB4D567F605E73E3E0FF699A07FDAF6FDB59A979536FDE5F619B369F2FB807ACEB6F4AC34EDB1364D7EB3DA34B9449AFCAE811F8169DABECD4C13FFC9E3DD34D9974E7ADEFE39229F31EB39E39AAE9F3CB51C97753880778CBEA590B86D8A62BCB0CD05F7FC377FEB4B8946D979757DF039F9D8C72F2764C5B566DAF81EB469DBB62000CDB769424F8BD2447E7FE337FE3233BF6C7BAA92268E413E91DFBC34B11FFE73A6E95E4F57607EAEC67398B730EFB9CBFAC967668BB944BF9F944996CF1C65C67BB0382727DD9B01AED343D773A2B5C998F5DCC61B471EB13E043DB7755B28E4239F0E56F7ACE695D173D6DF453AE9A6EDD33FDF7155D274F36BDFA3BA69BAEF41569ABDE939E6FEBEB2BD98F79BF37F637EED0E740C7D56D177B54D3DB7DF7E51E9F9D11CE54BCCBED0EF6715C6AAE78C4F4A3DE778AB18F3DA066CEB63EC226CB37E3FB69772AC0DC7CBB27DD21D9764DB4CEDF8223B56C9B693328646E87210CD507CB8F8E3C3711ECE64EEAE0EE7E2AC34D7CE08DADB3F388A0753750ED69818B39EEF267D5C3693F5B6E61289156A37C7EC721CA58D4D68E365D9781FF409DA1856D06C8EAB75636FF1FF700CCFE57F842E07D10CE979E47A8EB9C5E6EFE372BED01A738C95BEB735F53CAFDD2FAFCF6D50E6E59A94E9BC3E939E77F33CB5716D8C67467D1F427B7B1D6833336EB0ED8FE4F639A69D6EE36CDAF3EF9AE7D91D9769351F4B1BCF58F6F9F0919EC7AFE7D0F0644EEDA3E5AF3BAAD3EAE839F4BAA8BD3D68F9E5952B740C6579A4194364CC7A2E84A886F43C6E3DDF7FF77E67F3449D78766D395712E33E61DB620EA9CD59DEDC4C27D69E58C61762FF441F56EB17E7E4A4FB996EAEB32AEA0F27FAC68E957953F743D4447A1EB79EB3BD7DC9E52BADB5B743BB6CFFAFA9B5B7276539AF47DFEF692EB42E909E8F03B7EF5BE8FC8861B2F34F5782DB43A159DAA42508718FA0DFD4F236FBC3B5A5E7A5FF2F263DFF70D11F8E7D0D43E7A52E55F51CFE68D70F2D3D0FCF58E2150A119A503A5D8A23FD663FB8A50FBDA5EB6EAAE7183388B80059FE731BD7222A3D37F6F9E301F70372B518EBEE3C5AF6189F764BCF85106321663D6FD37F7E7AF76C826D9768C37FEE1BDFBF2CDB546C19F9CFDBC6A7E779C7F8FA894BCF85106321663DA71D49BFF9B24F768DB4DC78296DD8E78C1B9C858D151D9B7DCEB21C537B3B6CF33CFBBC4C1A42083154369E7A3A781EF258FACF31FEBC41DDDB859E572AE798F4FCC3A37832180738603D537F383164F0ED89B62280BE1D8C03183A5F62B8C4A633298C7DDEB46FBBEC73A75C199F67C0F587F45C0C95BD644EACFB49EC3FB095CC65797D19EB3774FEC430894A671C9AF8CFAD6F9CEB769BFCE7E3F39FD739467A2E42C0B11658E2FDC76FC6F5DD1F708C271116ABE79C1F96711743E76DD9BF1D75AE8D1157E6BA1C5BBB0BFB7CC8FDDB5371F742E7A726D273310668AB87CE87182E1BE7EE249C58FB7AB2DCBDF6F672EC27E7210A9D4790F8CFE7DFAD55C74BF7A1E7D5CA3B223DFFF0A365FC76F9CF877BFD621C48CF4553A0E1EEFA6B47B1C2A2996FC8E33F2F6B4F4ACF0BCAB5E5787B21909E8BA103BF397D6E5B47731E0A51159F9E53C3A3D0F2A6D757A4E7DF6AA6E775085D2663437A2E860AFABD65F5A5099D37313C7C7ACEF904C71073D17D2FDCF9A3D907C5EEAFF32EF1DB876D1A9CB7D9EE13DD203D174384754D1E6A7F1755C86A6F076398E7A82F3DB731A75F9E9F8FDF58727EE6D0E53066A4E7620CC826174DF1E9393488731CBD36E079B716D7B3995AEF4ACF514E3E3DC7FAD0BF8962477A2EC680F45C34C5A7E7A1F3D4EEF56DA6D6BBD273B6AF43BBE9ABB0F339872E8731233D1763407A2E9A223D6F47CF39561F40D7A319BB3F01A4E7620C48CF4553D64FDE48C69CEF5EFBB764293DAFA7E718ABCF36774BE8EB9F02D273310636CEBD143C0F62D82CB4FCEDB9AE5F4D96FB07EF05CF539BF4ADE7E87700BB1CCBA1F73D180AD2733106349655B4C5589FA53EFBB7BB63D4344EAD1FA4E7620C8CB50E16FD3396670973A3A4E73F7936B58EFDF618ECB7EBF8ED9E3396B2192BD27331067CF50CDBFCD8D7D66E0B9D5F112F63D12CF73ADC75CC8366E742C37EBB8EDF596970FC9EF595735C5FE8EB9E32D273310636CEDD5ED966FBE150C319EF2B747E45BC8CA56FA5D5E20B17EFCE3EF6F1CBCB6D7BB70E9375D8E058C7BC685CC76F6CC36F6CC3B1364D7E1F735C397FC73467CD54919E8B31E0EB8B4C3F1E7E4BC34559C6A8E7B4BDB98DBFEDBAC59EE3DAF01C83E68E2BD7B8B4F048CFC518F0E9396347F3F7D8EB1BD85175E7C5180B567BEA3F4B9BC1EF653BEF44777A8EDF7C97DC18ED221CD27331543846783167F5D5E56F3B7735FBD64EC1BF3716BF6FE832909EE7EB39DE23B4ADD33EC76FDB474584437A2EC60AF59C6360C73E1F84F43CBF0CFEFDF17F149CBB98C767FDE4A964B933F07E935DE9B91B9BDDB6BB87BEE6A9233D1743A5C83E9F5A7BFB90F59C7DB0762EEF27BFC1E13BBF4AB484FBE04FA0B6E038AEE3B8326570FF3F7F9622FDFFF713FDDE9B3F2F80EBA1CBA5ADE7A14D3DA7EFDC8E2F577B7B1C48CFC518185B6CCE7A65305C3D47FF6BEA33359CBF5DED7675DCEA8D3BE6DAE5F73F7F6976F55FBF9391874BA9182B17061ED3AC2B3D0F7D5D221BE9B91803D2F361D7B5D073E8F6D6F9EF27FA01CDC66F2CB10FDBB884D6E337C035E7D9E74C0B69BF72EF5E69FB1C759AEC73E9F9D0909E8B31B071EEB5E07908CD58EB5AABD755CBC0DAF7B7F67FBADC5EE44B1F03B62C500E88F5866F20ACE39B88F1E158C68C0FC7F2667C38FA3B7CE52BE2427A2EC680EA996197816D3BC76F68083418701FB7D9E35CAD77CB80EDF8D0F4177FB897E83870EDF331E29685EF5BA76E7C381127D273310654CF0CBB0C5CFFB925CB7FCE36796B3F36F19F8F8DD3675E4E5DBBE2B78F1FE9B91803AA67865D06AE86D3579EA5E7D80F1D879EDB74A061361DECC7B158FED9DFDC9C7DE5C6ABB31B3FFDC124DADB6D9F42B07EF2D34ED93C9F60F7DB75FC76CFB1DF4E223EA4E7E170DFB7B153C50F5A958D277782DFCFD00C59CFA1D17C1FD88E6EDBD6698F731B9FA5A2F6768E7903B68D7D0A7ABEFA7C6CA6D6BB9A2F5584437A1E0ECC75105A63FB04B6535765B9F1EA66F0FB199A21EB791655ED41B70CD0660CFB1E36FA0FDF7B63B9DDFE9E0AD2F3F133063DDFAB19F3EBF09DC733C41DC903C77495EF31D6BFA1AE577A3EECE7C9B69FD316B76DEE3806BACC365F8E65E3B14C47FEF3BCE76333B52E3D1F1F63D0F3BACF1CF47AFDE48D545C310BF6E198EEF23DDCFA37B6EB959E0FFB79E2F873DB9EC375EB3FC7B156E36D1B3CC8F39F239DBF7AE56F67DF7D742BF8F586793E3653EBD2F3F1D1A59EF379618C06C65FAA634F23DE03633C201DAE232DC45BE67F25DC9C73DFC3BDEF39EFFA9D5CBDC6BEADF3AFA7DB8D91862F6D1F37DFC86D7FB6F52FFD851C5BE3D663B443689FD83AAC4F387E8879649EB86EFB1FA31E75637D14B6CB57295FC3FA374F057F974233643DE7B3C478AFB6CF85ABF33CDEFADBB3CAC0FACFD1178EDBA7305E6DF5F9D874CABCB99E1F2AC66B54F4A1E784CF461D7B1ECF0DB47BEBFCF632BE32BF134AEBB9A3B1E5F4FC4E633DB7FA9CA5E7EE769F9E639DC7B25DB2FFE7E5C1D21FE9B3A5587F6289B64F371685ABDF8C09B6DC5743CBA5E7C7E51B3A0F6D53B50F659EFFFC1BDF3DB623A4E7EDE8B9ECF7B8E852CF6DEC441E07F66BCC89013DC7B9FC1EA47D8EDF4DDADBB7CEFF7896E53BE7BE66E5FB60D9D6E78EADB1750FE7A020B43F688B5B3F21B6D18EE9FB7961DE6C9EEC921ACD982079B1A5387ED8F581D641EDEDC3D673DE7F8E43E736FB6C589B9DEDF37CD6988EDBDE6EB9BCFBA3D9575FBF36DDF6F6EDCDD437F0D695ED84E537F1A74EA5D6F11BDB52DFCEB7D336DAE933679775B3AFED34F4354F8D3EFCE7B8BF5D7EC7D5F5DFEF1FBC97E93B2738A649DEDCF673BB6FC8F56F1DDCEB651C6E7E23344A5BE3D506FD3CF9DA7BF81D9CE53FB76D414CA7A83FDC27BEF685C9EA39F418DFBD8D786A31A7AC9D5B1669B3ED9475316DB9D0D73C35BAD673DAE724567F0BE7EFE55CBE6DCE935D76ACECD8F15DAF8DEDD976DA5363C865C06F5EDAE7F49BF39BCFF5E9588DCF6B03B27DE2609B63DB54E2BDF601349DF639F53BF6BA7ECC74DDDE8EF617FB3D57B7BDBD6BA8E5E0EEE52BC9B2EBFF1C72FD1BDBF54EAD2C5506E5CAC07E075CDBFBC972FB14E3C97441E8B14DA2FAFD68A2E76E9FB818F5FCD1FC3BD2EA799BB6791E53AB7FFBD4737B3F6F9CDF9E3D9C3F737DDDD731966FD7D0C6A64DEECE858E7DB6CD9DC7B9FEF3AC36209C7BE7AD7F49EC72C492919E8B31D2959E5B9B1C9C585B4BADC36E0F7DEDE4D151BB10EA7CD4FF0F1B7E6FD8BA22AFDE1872FD5B872EAE77EFD6BBB3D367F666EB27AF2F630660BB6D637979FEBCE1F7A391B7FF0DF97972FDE7ECF35634FEDCED7721FFB998327DC59389795C03EB7A6BCB35498FDFFFB005F2FC74BEFEEDB4356C3C6BDBBF174B3BB7246D992E63A3B745177AC3B108C7FFB1B0C1A1E7EC1381DFD826FB3C5ED85FDD8D0F67E3C471499F3A35BFA80CDCF9528BDECBB6E0B85AF891B1B4637284E802E979BA6D96BADE34CDAFFFFC8524B6649EADE01B7FCEFA8C7D7EEC3E3BB714C77AB9313163A64F3DC77D04F8366BFA7D361486ACE77954F95675CB00EF887D4FFACA33B59C31B4ECD86E69BAE88A18F59C63BF5937770DDBD969CFB5699FBF72EF5E2A8E4CBA4C8EEB1E8ECBA19ED31E5994C783A50DCEED763C4FDF75555DFAD473B4B3C02E6FEBFB6C080C59CF6D9B933BC739F7D97110363E5C5E19D8B4384F6A1FF6B91D834D2DC7F86C8DCB165D52468B39AE308B32BEF08DE7362BE4E9EDE5F8EFD0E5D34E193F58F6DD4995498DFA7708EDEA99CF408F7ACEF6167C9BB1BD7DEC0C59CFD9E664631BDB58C2EEFCE7593EF418FDE78C6519BA8CC5F8E1376311796994B2CF2BC4EF1A939EBB7D75536532D0FAB76E5CBABCEBB56382ABCC6559E43F6F3B9640CC0CF5795ADCC7742C371BC3DDA7E7B64DCABE57BE3260DF14DAE57DF76FE7B8DDD0652CC64F5FEDED279E5D4BC7197AFE73CEB7F3DECCCE6BB61AABEDD6EAF736D2681AEFA822175EBFD45AD9C75AFFDA78B35931BBDCBEC636FEA65B0FDBEBCDE377FF6027E97750EDF9F5EBF91489F5792A83EDFFE9C618726D766CC331F43FE59501E756C379070F7FBEDCDE979EC35EB2E37A621BAB2BC6456FFEF388EC73C622AE736E9B71C263AD7FE9B3B47353613BFBDFDB7E7BF421D8B8B6B64D226F6CB0FD6EC0B96807ADEADB949EC7FF3C3585CF629D32B0DFA47DC78773C7EC12B5BD8BAE18AA9E1FFEF217B3ADBDED94ED7CE289B54C1BDA8E67DDBAF25C324F5A9DF29A829E03EBBFB43611B5DDDD076CDC8F32F3B100F6F9C35C19DC56C5763A9EC3FEB5E47939B1763578D98522E6E7A92CB6FDC78E4DB3DF956C0BC23E5CB37DC662F09F73BE8A3CD4C75D74C150F59C7364BA73016179FA8FCEAE1C6F6DCDADBF7CB5767FF032D761FDBF65C79FD721C4FC6A4DFE376F3E962FEDFCE3B2ACAAD84E87EF3C3ED2F4AB2BB6FAD4188B9EF33A5C9F8E3B7FB085E7FBE657A39F08CF581FF3AB319EB9C59DD359EDEEA20B62D473CC6986B85FA89BB3FA3271AE20EF7F158C8D6B325EBBEC755CFDD7EFCCFEEA95BFF5D63DC4D6BFACA7DCB927DC79487D759C5D52239B3C1359FE73AC57F19FBB73B4FBE63FB73C7DF57B49B9D5F16D8E41CB9A328632706D733B67B0DDE7FADBB3CAC08E010D39FF79CCF137C478884DCF19A793CBD72E5E5A8E3D4AFD67C47A0E3DC258D7AFDC7875F6677F737345A37D7ACEFCD01FEDF6E9756D11779D76491B738F66F9CFE9B3C0B28CFFBC48CF59D7B2CFD25FBCF852526E75EADA31685953C65A064DFCE77C2EB11DF1E1B85D7A2EC6486C7A0EA8DD56D7DD31C431EBB9AD2BF0DB6A573A9FAB7341B12DDBD661565FEDF85B7B2D56C7DB18A3EEF39FDBB4CBF8CF8BFA1EDB3E0D98FB8A76793D3D7FA9F1350F9D31E8B9EB3F77DB7C700CDB82ACADCEF37DEDED16B4998588DFBEB1BD19BC6CC5F8894DCFED9861DBD6EEB6BB5B3DC73B5C3416CA72EAE48B095C471F9AB2E555B53F1CD2A7ADDD463C991868DB7F8E72A9EB3F3F4EBBDA7D1923437D9E2CB6DDCAE707F7F9CF8BF4DCFACFD166C63871BDDE9B8C7A83FD05BAC4AD77C478894DCF01B59B31B87D3E74ABE755EBB16FCFDFF16F5FCB8F41D1C6750077CC6C2AAD48EB5FDAD66C3777EB50C6F2E2F5F97C09BE18B759B138F93FE84708A4E7F588F579AA82EB3FE7F357D77F6EFB7140CBB9BD4ACCA256EE4D665B62F7F76C0CCF8528476C7ACE3951ECDCA5BEF8DB43D1F3DCB4227DCFAC06BB3E7B2CA1E7B64F803D8EF5AB2F265E997832E87F5CAF3F5C7BF765A8C4FA3C852C033EA31C47112C5FD273D10331EB39FAC2316EE7CA7FB6ACE7F84FCCE181FFC77CD96E7F3CE6ED7F7DF9546BF368C7FC9EF9FAD45B7BC8677FDBBE7B65E6CAA0AD8FE5E69F7CBB56BCD7E3B4CB3D5F6326E6E7296419D8673258BE4AE8B99DC3853162198FFBB0A0CEE1F7B38DABA7E7627AC4A6E7C06D6F6F6A9FFF9FF97E97879E363AFE17F49C7DEAADB66379F289B549E87917E4C5EEAADB3FD117BB63AA637BA7F63C0DA90C9671AF9E4B3FABEB279F591EC371E9D072CC81452DE7BEBCF4F96DECEB877A62EDD9745BD8534F578E735D379EA6E89718F5BC54BE2BEA796EDE8EEC733B1F17BE29EC6F1C876557EDED76ACAD8DABE68E43E7FBCAF86BA19F9FBAD7CB6BB6D756274DD47D9C8B12360CD7435F6B0CE53B45622C0368349E4FABCFBEFCD23EE7BCE97896ABD8E7A82BD87696179791FBDDE32CEFCFFF173C467EF1DF13FD461E1AC1E66369017E33FADE61B4A7FBECF23F77C68CD9F3D91EC0DFBEEB402CD9D279DC7EA1D067CC7439A67B519EC77D725DDFB5DBF737F4F353852EEA5AD473768E40AE87BED636B1FD09F03BAB7F418C5AD637B19641D65C9521FCE76E9DE2033AFEFEFC9BE283F3DBCBF5D065288A19AA7D9E4ADBF34EF8B41CFCD7B56733CF877D4E5BDCD7C6DF943CBF96ED47CEBE3B767E32DF9CCFA1FBF8B4719F9A97E99DA57EB3AD728CF35D60CC34743CAF6F81AFFD83CF077FDBBE1058BAFD23DCB803F67973DB53ACCFD68DD55F179B2FF661B7E32098173B4740D7CF58F36BBA9FF28D67E5D7BD5755CBCDDEA3A23EFF76E903FAFD789ED704FC969E0F8231EBB9EF58DF7657CF619BBBF16B9A025BBB289ECCD8C9BB5ED7060D9DD7D84099602E91BCB69E13CEB72A63EF717CA18DF3837D569F19A3CF37F6D08E11B3DF944C0BDB31EE1B34BDCEE59C49477165EC580977FC398E7735A9683E968D27777A9F6339057CD7263F36F605DBE4EAF89F6C3F7E774CBEFCE7D361CC7A5ED53E87BFFCE1919F282B6E7C5DCAF4F78E097EDFFBE2CED9D83836BE36F582C7BA713A8BF49CB66788F85DB163ED733B1E3BEF79A23E633BB5975AEDEA068EB16D42760E33DB16646D4077CE00F77BB50EFC5FE69D79B163216CDEDC362AB70CF82DE36A5C088AEA005E0FE32656B1D1ED3D72CBC0E73F2F6ADF5BDAE4A80FE73C1E619BD71819AB9E5BFFF9EFCDBF81ADA69739BF0F62D6737EEBBBE3CBF99B76938DF3817DAC87A923B60E2DEA4B70F60FFF6EB6FDFD677ABDCE2160DB2B101717E5446DABF33C558D07DC46FCE0A6948DE1EE96816BDB87BC8632319FBBC0D7DE6EDF5FDF3989FFFCF295D907E736977DE3423F03A298B1EAB9A54CFFF610653F043DB7FA6CE3C32DEEFB6A1BA89DAFDA371F4BFAB949F7E92BE3239E226EDB0534BD4C7B8FD54037EEBFAF1DC5B69F631FDB5DFAECA3C17C59BFBCF5A3639F5D2F13E380DF9CA1FB9AF8DAD1DD3EB15C566D6FB7E7942993A231F9A9FEEDB2CF07C318F5DC6D63FFBD82F8ECD2F37A54B5DB7C7A43FB5F3EF37C9AF8CFD95662BFBFD8DE8EA59D478FE7B8F155FBBA4EFEB73B2F8BEFDBD1A75F43F79FE3FAED1896B2E5965726F29F4F87B1EA7993F3FBC2ED3FE4DA53EE7C6AD63FDD87AD61FFDF9DF7CDB6D5F9BEF7CBD88FF618DAA0B2CFFDB0ED02737E668DD9CFF39FD3AFCA32A75E5AFD647B0CBF01ACAFBAAFEB74FDE76E5E6C9E786D7965E0CE3510F21EF29B242BBFB63F40D53AC9960FFB4B649589FD2ECA6B6FB7FE738D3F1F06D2F3727A5E69DC79C9F1E7F836B7EFB77DDFF97EDA366FBEAF7CEFBB7E366CBF19D78FCEBCD8FED2CCBF6D73AFE23F47FCF6AFFFFC85A0EF438CD831E758DAFEE879CF31EF8FFDC6E23A9F23BBEE7E37BADF727DE0CEB3C2FCD95882364F45B14DF9DDC97729E47DE4F7535E7EB3AEAB08DE2B1B6F2AEFB9E07F65B50150CF35FE7C5848CFCBE979D3FCFBBE85A1E7769BEB9BF6B5A1F5D906EAB679BA6DB056D7A9F7B6FF34F39C55CEB6BD1DC006450CF73AF3AB8D196838CB04F6F9E5DD1F2DE7054F3DA3259EE3D03EE43A94ED0BE72B03DB073F76FBBC2B7C65E2F69570612C192C619B27CB089E0591CF18F4DC9DFFFCBFB8FEA212749DFF32EFB2DBBEEE8EF9B2FD80FAE8736CEB41DB1FC9D68D6EFC0ABB5EA6FF358FB11A2E5FFA2A289FCF3EFFF5A46F7B15FF39F5CC1DA3C472B7FDE4EDB7983B66CCC677E9D2CE65FE98079F1FDF1D4B673569E8FE7392A7B559EFAAED0361BFDBE43F9F0E63D0F395FF2AD0675FDCC5AEF36FFD7865F339367CDF2F7DF6B51A329C1BFE957BF74AFBCFA9E3D6EF6CFDE7BEB1E51CFB6CC7205A7F4A5E1B6D1B584DA2B665C59321657DC5A1DB26EC37B12FBFEEB74B956F7696998D1B9DF75C581F8C2FBD94FF1CDBE43F1F04D2F392697690FFA9EBB928876D6FBFF3D6BFA4FAAFE595AFB561EDFC1BD6DEB6BE1437BEAB6D27E2B96DC575CDC2B60758FBDBD53A9BDF225F31AF39F4B763D939847D315BABA45D6437D8E721ABADC5FACFAD1F5DC44D8C7ABE7FF0DEFC997C779EEEDBB5AE497A1E2753BBDEB670F59CB658919EFB8821364C55AAE4D9F74D1362DC9D0F7E8755BD674DF1F5F9677EB2CA24E53F7FE717D2F38110A39E43C737CEDD49287B8E6D3F42BF72773FE6DDE27C1D17FEEF25E97900A676BD6D023DFFEAEBD792BE706E7B335977E22CB873AB601BE38972DDC64D633AD6D76EED5B37767A17D87C5A7BD35E83F505B8B628FAD264954FC2EDD7135F7030F0FF263F76CCAADBF650B5DC6C9B8A6D43C173D1B40CF6DFBD1FFC1D10C58C45CF6D7C52DF7F715E6C2C379EAADEBF437AAEEB0D097CE7E8DBFEF9AFBE9294A36FCE1457CFDDB1E4763DCB7FCEFBE48EABC0B63EF4DC8E3F776314FAFCE7D043AB5DAE9E23DF381FCBE4DA03EAF985EBDF986D7DE95B857AEEBBAE22781F7D715C5D3D471E92BC5C796EB673E7AA37AF2F5DD94ED8BD7365B67BFDD26CFFF6F5E0EF8028F31C14DFA736F47CFD9BA7D2CFCCBDEF39F5D1BF253A0EB6CEFF78A9E7DCB67BED67ABDFDA48C3F32CAEFC97C3D6DE76429577F1F4EED9D4F5E07BB5F0BC9B6FE4DA0A6E2C09B76D308636C22CAC3D606D2A77BBCDBFD5894C1AD497A1CBA42BECF873D8E988F75AA63F9CF541639D63B99BF8CFEBD88E5570FDE77CD67CFE73EECB2B83BAFEE8AEAEAD8CFFDC775D45B8E34A8AFA14D8F8BEBEF4DCF1E78ADF3E0CFAD2F313CFAEA5C7403CFF39672CC9DE52C3D74FDE58FE3EE6D6EAD813A45163CC08F41E543907F16452D73CD78FA6F1647C7A6EC79FD34609FD8CF8EF797A1E769F36FBF4BC906F7DB6F658A0D065D215BE783265F47C8AF8E2B3584D0F99B72673E8B45926FCEE2E9A5F0DBE73FACFA5E7C3602CEDED95AEB9057BCE3EEFFC8D6F59B7DF08C7EBFAE266BA6355AC1652DF43DB1459583BDC8E97B5583BCABDDEC57D7E507A2C7332D7D3515FDB29C6B6E07835F6872B1B4FD7DAB8B6BC6D7F13D73F1EF29963BED87E609F23EEB3EB45B6288FB3B1924361FB2DF8F2EBDEAB3AFDDBCBF4F9B7B679A69E63FE9583FB8AF73A30A4E7F5C0F34E2DC7F72BD693362A671E223BDE57E3CFEBEB39DBFFA8E7538B3F59379E0CBF25ADFEB1DC09B7F9DA6AFBC6FAF7F93D6B63E2B83E7C9FAF78C8F164584F54F56BB07C7CDF388A27331D62D4738C55DBB98C3AE727B3871D7C17B6E26FA5861FC16DBE636D0C6ABBDD8DF7EA8EBB653D16DAAEB0585BDCF5C5E6F9639367C0632794AEB3E6CFC1F2DBE96819BA2CFAC28E57BBF1D31F247DDCCB8C57B3EDAA36BEA7BB74DB5442C65DB17DEBDD67CAC616B66D1436BF6E19B0CF465EDB725FF05E64DD337EBB14D9CE5969BBF106F29E0B1B67C8971EDB1E936FE723DB2564D98972C4A6E76FCED37A307F7EB87C6DFE1C41D3DBD4F536F4BC0DFF39FAB0DAF1A8B6ED7A51AEF1F58573FBF3B9BE73DBE74DFEF37670E3DFA25CD9C7DD6E2FDBDE13D3F76159CAC638F6B5B7C7D2AF94DF2275EE59137CED62596D86C4FA10B91EBAFC4431B1E9F9A3B9DD051DE7F2EEE52B89B6BFD9E2F3D49AFF7C9EB7653B3BFDBACE7707FDE0BE3AC59D2FD5FACE63A9835C6CDB27FB06B05F3E638596F59F5789F7BA6C6787AD80729F58FDC2F952619FF31929F2DFD83621DE33DBDFD23766D9BD677DE3FACFEDB7A1EB3F2F1B1F2E86D870CC4B5E9F077B7D75FDE7D6C6CF2B132CF3FA14D077B8D20629A226363DA7867349DBFCB516DB7B5A696F9FE769A92B476DC0591A63DB08536522FFF94ABCAC2C5CFFF9D4DAFFA0E59FF8DA1772DB368AFCE7AE0FDDC2FBE19B67A04F5CFFB98DD5EA6ABCCFDF3F16FF79553D77FDE7769FFCE7D321363DEFE59A5BD4F3A5AE677CC3D246B271B8966532713DAF3286887679E2473F6A13998A0F1D5A8EBEEDF87DF55FBFB38C1157D476EB8E4BF2CD6D421BCD8E5508A9E7AEFFDC7E73B8FE739FBF3FAB0C425F17C9AB03EC38FFBAFE739661DE7361BF93B2D2C3BBE6DA2BA1CB4E14139B9EC31647DB3A96B0D1DBB6CD93FC46127FE4631FBF5CCEA73C224297F910B1FE73FC463C19DF5C1AF29FFBFDE7B1F8D0697FE7B5857741DDF6F6648CE8B9CDE57AE86740145355CF1937B56A1A55FAC3D9DF63D6F33E7970D476F0E8C8A6B54BFA34F8FDC4DFD8C7E3702FDC73793C8FE5FDB2E7F17717E314A682CF3E2F139BC46A20C712D076635DEE42BB3094E6F37F990F6BAB721FFD066562A1B963DD42DE47DADF59F7CCDEABAAEDEDB62F4AD17361FBD067F66FB7F6F9519B58C8B213E570B578677E0FF79DBAD71E83FD171C7DEDCA3EBF7B1493E86ECBB189A6A6E7D462962DB771C9B266BF43176AF38DF3DBC9B715A09663BFDB67D1BD7F5C0F5D0E43A689FFDCB65953D7F37CE8D88FBE9A21349DEDE3363622F3E71B7FEEEA51F4FEF3E7FE3AD77F6EEF579572B37DD6DD7291FF7C3AB85ABC35AFB3F3EC6FDF5CA393F49F0F0857CFA9AFF63735194BABCFD06E8E35E03842EA36F49DED27EEB782F4BC5DDCFEED8C69608F71ED30CE63C2EDB66F3BFBC9718C02E767E158759C13A27DDACEC7E28EF5A0D6F1188EA7C82B03DB3F3EB49FA128462FCBDFDEABB2B87D0E8AE23216C51A58F6EF3D8A0D27FB7C18B85A0CDB3BCF3E2F93868FAAF1D2BB0479D97B6B5ACFA76D6F67DB38DBC9CBB6B7F37C9B26E1B1D47CEAB7DADB9BE3F39F43EFEAFA6243EB5A1DEAFACFAD6D1F7A2E8432DF1F5D90A5E779F164ACFF3C6FEC8E888BBEFAC3959A8FAC4742977B9F50BFA5ABC3C4171F8EF6983DAE8C36848E915687B25AEE2B036BD387EE0F57141FAE2BF2C63DE4C587432C99646CE8912F3DF473208AE94BCF45386C3B789B7179447FD48DDFCEFE60762C3ADB757D3E741E8BF442F9CF913FE6DD9D4398C7F8E64E0543F79F5B5F4351FF3DD717C17E07EE37431BFEF33A847E67A688F47CFC583D6F7BAC80E807CEAFF6CABD7B29FFA73DC6D7AECA3E5656FFB2FA97313D6C477FB810FDC1ED37859BE7ACFCDA72C86A6FAF3A9EBBCB6BCBBA671C7F60FB01E6A5676307589BDB8DD1E42B93AEE79C939E877AC6AE373E467A2E4477D8F9CF61A7C37F5EA6EDD6ED37C7FA9B75B93B3FA78DEF53A58DBB4DDC79503966CDDAA2EE78B5A23288A5BDBDEC1CB7CC77D9F2E298053B06B1A84C185FA8AB3E05D2F33048CF85180E76EEBD10BED8D889D97F5EB7CF43176552E43F6FFC9FD2F32048CF8518071C63366562FDA659F6C5BDFD7A2ABF764E26EB1770E3F166A5BB776BC1FE01CE5FFCC6F2F09DE363D64FDE48B62DB95DDC37F9F097CD62294BCF033D67D2732146818DF9355542FBC8B3C018D90BD7BF91CCA19CA7E75C02F67BC84BD7EA34D757FEDBD1F38DEDFBF3BC5C9F6D5DB93EDBB9B3AAE55B7BDB8DC70049CFC3203D1742D4C58E9970E311D818836EBC22C63860BC02C647600C041EE7C62DB4FF636349862E8722A86FD4ECE5F6A3F6042CEDBC6AD4F4E23EEE0B6897E3B76B9FAFFACFD1E731FD1D90DADFC2985EE97918A4E74288BAD878C0D05EABE3DC86DF88256897369630751B632F6C5CC297CF6D2EB7F1BFB8B4F1086D8CA35881BEB11D3DB57DAEB5D83E9B7DB6B3B685D53E77D8263D1F23D27321445DA8D7D6CE866673DDDAE5D4736A34B6E138C605C63E2C5D9B9EBA6FD3B5FF3924FBDCD7F7DC17BBB72D90B63B7E0DB63CEC772EDD73A4E7C3457A2E84A80BE303E3F710ECE45064E91B74BCCBF989DD98C065909E0F17E9B910A22EEEBC7AA1F3132B43D237E9F970919E0B21EAE2CED7173A3FB1B2F1E4E6F2B76DC7E07C45DC66FB12DA7DDCEEA66197765EA4ACF995CAE4B548CF0FDF799C2CF70FDECBBE5EE97910A4E74288BA502F34D74F3E1BE73697BF6D5F41DB07D0ED83C0FE0658B7FD0201E728E65801F621B4FD16B0EE8E132893D7223DDF3AFFE3A36BCA9EA3527A1E06E9B91042748BD5733BAF307597FACDFDB4D1B1DDED53489DB6E7B8E3095CEC314514E939755C7A1E1FD2732184E816ABE7D472EABA6DE3B0BE0BBBDFB5DF990EDB44ACBFC31DD7CFE3CBB69F48CF878BF45C0821DA637FAE9BD06FCBFAC953A9F52A7526F5B8AFF103D0F2F5B3CF387DE5EF2C39B17635390ECBE3ED7BE9B97B9FF89DE0F7618A48CF8510A27D502FFAD8AFD0CFC08EB7477C9D3E345DF6F970919E0B2144FBA05EBC70F152CA2EDFB97C6576584193ADEFFB65D366DF69BEEF61DE98EB99FBA5E7F1223D1742886ED89BDBD7D636AFA2E5C0FAC7D9EEDE35CC6BD67EE979BC48CF8510A23B68A787CE4795FC66D5E9491FBB83878BBE7AF325B6F9C6B64BCFC3DDBBA6C748CF8510220D6C73F8CA6193630986505766E9B9F5E5B32FBE6F6C3C909E87BB774D8F19C2332A84107D412D875D8EFAD1F6698FB5BEC47707F2B6757E3BC1EDBBE71BEB6EE7C8B5696D7C6B33F8F54C11E9B91042B40B6D71E83AB51C7DE1B82D74FE7C205FD071E413E05B64E768EE3B60C7C7633DCF9FBFD153DF3D91467A2E8410C2B627D036AFEBF7979E87417A2E841002F6B9D573AE73BF1B9B8EEDEDBEB4A4E761909E0B2184803D0E0D871F9D7DF8AC6F80FDE0F8DBD70F8E48CFC3203D1742085104ED713B9F1BF59C7DFEF2A812174FD4437A2E8410A229BEB8F5604863EF878EF45C0821441BB89A2E2DEF17E9B910428836E1F8FBD0F9981AD2732184106D223D0F83F45C0821445338F70C63CBB1BD1D3169A4EDFD203D174208D1141B838631F1EC58F6D0F99B02D2732184680F770CB73B8E7BAC30FE3BED741BF33674DEA682F45C0821DA817E63C640A79D0AAD93AE89AE919E0B21443BD026E5B82D3B0F8B7CC8A26BA4E74208D13EB0C765938B3E919E0B2144FB4CC56F2EE2417A2E8410EDC23EDE24747EC434909E0B21447B64CD477278343799105D213D174288E664CD4762515D29BA447A2E8410EDC31869A1F321A643192D66FCBE2C34878E1042A4919E8BBEE1D8C822F2D2907D2E841069A4E7A26FD4DE2E8410EDB37B73AEE7DB9BC1F321A683F45C0821DA67F7FE5CCF5FDD0C9E0F311DA4E74208D13ED273D137D2732184681FE9B9E81BE9B91042B48FF45CF4CD10F57CE3DC8DDED93F7814FC5E092186C3EEEDD7671B4FEE04CF87980E43D3F3BD5B87B39DCBFB3D97D18344D343DF2B21C470F0D51B87EFFCAAF7FA4B4C87A1E939DE11D06F191DBF97FFFEF83F52FBDC75218400AE9E637DFDE48B096DA4FFE6BCDE7DA0F9DB84A10F3D475C631C83257F238E0D7E57CF6F7B7A0E5B9F204D7C3B73896F68B6B1BBEFE5771FDD4A741CCBD0F74F88A963EB17ACD7A95F385739D3224DE65071EB8DD3675E9E9D587B36A9572E5CBC9BD43B77E7F98426BF76F152B2C43A74FAD1FC7FB94EB0DDC274719C745D803EF49CEF57D5B873FEB4DAD573A405EDC6FBC574B1C43EABE7780FE94B3FFB877F37FBED0BE7659B0B11016DD42F4C0320BE35E3BA35697BB47ABE75FEFB499D82DFD0F5DFFCAD2F25760375F9C6FC3FA1C95C87BE53C35F9EE705EBD471FEE6FFE0DCD714735B7CD88F9EE3BB97EF0BBE77B18E98EF7B35BE29DBD473EA36D3E4FB461F3DD7DDF6F6AFDC7835D17F2C2FEFFE68799C10A27F6CFD423BBB6AFD82F3ED79585A9BBF0E3EFF39EA0AE839EB30DAD555EC73DAF44C93DA1FFA3E88F0F4E93F8796B7D18615DA7F8E757C6F63F9A59D7FEC3D3F428855DAA85F686FD43D1F7ACD763CF8C96DBB1EEB11D8E5A1CB4A8C93A9EBB9F59903B4B1036EE37FDAEF6CBCB3B0CF719CB5E38510E168A37E813DDE44CF2DB0C38BC6BAD22E677B3BDBD21FCEF3F16683B67E314DFAD273CE3544EAB663B5ADE74C8FE0FD8346DBFF70FDE7094F3D9DC48AA8C3DE5BEABB22449BA03EB1F54BBDBE39EDD45100ED77D4F1BCFEEC59FE73B6AF872E57312CFAD073F8B5EC7BD2EC9D6B5FCFD976CE3631F68DF3F9CF01ED72DAF245FFF1FEFCFA1FCFDF55F06BD80E0DEA0921441A5787C94E059F32FCE5BE34EAD8EA68D7439DC275D41176DDF2F0A82EA04FDCF65D579F755195AEF5DC7D3FD64F9E4AAD5FA8D82F33B4FF9CEBFC0680E617F9C31ECFCB077C30BF5EFE0E7DDF851803AE0E57AD5F5CBBDE974695EF0280BA016DED00B639EA8E8F7DFCB2FCE6A273FA8E27C37120F5F31B8F9EDBF16E79E77F707E3BB1D1B1848DFEBEFAA20AD1094DEB97B6D2008A2B29FA467AFED1D25F6EDBD9A1D7B63F5C9BFE73CCD310FABE0B3146A4E762CA48CF3F5AF665A78F0BBA8EF532FE73EC2BF2A127EDEBF09381067D6F8510F948CFC594919E2FF4997E701BF7D5FE6796FF9CCBBCF497FEF3A3F6F6D0F75C88B1B2F1E466146900E9B9E89BDEF5FCF9CD86F90D1F4F0631E1A0E3D7F67E92C47E2D639F53CFDF575C46213AA38DF9C6DB9AB35C7A2EFAA6773D6FF8AE74659FBBB15FD19E6EFDE7E8A7CA7D7FF1E24BB3177FB837FBE17B6F944ADFB6B7CB3E8F038C43627C50C41FC1EFBA3188453C44A5E737DF986D7CE6A5E06522A683F4FCA3657A5CD2776EE763B17AFEF9AFBE32FB9F9F7E7276E7AD7F29355E4DC4876FEE8EBA73048978884ACFEF5F6F2D2D21CA203D3F8EF9EADAE9BE78AF686F7FFAEAF792F6762C0F1EFEBCF7F67FD11C3B2F26E7F1AD3B87AF8807E9B99832D2F372FF99D51F8E71DC43DF47510FC613918E8F038C238D210DB07BFBF5D6D212A20C53D673DF7CE76E3F77EEB77A6EFBBF9719AF26E2C4DAE84DE7C61471D046FFB3B6FAB0A93F9CE89BA9EB396D6CC694615F38ABD36DC79329CB8927D65A4F73FD9BA7823F7331C0F6753736A834BD1AF8B64DBD172DD0E4FD969E8B2933553D8756B3DF1BE73C25D4F32CFBDCB6B7DBBE72388F31E6DAB837D49836FB5CCB9FC7FB9FB6CD89FAB757A30BCD6A929E7B2EE737E11C2758727ED2B26960AE14CC63FAE8281614D2E0B62A65C33CBC3C7FAF1F29AE94E880A9EA79D5FFCCD373EAB81DEFD6C6FFDA79E8DAEA772D3D5F9DC3E3C4DA5AA3398242B195A34996BD5BEFCE4E9FD99B5FDB1D2FD88763EAE4213E3DBF9D5AB73A0E0DA59EE7CD5D863271D3603A65D260799F3EF3DDF9B7FEB565F9DE3D9AB7C17E1B08D126D2F38F96639001FB3A5B3B2D2BDE2BEC77C07EF13CB62D7FBAD5732C0F8FEA00E40DB836E661893A427AEE2FE7D079C8833E00FAF8F9BE95CDF7EEB5B713EAEECF4F7BF55B977D50EABE07CDF43CADB19C8314F392528BABA6417B1CBF914ED13CA66E79729D69681E54D11553D773D691F0A502D83CD4466AFAC27FFE447A5EC5A73AF0996F6FA6FE83F336DAF99DA9DD36BFACD7CBDC07E9B9A74C22D6733C83B8C7781E717FD176C067C09DD733617E7F3FF9C2D9F9B3F4C2EC9367BE99B07EF26AA19EAF9FDC4D8E85969E9C3FEB9F7CFA53C769E5F8BA391F28D3E2BC83F8DECD9AF3BBF87EB4A7E7805A4EA8EF55D2A006338D3C4DCED2739E8BFFCEFB7F21EA32753D477D494DA75E42276D7F67D706C139F46B5357ADCE72D9B46F95CF3E67BD6EF3C03ABECCFF49CFFDE51C3A0F79B0DD05F719CF15BF35B3F20D3B10D0362D6B9FDB7665F878D9AE7C9C8F5F2DEDEFE3731F78F5BC49BFB6AA7A6E7D0727D6AEA6D6AD7DCE6BC336DBDE7DF8CEE3CC342E5CFCC9B2AD9E69F09B20CBD6CFD273F8ECD1D68E7B53A69D4088AA4C5DCFCBFEA78D2783EBA51D6FDB406DBB37DBC49BFCAFD5F3B6FA5D8F55CF77BEFD0FF5C711FCFE7FAF7DEE85EBDF0877CD47EDB72ED667FC5AF2CD57CE7F8E63AD9EFBDA96AD6FC97D37DA222F3DBC7F55D2B27A4EBF75D976775B9ED473A68165968D9EA5E7FC06E0B756E877468C0FE979B9FFB47AFE951BCF25B6D22BF76ECEBEB4F3E5643BD619079CFADE869EAB7F7BD9B26AAF4F745FE77685D5B02ABA41BBD5DAE5B65DB88C7DDEF5BDBCFF9F3F4BC06FCE9F60BF4DD64FDE48ADF3BA5816BEF6F6FD83F732D3807DCE73D8CE6EED745F1EF3FCE765FAE3095197BEF5FCC4B36BC5764F81BFCEB50F38468CBFCBCC610AE8E773FBA76369E3BEB9E3CF31A7DA27BEF68565BDD21565FB2F57417A1ECFB94D8921D67C5D3D67BF511BFB81FBE893CFE277FF6067F6F59FBF90713F9AEB64D334B2F43CF4BD12E32756FB9CED7A6E7F71D73EB763C6EC78B1327ACE73DC71E3FC2EB0FF61EBAC1B3FFD41A2E557FFF53B2BF98B9D29E9396D21B695DA6D79E7D2FEE239EC4F75D7D3BEED9E4BDB8BB61BEDC2B6ED31F6F7085DEE4DF4DC62E734F2A567DFB1EF3EBA95B2D3D3F7437A2EA64BAC7ABE48F7C18AADED6AB53B179A1BAB350F9C63E1391C8766FFD3B6B763DE73E40BDF015FDAF9C7DEDBFF9B305E3DFF87956D6E1C1177DBF1B97B2BE7F9CEF1F95C7DE7DAE3F2CEAD03FB44B26F45E872AFABE77CC738AECDB6E1BBE9B11EC071D67FEEF3A5BBF7A3DEB3D42C8DC57801B425DC4AD2C26FE9B9E88358F59CF639DEED3CFBBC9F325AADB3D81EDF663CB83E18AF9EAFDA54564719CBCB3756C837DE984BDAE559638CF2628F583BBFADF149EC8B39743DCFBF97E9F4A0F9B6BDACCAB96DFC7F55D05F1EFABD75FECE72AC20B685BE5762FCF4ADE7881F8E79047371DAE22C3E7BBDAEFF9CE7DB586F1C67836D36DEAB9DFF3CE1F6EBC5D791C1FEBBF783DDEF29E939FB2EE1775E3C2EF75CB7FF7395735DEDAE12078C632709FB43727C037F53CB4F9F399B3A7EF776BDE7B1E9FB68F5CFFAAEECFB54E59B37747F06C56F1743A5AA9E732CAC8D45D6859E5397D9AE9DA7E775FDE7F67CA6CDFF72FDE756CF9363E67ABE73E76A42D1F5BCF4D4E66CF7FAA50577AECCF6FF395CDFD631E939FA25D337C9364D827DECE7ED8BFF81F15959E7DA3EDEB0EBD37DBC1FA78EB5E7224DDAE4B68F79D9EBA16E736CB93BFED1EA7C083DC7730F7DB27AEDEAB9FB3E729FF45C88EE29D26AF7188CC7E2D82CDFFE22AAFACFEDDCA4DCD696FFDC3D9E3EF43CFF39D77DFD72B3783C2F1FF0C1F9EDD9E379BDFC3860BFE4B1EAB90BF6B97EECF4B3E53FCF8DABE27E0BE4FD27CFE5B175FAC151BFA1EBBE38068C1F14A2BDDDF76EB9EF067DE17C1FE9372BFB3E26CF68133DDFF6F77BEF3B8DA46C6EBE51392DCDEF279AE0EA396350651DC376BFACFD4554F59FC32E76C7BBC6E43FA72D92773E74FCFD799952CFDFCF8803D20763D273E867568C14ECF3C5065B9643C679C0DAE76E7F78D8E059E761AC7213FBBC0A36CE6F5F70DE8290F1640ACF6DE1F96EEB1D41DB46D5B4DCD8CD36767F9FF75A0C13F739F1CD01ED1E53B43F8F2ACF37ED81BCFE70EE7CA7762C79F932586DA3471A59F3A52ECAE0786C7AD178B5C41E479901B46B04FC061F939E17B5B7E7DF737F9B79513FE4A2F6F6BEAE9D7DDCFB2E73CEB5725C8EE5F41CE7E0DDE437B08DF54078ECD4F59C319D6D5B681BF1A9C4F829D26ADF3155F75B0AE3C97CEBB395E3C96451BE0C16C7DABE3BEE7FD87832094F3D5D3B4628DEF350F77B4C7A9EBAAE066386439DDB9418EAF7B27AEEBE5779EF6B513C9984B6E7420AC5939B333B9F0EE6D8A19F056D309C23A28DF8D162FCC43C5E8DFD6EDCBE69F6DDB77167B84E3BA06C9E682B30ADA218D56C6377E3D06461DBDB7F1D78DE63E9793CE78E81B27ACEF7D1BE6B84EFD27199AEB685556D731B2AB6BDDDF667527BBB2843CC7A9E652B87F49F2386C5C1C39F27F50FE2CAFCD9DFDC2CD5DECEFE70EF3B7D0FFA66BC7A3EBD78AF53197FCE77BE4A9FBAA1221B5C3421663D677FF33CFFB9B5A96DFFB42AF6B9F5D3738934B2FCE788377979F747C9D2F527FA806D9EF46B0FDCB7BD4AF90F8D31EB39EB78FA5039676A8C7AEEBE47A44999D2A69F829E0BD184107ADEB6FFDC8E4F6FE23F77D3B5BFDDF9587EFBC2F9CA7337C680F43C9E73CB403F2AE7EE634C19005FABF5BD2674E1E32D781F7DE3CFEBBE8B7D94A91063A56F3D2F8BF59FE7B5B7F3DB9DF634E746ABE26B73FBDCD23EB7FF69DBDBBF72E3D564FF5FBCF85262A7F7DDFEDF04E9793CE756057A6EC73185B0CFEDBC83C0BE1B6C4FB3F316723DD63215624CC4ACE756638FFF2BFCF8738EBD71E7551D024DF49C6DBC884B169B9F6FEF9FFFA9B6FD79E2F7D706395621441F29378E7A6CE3CF85983231EBB9F5C31DFF577B7A6EFBDCBABEFAA29819DC5FD5571F9A267A8E765F00DB90E36A425F4F2B6512811F7A28B8EF9EF45C88788855CFB3FFAB3D3DB736B6CF07CF76C2B6C79F9765FDCBA7DA4FF38FFFA4786CEFB9CFADD8E0D0706839D7A1E53866E1B7DDC94F6FFB85CAF97463107689F4BC3EF8062E7E9EAA51146F5108E167AA7A6EED7FEBA7079CF325AB7FBB9DF705EB3C9F71AEDAB2D739274797319D6D1C3C176A3AB41BF678D9726DC307D1A7C64ACFBB05F17339CF1C969C838E703F62E4F238CEA3C338BD9C2BCF17BB5708B160AA7A5EF53FDD3927ACF6A38FAF8D7DD3967DC13ECB5D6A7A5E5942C71927BC6CDB3AFB3F358DFDD187C6725E13F613EFB34D604ADC983F439C7FDECE5BC7796F08E79A67BCFCBB47F31CE07CE83896766EFAD0D725446C48CF3F5ADAA09CD78A7356DAFFCCF29F73EC3AED79D7DFDF04ABE756DF18FB11F9B4F365D6F167B75D966D95411F7ACE7BCCB94839AEBBEBFF9D1A76BE3AFE8656F337B5DD9DDF96DA8EFDB4EB795ED579EB84980253D7733BAF347593E3828EE73682FFFC89F438DFA73AF0996F6FCEDC58CE56CF613F32BF1C876CE7CDAC721F6C7BA76BEB704E303BBF987BAC9D478CC7DAE3ECF98F2A6824DB034EACAD756A33B33F006365F39E2BAE66FB580DA64673DD3E379C8FCE9DDFCEAED779A684980A53D773EA36EA746A276DDDE3B85C6E7BFBFDE5D27E0BF8D69BE4CDB5CF6993737E06BBAFEAFC4BA8135F9E9F6797D462B46BDABA93F6138EE3B1D6CEE271D6E6B2F57295BA97F37EDBF2ECEA59A22D8EF2A46D1EDB38BC31609F25D9D54274C7D4F51CB0BD9D5A427D871F9CF1E8D2FDE11631BBAC4DE7DA776DEBB93B277D5350B752B7AD9E631FB6439BA9CFD0731C87ED3C16FBB01D4B1ECF3ADBDAF03CB7EC7DA0CD6CDB20BAEC0F28BAC7FAC7A5E7427487F43C1BF4E9E21CAAAEFF9CF61C6D652C693BD3AE6C6AEBD936F6D0CF495FD046B6DF3053BAFE31423D677B7BE8FC083156A4E7E5FE33448C0B8DA3126380E3D16CDF0A2144FB48CFCBFD67083D8FA5AF35EB60D5C74208112F43D3738C873A7DE6E595586E5D022D77E3564F09F8C0D9FF58E37E8510224E62D5731B4FCA2EA12B2F5DFCC6EC85CB3F987DEDE2DF274B68EE33E79F4F7E73C9EDE08BE79E5E1ECBFDDCC7DF38264BCFA73EEF32FBB4B19F7BE8FC0821845825563D77E340B12F36D7F91BFACE3891B6EFF58B67CEA6C6B5BA31A8ECB856FB3BF4FD10420821EA10BB9E3336146346528BAD26E338E8B61D1BFDB2E94BC6F1544CD38E93B6BF15A3420821C4508951CF39AE853149DC388F762C2BFB67D97DB4D9991EC746DB1854AE6D2F3D174208316462D4F3AEA07653C7A9EB76FE2721841062884C45CFAD1D6EED7DEC53BF6D21841043672A7AEE6AB7EB3B57DC2A21841043662A7A6E63A2D8B9217CFE7621841062684C45CF8510428831233D17420821868FF45C082184183ED27321841062F848CF85104288E1233D17420821868FF45C082184183ED27321841062F8B4A1E77BB7EE24C788622E5CBC143C0F634165A9B28C1595A7CA32146D68BE68EFFB49A82C5596C346E5A9B28C1595A7CA324654962ACB585179AA2C636508E5893CEE1FC5688F99A194E5DE00E2D90FA12C0FDFF94592CFC3C8E7E31D425912BDE7ED95E310F239843CB22C637FCF87529E43C8E350F28967537ADE1E28CBD8CB732865095F2A089D8F319427DE7395653BEC5CBE223BA8E5F20C9D87B19465D97E15A119421E699FC76E530EA12C81BE35DBCDE350F2193A0F450CA5AD6328E5391454962ACB185159AA3C634565A9F28C1595A5CA324654962ACF585159B6CBD6F9EDE063EAC682CA526519232A4B9567ACA82CDBE5FF0327220910 -MediumImageOriginalSize=177000 -MediumImageWidth=250 -MediumImageHeight=177 -MediumImage=789CED9DED6F1447DAEEFB4F3D3A7AF47C5AEDA7D5EED1D16AA368CF6AB5E2440821C493631116B386B5890D18B0F110630C1863B0C1061BBF824D30C1098490E04D303CAB9CFE55CF35AEE9E99ED7EEE9E9A13E5CAA99EE9AEE9AEEBAEAAABAEBAEBB563736BD77FFFD6B4763350765CC4B39F3504657CECE2FE7C6D633EFCDEE2F1D5D463037FFB0E39FE5EEBB0FDEC2E2724797116CEFBC34EFBDD3CBB9B4B2DEF1EF9C6799C67F4F83E79D5E4690347FD228675E78BEF3EA07533F3BBD9C9337A73BFE9DF31CF3D01EA5813C94312FE5CC43195D39D32FE7CCEC7D73AC9340FB967519BAA59C7928A32B676B98BA7DB726CFC3DF1D1C1CF285280E773ACF5FBD796BC0189034EBF23838743AF2C873ECE2A7FACF18A4613B7370E836E491E768F8D6F60B330E727AEEE0501B79E439E539F0D941EF8F7FFAC4E9B983431DC81BCFF1B7298C4F18F4F69D3669D2F3B40E0EDD86BCF1DC061CCFBA0C0E0E7940AE797E6F22F3323838E401ADF27CE1E9A657D89CA88A81FBA335F30C2F5FA92B9F9DA767FE78D3F74B2ACFE4DAFDCCDFA183432DB4CAF3C2F8D39AF7A827CFEAC69BC4AED569791C1CB246EB3C0FD6A8BCDA7EE13D9B7FE87DEBE75DF3C7CDDF596B57EAC9B3BAF163291FE7C8F36265DDA451F723CFCFEF3E78EBD76E987C51799E2F2E9B7B6CDEBE6B3E379B47E520DF5AC826A03C2A6F541E0787ACD13ACF5F98F4A7376F4D1D87CBBBBBBF180E36926775E36D291F7C230FE7ED3CF6B5C8C3355EEFBC8CCDC3BDDEBCFAC1A4ADE4A12CE451B9A3F2500E1095C7C1216BB4C2F3C99BDF7903834F4D5D5F5AF9D168E2A34BA36579A66EBF2CE5999B7F6DF2AC8C5D29CBC3F1E14BDB26DFCCECF726CF7CFF99B23C0B8B6FCC35C8C37DE1F9B3D07A71B515E419BFB6E33D5B5C35DA6AEBF4C6D66E290FE9FAEC23EFF1CDE9B23CDB3BBF94E5599D5D35FCA5DCEA3BECBCDA2BCBF3F0F69A692BB84EB80FE2E090355AE579CFB1F512CFA9E7AF4373D9F05679E02A79BE0BAD4787E7F0857CE4E77C982BE23979B82FF78173517D02DD6F67FB95B90E5AAC3C5BDB3F97E5D9DEFAAE228F78AE3C5F6F7D6F786EE713CF95E7F1C66B9387B2FFD4848F1E7E7DF8F3B2369034E9B81C0E1F375AEFB77F53F31EF5E459DDF829B16B755A9E7AC09A1CD60E8E5FBB6152E7CFEB9024E2788EFFF84E51BB9CBDBDB53CF5021FDEC3478E3AFF3E87C4210EC36B6988D6CA2BDE53359E8F8CAF7BABDF6F5645EFC854CD3CE30B0FE2F3BD6CEC5AEDCC3374652191F7C0F3EE3976DC007F5EC7758724210E53CFE0BA7D2C9C270A5B3F7C5BD397A4551CE83FE8F54E9D4EFD3ECD60E1DB64D6D1302EC78F97F539A46E7D8E4392C883DF2BF53EEB32B4F3BF665D0687EE43A7F39C7B1F3C74D8F4653F06DB54617122F33238741F3A9DE78C25B03FD3AFD5B8A29BC15820EB3238741F3A9DE71F1BA2783E75FB1B63D7AF85E14B8FFD3ECF5EE6FFC1A1F3E078DE5988E279BD7377CC4D8266EE8BEF11FE3E027E4B593F8B4EC1CCEC4E64BB3A30B86ACE655DBEFAEAC666CD638EE7ED83BDD676F8CEA8B1CBF51CBB6CCE0D5F1AF586CE5F30F12F7927AA7FE8F8C2E22BC3F1DEBE47DEC8D8A6776ABA503E37307DDA2B4C1C0FD2FB67CDB133FEF7BE537FF7CEF5CFF9F77854568EE14B5F7BC3830BDEB9C119934FD799F9265887CB584AF176BBDD6EC233DE7DF7EF523B6A232FEB151DCF3B0BB69E0F17D70AA82E619FD0BE65F8C56EEFFCCBFFFCA3CFB75FFCEF1F4A758FE3F4F5EDEBEEF9BC7CEFB7117BD76E787BC5393B7CFFE5B3DFDBF7C4F8F00A9F7C3A6F7C7859AF60AFBF3B703A98F7A3AD19183C5BB29D64FDDCC278B3FBD62BDC3DE315966BC710B0D1BBE8B7838F264AB1C982B9CEF3A6FDFCCD6FBFF2FEF8A71B06FFE37F8E98639CB3F3161E34313F4B191F5E287D7FF32E799F67C7F3C601D7A8DFF8B4B03F57923E2DB69E0F5CBF6938DE73EC8139473F11ED56DEADEDB746BBC903B7A5E7A64F79F7ABF2BA84865397488B757FC8D7F6FEA17F7A17CF2F45EA39C787CFCF95E9B9FC05F0C147CF696F3A52CFDF7DF0DEF79DF6DEFB6DD1BB06ECB78D8C9B12D373BF9DA59C7B29FA4C389E3707B495F63BE93D22ED7A367E2DB8B6EA12BA0DB7751E0D17BF83F714E839792AF4DC6F8FF67CEDDE439B8BBC44AB177D8D678D9D3D3607E83BEB76D07BF264FDBC1B85D173DA34C6297568FAC07230963930733052CF4FF52FFBE91DD3E602343D513DA79C454DDF7DFF21F1E7E178DE1C586F829E27EDD7524DCFD1F2307F19A30F9D5F37FD775BCF87EE8D97D7256979716C5E4FBDDFD9FD21D1FFD656A0E7274E1A4DAF47CFD5BEC6E979787CAEE79D989EFB657D97C29EA882E379E3C02795D8F1BFFBFD1F128F216FD7B3C99BDBC1B1D2F8FCADD16F3B3FC796565E9BD4B6B7530F5B2D07FEFB593FEB6661F41C8DAC31461F5E1FDDD7F12A7ACE98094D97ADFDE8E7F3D17A3EDF849ED3063B3DEF58A4E1A37A6AE9CCBE4DA870AD4CCF55C7F6DF0BE364DA1DFAF4BF16F59C31FBBFBDDE1B5F45D629D9CB6BFEB79CF3DCE879FF1963777C57C57E12D6F16A7A6ECFA931A64A4CCF7D7E99F154C263401B8EE7CDA33059592792047365E63EC5B933EA958E01B8BDB412F05D3C077C9E998D2973443D8ECB17C5F3BCACA3337A7EA52740849E47EA78153D676C84A68BE75F9C584C4ECF194B51CEBB679C9E7720EAE54CB3501F5D9A5ECB1F8E7A18CCB1D19F6FACCCA7FA378DAF8C9D2F8AE7ACA7DB7D977C3D4C1C7E19F72E8D067A1E517FE3743C4ECFB1796A6E03F039313DF775DC9EEF4C03DDC473D99E9B4578EC5B0B69F33C0E8A9BCBBC37C05E4ECA313BFE5514CCFC301AB23853ACB3CF8C7DFDF091159FC34BFEE7E7E6F881B3FFDCCF0B2603BDC21EC1BC39F30CD8223B36FE0D3C675E9FBA1BD107A9E0F746F9F7B2BC31EDAA6C9E2D97D52F9FE1B8EBB7D705F4AC159E636769E47E59F19CD878C4B37EEAD763401C4B380EC2B1F72ACABC125D66C5B9AB756F78AE3DED885990D77876B2ADC4A551A03D25462908C712EF7464C1F3AD1F5FD48CD35217B67E31635361F8D233BF4F89AD791FB5FE3BF3E0F2F9288C6F9A636578197FFFA1D56CE6951503B316A7A310578F47C69E9B789CB57ECF5C62D675360934C373DA53DA57FC03F99CF57F680459F09CB9D92478BEB0F28BCF6DE6B2F779CEB854366850AD1CF8B2A9EF493FB4301E709B7932FC3A39DEC93C6F545368D358C7BF13EADB6B0C401D0EEF551146DE743B0ECDF01C7EF3ACF01DCA5B8CFE2C789E547F174E17C6038E07EF487E63C1B9385BD4FEEF839878F43F496D3F7271BF1DFFA35D605C8D1E8F84E2E733DE27167538267737A3593DA73D24AD6507E93464C1F3B8FD0F1BC5F0F80FDEC143BFFA1A15F07D6070DBF4D5276F069A0E6ABD6BD68A50EFF98F85F1C7A563473FEF09F6575F8BBF3F76AAACDF5FA3759BFF3917DADF82BACB98133D0FEF49D36D387CE45E6067FCEC4ED594F90DB8ACFDB8F2361E0F23CF7A8E6EC36FF5CFA5C7CC2B710E54FFFD0F668E08FDA63F6AEB3936E45A7E6E79D3F338509FB57F5CDE74AA51F08EF141F8EBDF66CCFCCAEF7E3F61D24F3E9D2AFB4E3EB87DCF6FEBE9AF37BB671E756C32622C8FBFB23D4F173547CA5C5EF87768503363A7280E9B71A9658B4A3AF668927A7EF8083A5EAEE77C9EBA1DA05A397866F465017D77E9B9D65D769B9E3BECCF91A1D7CCB1B01E8534FC9D3CB2ABD34F7F55878F3C633F3442EB87D110E2F1478D05A429F67C24FC95E6C4C50C61BE837A2B7D0270B4964F03F5BBC2C69C133D47B747C6029F303D3BECEDAFDEECDBE0ABFD9EFFA5FD8E027BBBC6F73F94DABA76FC0F87F6A1119EA3E18C65B0BDD5C373B88466A00FD429BEC34BA317E8C7BD0913E793CF878F5C32BF19B6F623A4DEA12F0127F161BE18FC0EAD99097EC79A0AAD87E6B77C963F43B5B2E5797C3E34F683199BC3F524F59C982D5F9C38698EE33FE1F4BC7BD008CF93B9DF44553D0FFB11C3758EC5E9F99FFFF2D7A6FAD7791E9F6FEFECDBDCF4ECD07350EFF83C88CBF2B26C7CCE77B85E2B4E8AD3F3FC8177CCDABE8387664DCCCC3FFF65DA8C83B1BF91F29DE349F07C6E63DAAC41EB9DB6FC0A437A1EC535EA5D859E177F7F123FF8F52BDEC60F8DF94EE459CF4726E9E704FA2D3D672E0D7DAF57CF156FCDD6738ED3D7E29CD3F3EE02EB5102BBFAD5AAA91DB7A759E0B3FE3E2646876DF3B58F33CE662C19A7E7C667BF099B609EF59CF1393E32F27B0BD61BFC5A5AC751CFFCB9E2AD85E7CFE1FEC7626F27BEC1EAE388BE0BFB533F5E2E5FCF423F7363B3FC98DF2FC23FBB62DD4BD475F9ED52C8FE1C734DF3FB94D6C636337FDE28E6D0EEF05AB9929E07FCC70E64FF4676EF323DB7B586356D3E3E263D2F4CFD606CEDFBF6F66F4C5F9ECFF5CE9F6B3C6ECF9F339FCED8FC63D173D66913E7207C1C3D5ABB7AB6BC3DF3B987A6941DF3DB45E2A184DBBDA8EBF2DB2B670F96DF2BEE9AFD67526B4BDBC173137BD3FF0FEF226CE1D294B0FDACA69EFBE5DB6BC2E736EF7A0EA7B5D63A293D67AC0ECF3F163DA7EEA01115E7FCE782F696FD4FD650CE3FACE024753AFC3C8847879E951D23165DB84D61BD96DFA694FD9E3A872F72C63C5F6AC13FC6E8B93F968ED6F3607C8E9F86FD1B6C4615E3F3B09EFB63FE3CE87952EF0E7B1BFACD3C5AF08EE26D27C460C22F813820B2B96A9F1352F946046B8B1FFBCF78C6E7FA82FF8C27BB5ECFE129F531B27EF8FDE6B2F7858F066DA27D0CBDF2B95AF15EE92385786E7E1B3EC6EF99D70CDF27C1BA12C6C0ADA09FD233713C3255AC09E6BFA9FFF4EDE06423713658171BA7BD717A0EAAD9DB4D3CCF50DB500FF2CCF3B867170562A8D96B50F18922260329E7B0B5EEEBF9076387517CB676FF8F2C10F75F2A785E257F2BC71ACDDB2EA0ADF02EE84BD7F647B1716FFE4A10F7AD8A9E87FB8CE879E0C3126D6F2FDC3869AE99073D4F727C2E5BBB6D6FC70F96BE3CFE33F2A1B141BF1C3F03C07BC41612C469D6F87CDC6FBFC70C3E167F38C7F3E4C1F8A6969E87EDEDF2A98BD573E67A9B184BE45DCFE9B36B1CAEF1391CE7D8EA46BC4F9CFCFE187FE1BB449BAD674F9BCDDC5AADB1599EEB60C57F59BB11797CF5A53F965999AA2B7F2BF962F3C6942B17A04F1E5387348E8CF36F27E689BD2726EB09DF14E7201AD977A2F41E73AEE743E7CBD7AB315E5FDD08349D1484EF8F9EA3E3F499E0B2C65DB6BD1D7F42E6D63E1A3D6F70CF91A48F359AB79BC07A60D6C4B196085F7A52D6B7E36FCB396206295E106826C645DEF51C9F377BBD1AFA8E8FDCEA467CBF1DC071B80EE079D06FDFB78DD4E35BD8557AAE7515FE73A05E114B81BA7773F0AA77E1D029E3E73DF3798F39C7FA8EAB8337CD7E2E0F06CF9A355DF37E9B38D43763EAA0F679993A74D8BB3CF6D81C230FC7C87FFAC898B906F9F8DD5DBF4DE53BBFB7AFC93D750CCC9E3869F2B2AE8E6B2AEE43ADD8189D0EFD1FF19CEFE1D87F40EB0AD7AF35DEC7C984E7BE462675AD70BFBDD1DF638BD39E06FC1EFD9A99DDF2DB8A95608CE4F75B3B2D9E4CD2E0FF13D390FFFB6C65D3708EFAF4F0DA5DEF62DF75EFF8A727CD6778BA7A7BC1BB75E9B6F7E58929EF7ADF45C3C9D9BE7EEFD2A17F78C70E8D7BB7C766CD31F83B76E494F7F7130FCCB13B7D670C776FF55FF20E7D3A6C8EDDEEBF60AE79BB6FD0BB3E78CD3B7EEC9EB9269CBE7DE2B477B5EFB2F7F9A1EBDEADF3D7CD35C90BC40338A1D80F693E1F7B8FCA30A2D68E360A9E357CAE67AD4CB3C884E729EC6F105CB7719EF3AEB4AFB078CE678EB146B81ACF73BD2F9105629133E740BA7CFB6149271943320F092EF6CF188DBF7FF391193BF28C48D1F7A9CF8F7B07FF76CD3C3BF62951DF92EB714CD725EFF14357CCF5F03FBD3C78C7E4A5CFC07A6BE63749B9CFD4B1BED2DA127E4F3EF89FC5FA78D58B303447DBEAF5F94FF4CFD38CE7F3B1F33CEAF7AC73989BFF2ED2DED98DC0DE0397E0359A626B8BF627A02E2A8E1CF623F49F3D4AD4B7BC3FBF536A2FA44FF495ECEB727C67EB7969DF57F54381D9B3DD6F37B8A6EEC3EFF83DBE0DBA6616F16E82F1E05E99DD4CFB66E4C57ED04E9E63C766BD273199A2626CB40AB81965BB1CB9B4EA9DEB9F33FBFC02FA9C678E4D9A712229E7FA3F1FF76E5CDB288BB1C867EA27E94F9D169F3C41A0A38A970437F7DFFB9BE29E23774A6D1E6DA0E22BD1DFE198D677E91AFA3D3C0D5F9777A46351D7E47CF89AB5FC18A2C07E2CF8D79A7D4EEADC3B1254DB8F456B60640F4F6CBF547CDC9817EF92FD58E0B962B1856394A509C67340B1B781EC44F405E94F62DBE01829634BC54507E8C8C7104F29BA7EE4D4DEAEFD58D09304F63F4F7D3F16627326DC6F2E7F8F95D7CEEB3E0D71608EA2DB35B955741BCFCBF6572BEE435A0D87678FD6D4F354F757CB48CF157F212E4F9EC0D8AE9978E71F13E636D723EBE0F0F2156FE07EE53E84491F331CBB76B4E2D8CCE326E7CCD82F75F06CB0563BA1FDCFEDB160E2FBA5123FAA0D7A8EBF9D62D2718C39E46EE1B9433E90A43F82D173696478CD9805F96C65BEFF399ADE86FDCF1513D13E16CEE3E090260AF7E693BB1E7ADE77DAA0EA3D433A1EA7E7A4F69C1A3E0789E97971FDBD1B9FE717D81B59D3481CAAA4E363771BE00CF366422BD7327A5E5CAB1DA5E7913A5E45CFD17262BE33A70FFED7FF9E4C4ECF893943398BB167F26E6FFF18A1B8010B663EB9BB6DF6AD6060F0A977F8C8A2777B2C98E768D967043D3F71D28CD193D8FF9C344D3DA7ACCDAC43AB178EE7E98275329F7CFA675F0B0EB8E75805ECC9BCBAF1D63BD75F5FACF49A28C6AE30B1E7A2E2363D98284FE7CBBFDB90AF6418D8E039D7725989A9413953DC9BD1F13C3D28EEFE81CF0E96E2E977CB7EA349433C3F7D64A2EEFD4F5ABBDF44D5340A940B9F5CF0AC8DFE1F49C0F13C7DA4E5E7DB4D10CF2FFA1A09C7D3F64B6A86E7F84B0138DECCDEF359C2F13C7D14C6A3E32A38ECE3F09115EF8B136BDEE4CDEFDAF44E26AAA65160CD1CFE922B63D1B1F43A198EE7E9232F6B1DB2463B9E93C6D6073EBB54358DF2A9C7DF2AAFFBC43B9EA78FC2F8D7A5CF8A23A07D88B32E5B27A130BED2867B04BEEA5A1B47CA713B95EF1BE307D63C689D43D6CFA715389EA70FC69EFAAC359F49CC113702D676C6C54A6807B87FEDE734D18677213D0FD6E0FDE6B75F9994B971FBBB78CE9A27C574CABA1EB502C7F3743133FBBDD7DBF7C4709DCFD41BEC388B31FB6EA505FC36B3E4397350D5CA17F8A31C6C283E7A336864BF54E26DB09E91F1B8E3B94335C0ED9E63EB259ED3574727DADD674F73EC8BCF08F12594B2D69C54602DB9E23208D3EBEBDEF35F024E33D788BF206B96D35EAFDC08CF35B602795FEBE8789E3E0AE3DF744019D2E339BCC06E15C4D6DB31F7225E043E241CD7BE173A8FBFE8D5F955EFE9DBC0B60ECFF11764ED54389E791ACF81327DF2E9946997FEE33F2F9B3817F09B94EF1CEF36DBA9E379FAE8843A936619D06B38023FE036DFE51BAA3832BA3FE769031EBDD8F676DE6513EBAD91B45BE0789E3E0A13D93FBF34EB2D1A4D7C15749218547CE618609D367AAE180DA4070FCD7AFF18BD53D2F376427BEA05EB4FE253C5C4EA16E49DE7AC038EDBD3224D3412B38CBD18B37E4E69F21C1E634F974D9FEF6839DF49354F455EF41CEEA3E559E8F9FEF398A89A761B1AE539E327EDF516E7ABCD71C65A1A6F85F772B7C13A256C5402DF1B7B5F417EFA87D42FF51F49ED7D6B1A05D7526C77D559DDC3BE6F5D654C307E42B34893E76824E36FC539E633C7A4EF3CBBB09E1FBB30E53DF9293BBB85E379759EB3EF18CF823519713A0FCF5973CD5A2DD664325F52110BF3EE03F3DE7BFBCAE75BF86E347366317AADEEE4E38AD89BF090BEE2E123F74C0A180362EF81EFCD3C177487DFAB6EAABFC731CE639FD59A25F399FF13B3BE9835CD59BFE734798E5ED3062A95BEAB9D8CD2F3D59D17DECBBD9F327C1E135553417B720134AB91FD523B09CDF4DB1B8D9750CD86CA5CD3C8A54D6FA8EFBE373CB86CBE57BFD6DBD2BE0AC17BC9C65EA2FB52676903AAE69D7E94F97B4EF339A1DBB477A4F89349DB8189DDEEF7ABEC188AB495A7266F799B3F3FCFEC794C3E992EC6BF1B8D4CC3FB9F33E747BF34EDF9FDB4D028CFD1E93FFEE91313833DA9B809F81BE193D0CCBE5159F3BC91BCC49D65EE9CB9D8DD36AF4F4DF339A1DBB4BFE8B66CEDFA1EB6B7738EB66069FB79A67A5E2F3AD936D5EAFF88E339296D1C6BA94993DA6B813588F80FD7F24578BDF72F03FB585CFD4D62DFAB6AA89737DB3BBFF86DE2B2B13BD09E69EFC076C7834F93E78C91182B69DF246CD5E8B8741DBE87F5BC777C2A533DFFD8D04CBF3DCE56F1EACD7BBFFD6EDCF6855F215A5E2BB6C0EAEEA6776274DAD413EA90EA8DFC2FE8CB53D7A85BF86169DF9E34EA78BDD7644D35C0C6A8BD8B58EFD4EEFD83D2E4B9ECECA4E838CF9EEF6879949E63CF587CDAF8F89C3E33FE72C4EEC0EE93B64F4D37218AE78C43382E84C7E38AB15359975E94ADD9481A3FBE7FE77DF7D3AEE1B13D3EA7AF281B3BF58AEFB201A90FD9CCFDD0A1B873366F28D7EE870F26AD7CBEFB3CC7B79DF62C8B38F269F25CB635DA55D9403577CE779EBFADE7B4D10353B79BD273CDDF309793579B5816C0266E735AB0F384BF0F2C17F7AB5ABB517C77CF4C3D66BD46E0CBFDCDFE5C337962ECD0A5EB4460787D34B6CCCDCE6FD5827CAFD52F90FFA6FAA1F2E524AFECED60E4AB27DEE0831B35799EE57B4E93E7F098E7A239483EA3E91CD77CBAADE7707F7BF7FBA6C6E7705CE346C7F3FAD154BF3D663E38ACE7AF7E7E6BF6081F7A78C13B78E1B0B7F034E817A093C6367BED5A6CB9A2EE21DD2CBF67F5FA5B4D93C3A0DF491D553F94CFA45C43FD057BAFF4A0DE3DF32E4DAE18BB4154BDDDDAFED9AF972BA60DCCF23DA76DAF84D7B48D5A03626B3CEDB2ADE7660FC226C6E7F42BE1B8E2EDA5B11767B722299E33F69CBBB6E8DDBA74B76463628F70E5654EDD1ED7C31DDAF5B87245DD63F9F553AFFFEADD0ADF3478293F4BEA97F4185EAAAE89B3D59FC5BE9EA3DDFC36ACE7F439C92B3DC75670FACB47DE97776F55D8084BFFA5037CA5D32E03ED1FCF49E3739E95FA3FDAFB54F97866ADD8DBBBD597254D24C9736CE68C3FD78AEF413C0FFB14DB6BFD49A3C6CF51F7A05E60BF098FCFE917C24FEA937C2D6D7B1079EBF18FB3F55CD709EBB9DA0AD55BFEDBE5EBEBB17A1EE4EDEEF973203D971D547ACE7D6D3DD7DEE97D85196FFDA7E6D6E61666F6EB06EFA9519FE546FA78DD822479CEBC91D6EB9ADF15794E3F2D2AF6C029FF7D934A236BDD43EF55BE5649D75F8D2F5567D5FF94A6734CEB1BA4E7D8F3FFEBF89C373C375B45CFA3FF4B3BD12E3DE7D9E99945E9396D255C47CF9BF56FB7EB86F6276E04B43F59BF8F7623299E332706D072D993C5F3701D9BF5EBC355FFD897C5985C97C71E9BBE003156F83D734F7DFE78BE9EB9A724EB2F7590BA29BB92EA2DFD05DBAE64DF973C13D35BA6CE46E939E315F9FD6619BB3DEBB183EECFB3E4D9B6E2DF60ECB78B13455F8E608D106377E6DA38B6118AE1411BC47B55EC2AF5230B8FA6236DC033DFDCCFF459A58166785ECD4E6EA377F17419CFBFF535187EFF9F3FDD301CFFB6A8C9F09CD81D705DF1B84E8C1EF62E47ED7339F9B8A21FA6FE3A5C143715DF44BA9F56BD957EC5E563CE57B152B2F4ADEA149E2781A985BBDEC068B0BE626070C11C83E7D8E5E07A1CCF79577CEF2DF62347A61E782377EE193D3258F0C79CC327BDA78FF3B507433D48D2DE5EEB1D4BC7C13FFB1E959D7FEABF9F7A6329C91EAEDFC273E92F905D4EBA9CC673ABB7DEB207ADE62EDBE51B4DDFE2DCADFB66BE4F6D21E363DA3C9E8BFAAF766C08BBAFAD7E8DDA4A1DAB764FDB1EA2F695DFA99DB5EDED0637D61ADF6F50FA317DDA3B3CF00F731DC64F5CBF9A9D557617CD9548CF7BAF7EE55FEBE2FEB5FDEB5E3973C0BB73B5FA1EAB79443B793E7573DB3BE1BF1770F06F3365E7D1F37AF7DA913FB57DED2460FBDBF0597D3DBB6FA0FBDA71151FAC7FEBDD7FB6D931FEDAF0FCDAA347DEF17F3C08D686156D20F257119F597BA231B4E617F8AFB24BF03BD924A48571203FD796FD8D71B3E62BECB851B2C54DCD7DBDAFA34D6060F4BEB91EF7E4FE9451F7AAACCF6FCA6CB7D2F3A1F17BDED0F53BFBD75D9AF6D6AE9EF59ECE35BECEA2D3D14E9E2FFB75052D87E74F8A6DAB7DBE1924ED27431D949F87EAA5E6EBA82BB2198AE770059ECF7EBD116B876B37E0397116CF9C5B29C56DA3DC8AEFA4F18DFC52ED390A5B831B81AECDBD14FB51CFD0E639ED06B6CBB9073B2DF17C78E24119CF75DF289ECB37526DB478CEDAE78A7EFBD071EFE954FEF65BA95DB7376B1E4B8AE7FFEFC83DC3F3F550FFAA15AE2A5EB07CE4146B543EB00D73A4582714B3427D5BE9B96C39F67A6AFC77885DDA493C3F75F5B689B5A37901F8A0B96BF5A19907D1DA7ADA37B828FB75A3F7A47DE07AD2715D4BE32ADD53FB87F79EB9DF74BF1D1C1E182BEBB76BBD43D4DCA9FA289A2B51BFFDE88551AF67E29C1513E18C57B8D2E3DD79E0786EEA78933CBF1AC3E730CFABDAF9261F9B3A439DD2BC16BF51EC12DE37F599B491D84EA57BFBD7968FB6D660712DEA8AFAA5E4137F48CF15FCB22CCD7714CFB7DEBCF40AD736CBFCF7D40ECA9EA1EF6AD334AF206D6EA49D546C09B58B8A1DA5F5A97AC7B68F422BFF51EFD6B6E32BA64538AFECB4615F69DA33DE7329AF5FCFDF9FBFE0ED35185F210F6807CFE52FF17F359F51C4E12363917E32B5AE6FDB54D2B623C7F954D87525EC8B9B35E0397EA5E8B9DA438D33689738463F88546369DA32CEF11DCD6F54D715AF593A4ECA3D48EDB851E4A16D1E1A5D6A49CF876EDD2AD373EE65FCE623DA0FDB6787EFD2F32F0A056FE8E158A59EDF3A9BF93B4C1A49F27C636BD7ACD988BB57989371FE238DB42359CD17653D4F550D8C215EFC6BDFD6A0F2D266A169767C27B4CE8EFB64C78768648E3B1C334AA9DA49DBEF553EC9ADFC47E9B0AEABFF169557FD96A818D365EF517A3EEBE6CFCD738AE161DCBA54F94AB1768DEFC4A1613EB977327AFEA2519EF38EE52797A44F63B8FE6BBDAB5D573A11667C3E79CBEBF9FB4269DC6AEBB9B4B6969ED7B2B1DB909EF37BEEA57B701D3BAE3379E8670C8FB7A6E73DC3E3157ACE3DA2B82E3D577C2FE979CFE865EF8B1BC3957A7E2F7EAD645ED1929F4C83EB52C3E36EE223C6BD47EEF3F4A9DFE79C38EE156E9C0CE01F1F1E5B35EFD68E030907F9AEB17472CF2618BF710FD559F1DB5EC762CA61C7817C782128EFFDB365FFA79D3C47CFAFDE7C5AA1E7D25A8DC18570FCC646F55CD7D33D147722ACE79AE36A757CAEEBD9E3F3B8365EFF37DC46CBB7B9947765DD7BDF77DAE9B99E71837A1EFBAE6AD5FFAD67DEFBC1B3C62EB2578C1DA7391A7B7CCEFBD51C8ED69DB4FA5CEC3927ED1916F6CF218D6C57FCE7B5E7F7574016EF547ACE38D88EA7ACD86C8A891B6EBF5AF11DD4FCB96CEDE83BD7E6BB1D6782FB53AEE12BCB2DE9796FE15A85BD1DDB5CD47880B2A94C7CB7C7E7657E32B4CBD3A7BD3B77DABBC7653B9014CF8985B47CF39E373F3655F7DE92B578BEF5ED66F0EC017DAAA29EDB71A388E56CAE35FEB4E4EB9104CFB5065531A4C58FB09E97FA15B69E133394F266ACE727FFB958B1AE4FB1E8A5B76ACFA4C54DDFD3BF86AEA9B9EC287B3BC7ABAD47AE176A5F755DB5C3D5ECEDE1395152BB9D464FDE1F3BEEEDDDBEDBD6F7D50E24C5736238B2FE04FFD5A775F67B6AD67FFA51E839DA589CEBA0AEC22D8D1DEDF7ACB17412CFC5EEBBAAAF2B7B8E7DDFC8FD7E29F7F90BA6CEBCCB20E689F45C76F5B09ECB0EAE7A4EFFB59558F7407AAEEB4ACFD54FB0FB1566FC3FB1DA929E8FDCBB53A1E7B41F517D12EDE7A8B938E9F9A9EB57BD91F5F1F2F196DF36CFAC397F3853C723F8C9BA54349DB56A49E9F93BD67711B302BF706BAD17BC933F84E23CB61BEA0346F675292B650619F19CB84CFF3CBB14ABE7E17D66F8DCCAFE35B69EDBFB2487F55C7DE8667C716C700DFBBAB5F43CCADE2E5F41E5337A7EE2A4B797F2DECC59208EE7ACFB9929EA72BD3CD7BEDEF5C6396C777F56603D1C6514B4269698CB7CA69D22062DFD927B7DA7CD713EEB77CF3ABC1E48CF6DDF37F9C3C95E297D13B47F4DB35C87D7704FFE45766AC7752E8D815AD5F3F9DB657ACEE7B8311B65E3BE6AF3A4E7C3F76E968FCFD1737FBC35F3A4FBE25189C3ACE9B3E3B433F7F5AA184F3D8AE74980D87159FC67DA22DA24386B731EFEF29D7E09A9C622DAEF5E3199EBEDAF6405E9F9852B6BA57E877C42E5132CFBA2BDE6BE511BBB0DDBCFCD8E05191E13AB3DD8B0D6373403CD91E9BAFA4F91CF23E4DF1E373E37E3ADFE33259B6F37411C66CDA4E267E669BFD466005FD73A20C64B5A881B9F2B968BEAB7D6F12AFE1DDAD8AC9E6BCD8FF65BB2E34086F7513476D456EDED5F5D2DD373F54BC25CD71A1EF52D38668FCF2BECEDCC874E9F8EBC67B518C49D8EBCEF8BDC0CD0E94ED7E45620FF76E6CF6DBF31AD09B7D7A26A0D996263353BB7461B524FDC28AD136855CFC3FEED5AF71E6EA7C26BE9EDDF708D46FC9DB21A6726818F91E71F036473136FE5E79E15B47E547378ADC48D5AF876B962FE5C6D0B6D963D46DFDEE11CED4BF09963073EA34CFE33B93E55A6E7B5E245399E3B742BB0476063B56D1A8C7B80ECAEB26B708EB85FA4B263703EE93D23E19B3D8FA0FE887C17EDBC513C579E913134BDFCBAB5EE9BF5FB68168EE70ED5A0F8BDF098B908D9369883E018DFC56D627A334F417E7B7E220D9E6B1CCEB89BF1B6EC0E8DCC89C2FFD58DF2EBD6BA6FD6EFA359389E3B5483785E6F4CAF76C0E61B7DF446623A57B30B389E57E671F83820BF8876EFE35C0D85890993522EFA18F421349EA0AFA1D8E0F2CFD439ED63C9B1A8762BCCE3B979E26B7D1F7B3E4F703C77C81B14B740E302B82B5B005C566C7052DA0138CD79F8CD31BEBF8E88BD1BE671785D96E3B98343FA2046FB1FFFF44909E311FE2CF271DA6C622D4AEF8DCBC531FCB6E1F7C0207B832DF99F9F076BA646BFCCFC19340BC773873C813D184EF59F89AD93F05CEB2C1ABD76E1C644D9F7F16B3B06A5F34ECF1D1C5207FE9AF05C3EDA49EF6365C731A39DD09CE1E3E2FECB8EE70E0EE903DFEC399F77E8396BACB6129C0308F66A3B5EE23AE379F50B64832C4C4F64FE0C9A85E3B983C3AF66AC4F3F61AA38AE87E7DA0358793A61DFDB66E178EEE05009FAEB6839FE40ACDDA40FF1E7BFFCD568FED0F90B99EE7DDB0C1CCF1D1C6A03BB001C67EF5BADD7CE131CCF1D1C6A034D67DF5B90372D078EE70E0EB5C1B87D60F0ACE9BF2F35316797351CCF1DF280B0ADBD5D7BC9770B1CCF1DF200E6CE99471BBE346AEAE36E06F135F30CC77387BC80792F7B8EDBA17E389E3BE401F26DFFDDEFFF60D2B90E8FB9DB6988E2303E031C1716BA703F68877CC2697973C07668735AB0F3383D77E81414A626322F431EE1FAED0E79429ED7926409C773873CC1F1BC39A4C573E2F796F6066F1049EE61EED05D284C6C9A94D8D0ADEED1F631A1199EF39DB94C6C9E71BEBE8ABB57EBFEDA734FEF8DB8DE707DF7C307EFEB9F77CC9E03593F2387D650ABBEE0538AFF38F6DE5A6B4D4DDD78F76FEF37BFFDCAC4A45F9FDFDF3B8B35668A03A763AC21EFE63D391A7907B58E85BF338F894F1276F9B8F7522FCF89BD4D4C5E78CE67E2F59A7D73BF7AE21D3973DD9B5A7CD2F41E210E9D815AF5058E8F8C5D31E76BF994C273EA0AF1DBFFFAB71913EB8DB86FDAFF9274BEFF8C49D78B71A51E0C9ECDFC19648D66788E1F3F7E49BC9FF8EBD6C773ED1B223DB7F7BAD57E5DADECCBED903DF05D931F5B5C1EF84D7B10E7E7C67E4AE8C17FFCE765B3B78BF6699086A3DF6877547C4787E6784EBB8B5F12BEC63B31F17E1BE9B7F3FECC5EB97ECAFBD4B8FE8BA1E9F27DEE8AB8327AD4EC77F7EABBCE8929EE100FD680684D67945F3A1ACF39F2682FEE28503FD005EDE104E0B5FAEA70BE93E2CC77121AE5399FF155387CE4A849276F46EF155D2FCF81F6A757BABF2FCE66A92F6FE7DFF3B5E1FDF90BDE3B37EEEA78D4AA2FF40D396EE7895BA36262AE1EB967F6808DDAE7DCA1FA7BA8752C2A4F2DBFA44678CEBE95717ADE3371CE1B7A3856AEE913C7CD1EB63BBBCE469717D4E3C7565F9EFAF73775D847D33CBF57FD9D34AAE782DE25F6F6B3A3ABDE97234B157AFE7EF0ACF7FEC4C9CC9F9D43FD282C56AF2F75E7713C6F0A4DF3BC86BF42233CD77EB6D8DCEC79F743E7C6BC85AD672DEDA1DBC9E0B9126B0C1D23CDBA3C69A21EFF96BAF22CCE64FE5FF2884EE0397A8D4D1D9B9CC6E7E8F9971796BDFEE18755F7BECB33189B3267CC98B5DADC4537A0F060B66D791C2A9135CF199B633F45CBE1B73D3E3F3572D71B591FF78697AF7803F7472BECEE51E89D3E5D57BE81E5ECE75499AB3878E8B05967C9FC71D6E589027D29FC13EBF163AC36FFA9FEF6CFEF3E181B3969786F46E5E138E77F7AF3D6202A0F7B2D27BDDF7237234B9E5387E8A7938F3A825F9C6D6FC7AECAE7A39FCF9BBA564FBB41ECDD7AD62677829FB4F60638F0D941EF8B132713DD774088EA27B007A8F60804F69EA051EFB1DE3171B57C85F1A01CDACF105FB5B590DD8D7DCD4889A50C87396FEF9F44390F1F796852F6480DFFDE211E59EBB9E27EE147418AC6F5F6CD180E0C14020DC7DE0ED0F6588D9E0CE6668843007798E3E73B73FC5C3BCCA14EE079A92C09D657FC4AF53C190F68AE0ABBE9C5EB37BDE1C105FFF996FB9CF5F66D98E35F0E5DF6461E5C29D368F5AD6666774CDF4BFE29D1FFA31ACF83E70F7FF169619EFBBB501BA43CCC87A3E9B4093F5B7E333A4F2A3FD7ACDF5D5E9035CFA9977010FF08C5CCD5F89CBE2C7514CEF2197F8B5AF1FFE80353C7B90E5AC63519038763F1B693E7DBAF7EAC3A8638D07F38F6DCE493C6F7FDC4A74C6DE694B56F28FA870EB20FA8ADE77C474339AFFD477877D845A4E77CC65E5ACD07D9E639EF8FF4CDEE7F97EE413A7773DDE8B9F64120CFD2CA8FA53C9337BF3365C06F957C765B60F31C5FD6950E1DEB74229AE539E3DB8A7A19D201EA0836367480F13736F5F075D009F293977A445F5E1A72E4E290F7E0D9B2A9AF008ED78A9D4D7B504F7CED76F2BC56BFB7BA0EB6368F64F763D0D0B8312DC7356EE63BEF8D7751ADDF4E1EF49DF116DFF161D1FB677DC2C58733DE8B1F7F32BC0CF6177EE15F2F1873DBE3F385C537A53CF03C7C7EFF59ECF39CFF123EEF108F24F59C3AC1985ABEEA36CFE1781CCF6903C8C767D56DF4E0EAFCAA3734FE3015FFF6F6F2FCEBD267744A6BA8A4553ACF39ADCB90D6E99C7EC3F9C7313E8836A4E9AD8E09AAF11C8DB779AE7CBCE7EFDFBEF39EFFF2D27BBD279F88E7753CA7EA797AFB9E983CA4ED7A77DD8224F51C9FB62F4E2C1ABFB67AF59CF39A3B27C50E273DEF1D9E31FEED15FE7045B4E20FD75E9EEF6BAAC6A6E895B453E7398746E9BC7D4EFB7AC769326313C63EF09AF10A296398D2F8FC51ED390883B51B91E373DA5ABDC7B8F198781EF66BB2CF557F4EC9E471A8441CCF81D60836A2E7AA13D273C673B4F9807E79F8379CE7385A2E1B8FDEA58E877D99F7FC7A0BDEB5609F6E17CFB10D6B6CCA67D65B3C2BCE076C6CED968D5DE139E7E0F2AB37EFCBCEDDBFB962F47CF376F4785DEBB7B5869B77861DBF593DE75D682E84F7A13E3A88F367A83AFE985AA9FD4E5AC813B79ECA2180380CA73507C3319E9BC676513C1F5E1FF556BFDF2C03ED3DED3FFC54BB2F9EC3D7289E07F77E6DF2685D2A7D7F53BF6EAC79934B0FBDA9D5A5B2FBAC5D3DEBADDD1AF5DE6C37EF5BD24E9EF71C5B2FF19CFEF7ABD2737D6B8EEB3C7ACD79C6A7E2B9CE3DDE785DF6DB7A205D6FA6DCB4D536CFED731CE79D09B2CDD19F53FB6EF0FC45E99DF52E9EAEA82F613495E779A049CCAB906277A42EE771AFC334210EC369D9AFEAE9B757F0FC65B0565C3E2FE279ADF139503BA0F1B9783E32B1EA9D2ADCAAE4F9C8696FAD70C67BF3AE793F89F6F6DBA3FF773DE76BFDB6165AADEF513CE79DC26FDEA7DD4F13CF19B7F12E6D9EA78617FB3CC74EABBD0E1DCFC3EF71B3E6B14678AEB5A4E239FE6DA46AFBA3CA209F575BCF97D65F795F4EDCF3C667D7CC35ECFC7B37A7CDDAD456FE77B7DADBA9DF767C6EE99CD1BD7A78F3F2699926CB4F116ECB9F29FC3EC265A55D6FF79A04C7EBEA6896E7D8C0C275843A419B6EF39C7A219B0EC7A2CAA07EBBC6E7E279FFD5BB266E54945DA755B495E71335FAA217A762CF0D14E61ABE1F759E7531ADF09CF7C5FB10CF658743A7E3E63F9C8DAC739164BC57F952A8EDAFC74F86B11DBFD3BA54DBEF557DC334E2C3D5E2393C812349EC75FD6AF75F35FC640EC69E9BF9263EBE4A3D68D63E255B5B527EAF0ED922ADB8CEF5FAB7A30FE8375A810FBBBD8EA56760CA3B7A65C8FBF3E93EEFF0E89775AD65F9DD7FFDC11B7A78A1F6FCD1E28CB987E6018D6FC7D884F1A503F2BB0B629DAC99B295FC401ECC465EB367E87853EFA0D3F712E2DD94C5DD1E5CF0462EAD7AE7FAE7BCA1BE19EFE2F925933EDB785E8AD186BDD0C56AEB1C64C97301CDA1AFB9CFAD4017649FEB39F6C0F41FEB599F2ABF573E635BD41C535C7CC1701965C709E7539B54EDDECDF015FFBDA39FF7548D8BD669C0E794393EAD25C1AF87F93E384ECA31FC689FB9BD0E3B0659F39CB91FC50964DD055CD73A962F864EFA7ADE63D03371DCA4C3CB319A1E5AC7C2B5AAAD6301D4CB45BF7F4E9DC43F053F33F9805397A9A7F2B32646303E6AD4E3F05A49C0BC356BCEBE6820CE0D63029E2D5CCFD35E953C039E07CF4C6B48F5190DE7F9E87BD66575089035CF81ADE7EA1B739CF52B5AC3420A176AAD63615D6ABDDA483DC437051EE36346AAF8FEF23DD567DA04ADA18AE2393EA68A515EAB8C7987343CEB7238D48F4EE07918ADD8739288CB1215DFC0C121CF4892E7F2D936FDB837FFF2FA8E4D1B1B0DC06683EDE6F2D8E392ED86CF00BB8E6DE789F39B6B17E8B73FCF513FDAC1A11692E4397D5AF8215B0CE35BF579F93E7DE4A8F9CED8577BE530CEE3B3B3CD3A38A487A4794E7F175E6B7E0530AED577C6C1E4D37E3980733FC7D8C31D1C1C5A4716FB9FC36BEC5B6839DAFFA8451F56070787EAC882E78AD569EB7ED6CFC1C1A19B9105CF1D1C1CDA0BC7730787EE87E3B98343F7A31E9EE3EB65AF69EE04E01B977519BAA59C7928A32B676B88F211E578D6ED4F33ED5327220FE5CC43195D393BBF9C5C2F8975DC693FCB34D68C255D4EC56BEEE43202AD13ECF4724ED611233BEB72E2CB9D87BA99C6BA8E34DE791EAE09CF93DE872D8DFF4DBB9E742CA73CBC9F34AEC9B34C239E2D6BAEB21E4FD4421ECA989772E6A18CAE9CC9E3FF032C0E6EF3 -SmallImageOriginalSize=63600 -SmallImageWidth=150 -SmallImageHeight=106 -SmallImage=789CED5DF9531B49967EFFFCC6C644CCC6EE2F13DB33DBD31DF6DA637C1B1B2C0C48204B969040E844F78190D001E8C0800D76F7F6E6F78A2C958A2A74952EB77E78A152AA5447E697EFCAF75E966BA774FDDB1F7D53EBE26AA0F3CBE2FAE501EFD138BF1CE87C799F71BFC7A0CF7475F37D26DF63DCF718E63D4E9AE7637F8F61C670DCF718E6990A47C7637F8FC37265ECE331E83DB4EF51393953EF6925650B474CE3B8B6FE3EF37CFD49BEC738EFA1C795B66D410B1A8626892B7F2044EBF6AD81E5E782E68F2689ABF041821E2F3D1B4AF75BD07CD1A470057B08B802BF2A1ED7A6FEDE0B1A2F4D5ABF0A1F26A6FECE0B1A3FF58B2B5B7097C227892E326A7367C3F79EBB5B0DDFFB7FB376B373F7D3A5A9F7E18286C755F8A04995788AEAF9433ABFD5BBD1D6ACD6B9FDECD6AF51AE7DE99C9B2DD0E7F667D373D1864F79EEC5AD0F14ED38076D46E79623B1EEE74AA6BBCE5DD0F4A91F5C2DAF94E9D787393A4A1EF2F8A12D1A6F739BC759A0437F80DBAE6E7E177A7981DB0BC1033ABDF505FAF61ADCE6751D322ED076D6FEC66D2F5F1F513192A093C211B77BFD67DCEE73E5E92818E6B67AE386DBF01CC075C1EBE776FB768DDB43BE3CB7B71BADA9F7E782FAC755E5E49A9CEE3A7DF9F67F6A5BEBE23BB735CEBBD7278037FDB9C090FE5C60106DE5DA57C373717DFDB9780EEDBD8037B4B72F7FEBEB5D1399DCC2CF31055CA1DF61AB19CBC1B3BEDACAB5ABBECF356AB3E25C338A0A5EF9E8C9127DFE72DDF77F16343CAE62423F695F7EA592D07FD0E746B8DA2D1DDCD19977CBB1BB7A74357EA7DDB6B76978AE519B59BBD9B9A556A3AFF7947E0EDBFA26BFE7B4FBFD472760089892C7DA4F2B0898C5584EFB3D25850B0B3FC72468DCFEAB5CB1C434EDF794041E278F0B47172C47F5543C1E3C366741DDF4675B777697FC54BE38A5F2E929ED068F859DF09975CAD6C5B5908F57C216F82ADA853D7172A99C6744E2378FEF5460B07D6B7B5C51F9FC8C7FBBFAF67DA858AB71D2B6ABACCE191C2F70653DD9729BE42BEED386CB29B091E37822AC8797AA2DEEF75CF1B368AF92DD5520672AC4FC2DE27E4BD195071489BB69CBF58636963ED093A7797238EBF4F0718E9C6F7D64B7BFE173973DEF69C3E1A45034CEF146E37887D6C539458E4286FA26C857D9A7F05182F549D03F7F0DD3F35769A65F1E44D4763EC7E41A4CC7510AD7C47B5C0CFE1EF38AABEA6993D6361CACBF0D8A2BD800AEDD43C60FB07458BEE0DFFC813AA5F36D6E77EE14C9938F28B80A6E5224B0C1FDEC169F5BCB1F6979E588F9D5F24A893CF6187DF47CE073EB572DD5FEB9F8FA6D3CB8AA5528BAB14411313F8CF0B09C79DF85ABA5E709955F29C7FDE18ADF5BCCA5EA65F34F832BC4442C3D7F3914AE8017F75E91F193C8B4547D2A956DB30C44BB77BFCCB62DF76F668722071FF978AF10A080663C5DA51DAA9DD5E96A92BE0B313E374E375DDFAE6568493E97B66DC371A4F22BFBF651FFF7810FBC30C0F93F00AE20BF606762DE0DF2BF8D8253C8C1A88A2B60E9A4792DF8CB1F942D800FFE21DA9B0257972ABF0225CE7286D7C36FD0AB26F9EEAD931A45843CD6CB42CC19F02A3DBF7AF4E440E557CAF1ED6FC51EFC4ACC25CCA93F13BFE2311D3236E2F397DF58D75E5E11BA91BB2CF0742E707A2578D795C0D915F9F66A8287619DA11B3FDA6BA4F31786B88ADEAE538D1557420E42E78BE43B6BF1F6C38F2AA6F4B8D2EA5738EE1B574206025BF384ABEAE957431B5F4F9053A6B83A19CD1705BD0AF7D8F516E8D37A98ECCF3F927B2D4431EFC19D735917AE27291C871DD812E393E535EFF540983C6531BE1565ACFEFA9FFFC531E35E7F803FC7D27F907FA92C5D6B7295C2C70985CACAA7F67CC83ED99F03C941ACE39F0E8E29AB70057BE15EBB424B39D85D42CF596F0A1D49E10967EDEEEB41DF85EE8B1C16F802D4F955EABED67A61CB927142CC45716F5FC897336A8B7E6C19D871E17467ACA04BD91D15439DEACDDB557E7EF89AA5BF7912A4F6D12D697FFB72F39D92426748DBB7E87242CF6405AE105365EAEBD15128F155D8717F90DBDB605CA5F3583FEEBE1EC6036B9529A137EE476AFC89F12AB7BAAF053E61451FA0AFEF8BB1C1F32CAFBC57E35CF5313C5A9A96EFEA3E5C619E147CBB540A4527F63C56E08AE5409FFCCA1B69893152F81574E440087EEFEEEB21171572C4EDF533BF827F09B81A17BFEA45F019406F92FD8271AA0A39D49C817546E809FB91537AF6222EECE3037AF2F440E85109D1AF27B4E73F623E5CCB18DB1C5DD8D3E41C34CEBFDDD147E033363AB71F5CC9BE4BE70FC7862B5FAC45EF5607C3D56E302CFEB336355CCD32C9717FB79AA35F1FC684DE17A5D5B502630DBA62D6E936C515D61AE00704ADD83EA8EDC0E461F99C6D9BC2518B72C526DB329D7B2678AE035FF546CB303E449F97A8C7DA3870655B577075D284CF48B1EDF573279ECAF2F34B5CE1BD59275DE0CA10570E6749B5F9708C36BF2747A7C5921ADFAB25C876F011F4313EFFF1F32F14CE887ECD23B725A2DA1CC00DD6773DBE0285938A2F15FE9D97AFDFB2AF07636314CF3669FD2A9CFA2A9E51D1AFA0AF43BF2A55BBAF07FCC3DF8977867E05FEF96AF91D95DBE3D1AFE699801FF8E0DEBCCD0A5998625AB1E5C5BC6C32CFEAE71AA9D82772DFFA7D25AEB4B144180B1557E21C4F648B82593F5DDC98AF274C5ABF72F85AE2B93BF6602FBD1DFC0A32F197070F67875F89F9596F69742BD15F58BFE16331BFEBEDD3CE798D5BF9019971725BA341BC5FBD7E1BE3216CC77AA5A3779C1F97A87DDDBFCD76F1F537C6D6F2CA6E17A1EDAC7DD3D735D2BE8D8E8FF51657DA3A0CE05D8CABD4AD5F2BE5A5C8DE8799C29527DCA26DD760FA15D67059BF9A115CDD08DE1FC9FA3BDF850E237D6937C2E68A149478FF1BC16F23C94FCA79C296C458F0B1E00511FF9A8AB1A8ED917AAD8A7D7528FFBD993DD88FAF23BDF381B1A2C595B64E09ECE03BB80A6E8E1D5783F827C1A340FAF861ACA5402F401C07087EF050F494D7EBF6232782CF8705AE7233812BF825B106AD7E173C4AED03C1A3D4DFC471A4ACE47EC08709FFB8C412D68CF9F8E67B17468FCBD9A170E5C9ECD2B6C0B024EE23A12F616DBE978F1673E15AA323296BF11D7E055C758D176424FCB2F73CCFA4F995D62F0ABD3D9E42EC1FFC3E9DEB41FE81A0BB2BFC2A2170E59D297B503F97B4DF473996BAA355CFD98F4F20BDE7601EABE557754D6E13742DAD7EC5EBF071F74CF12BE539FFB895FF0AA662C93F78DD57FE8EB902FD4AE1E967EC6B747BFD23DFD7525C1D16BBBF6BF881F6B741DBCBCD36D344DF07E3AD89E9410C1AFA3DB057229F2BCD9FE15085ED4AF8EC9AC23E6CF5F0454D835FADAE29FC0A6B38D1B8A2BB6BF915EC0FD8BEF804BF02A61CD06166895F1D286B3EC89D449EACE7A98DE24207CCB9BDB46BF3D0C1DB558A091B76FB958B52421685969EF11A6454D8E7A1A72F6873698B7DE0C1274BBC2E590C8428F2E235F95E6FD2EEDB2DFEEF017CFCA21DE7D507F4295A41F0FDE2DD90F3D910B2106B0CF05BC02FDCCBD76A09BFCA0CC637C09B7AE567554EBE08BDA07AAB5F9DD28643F0E152BE0B57A17A7C2A98C233AD6D1C52C093E6B5916D478E5E2C8528B31723FB6A8456DE2668DFB14FB6071FE8832D459F56FD147404E8BD2D4B9BAFFD9470EDD28BA711DA5C0953DAF9899E3F8DD1C67A8631F9EC8197DE2DC7F918B9BA17428E61FD729475BD61E39081ABF694D69DE1B3C5DAD9A031B7F0B968D7098221A11B0A3D3D18AC30DFC51AC47EE098BCBE63AA579B9449D579FDF46A4C31988310D6347EFA9F30958F1A9C630DDC3F7A12A7D35A93629132FBBC2BE506E53275FADB4F413E0FDFFFFBEF21CA66C55C3FAAB36F7C2F50A1D3E33A3D5E4A90CB73CC63B8BA92627F39788259AC60EBBCC5BA7EB86A9CFBC6F2C3823864D81CF03F4C234E067A21E4D5A8B1DCE853CC4FF0DCBC6747912F881117DF91378F63FCDE98911A477A7EABFD3ECA31E760D4EED7B5D5B83EA96B6B68BF16B32EAE2FE4609F8215B882EF681A717D989FB2F6C33C50209FED1A83ED6470E8E3E5F076679DAB18A5B3F31E320F71C862EE5D1BAC9FC8EB68DB107335741CF210F576B558FAF2ED773E867D392FF1A23F0A858FEFF705E989F326D61E73AE8C16DB2BD90F86F1A24F9EC6557EA51CF7C9AF225B23F12B6049E24AB64DBBAF47219798CB4EA1F74EFB39FAC6D581A24B19AD0F9BE12AE27CCDFA8FC4C0D8E290939FE62A0E799C84D807F825A6FD1CFD926DFD983656D3FDEB8E883F869DAFB111D90753BAD5C54BDD721036206C21D8415BCE01E4209E678A71C8B344B04F518B08F3F1CC200F6A16097988A8F7551921E7E2478C439E350A1F4CDE87380AD9D6CB8CADD1DED91C57320EB99FB851ABE8C7C49552BB08F5021183FE79C6F956F8A03AF47F11870C3FEDC3C7117AF02842BF3E0C733C32E23B078943B69A7E345CA1B6DF8AED98E77F2D7FD4558B7458425C453F3969FD1030701757C3AF73DE172F8A3864E9B75FE06A745CADDBAB8CAB56E3DC92DC86416A026A291A6FF01A2E6237B1BE00BF3C70C5EB299F4A14AD2AEBCDA82138AC9D711FAE9017097E7D31C49E680B5C19F5757F35FCC68D2BE029966C32BE802BF03D600B587BBE9CA07C5BB1FF46C935B4220EF947C015EA4B592157D067C88737EC6B8BF9FEB0B882EE837795B892630D5C2DDBD2946D8D5E171C357FB1EEE37487BB086D66FD336D5CC97DC4F47309B1518891422CA2BA7699AE0AF9A3E8358A1C12E35F4977FC6CF9D26D1C768E63B2D1CFA89787BED6E6A6993FE7159F8B3A4220A52F6FD7E9C5336AFD79F00BCE02AEA03B831097017CE118721079544F5E24E8A0665D1DC351E290278D2BC438C377ADCF0F837F1EA4AFFF1A4B9E93DF5D2087BD78E73EAD8B6FDCAF1823CC23D446402C0CF0D14FDD45D473C079C02070854FFC17D7441E65571FCF08BF92B802015732EE07B87AF43C4A917ADEB267F4E5F6C995D951699038E449E20A587AF6E235FDE5AFFF31507D50C41EE8F3CBBF7CFF9D699431BAFBDCE6EBFEF6ED6331272EE958CCDB530B6A9B0EFBCCA853237932E611BECB78B2FF7D1AA3E4E9F86B324E6BEFB45EF9CEE17887A7564FAFEFD4E637C2D585EE5D2EBF7FA79D3CEA221FB21C04EFC19C854E8B7E5E17FC0D3A8855B8822CDEF51E71AC8D15F5CE86C515F82ADE51DA8352BF02DF7DF2F2800AE7F7AFDBC89CA461F6B89E36F5CA77C61A39E2AFB9268FD09B6CEB15B6B7B84D1F4BA65BB73C3CEFF02DD8FF907B838E11B083F1811CC1B8008F72FE43BF423C9CEF30ADF24389AB60F0C4B2FA09A3FA19F0ECE05BD2D7005CAD6C647AE2CAB7B74FCF5FBD195B3DC971522F7B501BCB73103AA66850E1DDFE4A88EC071F299489B34D62F766EE8EC7ED7FAFBEFF46916259D5DBA15FA16F810DF437F006AC808FE9AF81F330E7A50D88B1429D3D8C1770F5F27586F68F0A7C0FF91FC84159F76C9AB8C2FB00F7ECA3F456B87EA99483FF7A16A7F889B9CE033D44EED738AEFAB7B3822BC4EE635D00B1C068473FD9B7959C99B7022FE025EDCBEF77FE8B31CF9F34549F20EC41E40B4A5906EC40F7D0EBDF20E8E7B0D725014FC019FE23F5F6E45999656D0707B3A1B74B5C611E0057526FE7F9654B53B0D27B7D053509C1EBD1D7663E17F4DDB471340AAEB01E20F7D2625977DBDF6531F6F68D431EE75428C7D8C3FAC99ECCC31C618C704DE9079204FC82CF815FC11FB893CA75F1AB6DD7A7AEBCCA69E14A12F8B9DC5B4AC95B1338D9AF75C96E33B2A536D91F85BA2EC8A7D4D699C41C839DCD7911E9AAA90E328BB862FDCA20E60B755CD14731418F1FC6C82FE62230900C66D91E44BCBA760F4BF8AF30772107D117C006E6B1F43D68F7F4EA176F20F859314EDADF50E36494353750F3FA8A0AB516DF033C06CF8C7BA1E681F477485F07E43864BAFE1DC097F11BFE03FE8C6B4006CA672FB75AF7D64829B66BB4BCB9C6B2BF70043E5DEA9289985BB82FFB31E2750A640EF97F15EF163582D3AD893208BFD213EB3CA2CF971EC7C92DE60CFA2A9FA999AE47C97A9E833C1F6489F48742FE813036925FA14FF5FA951554BD6AD183E7415E6B93F5B825BFC431DE43FAD1E5D86A750010E43A7889D4D7A59F01F48F9F05F6C573F7CAB75C7607F83D710F5C433B87947ABB177C0FFBA73CBDF32B7EAB88E71D15FD5B738D2B8FE0418964F3F67F1DDBFF4ECD518DBF1DF356CE71CCFDFBEA9E609E2BF3F5823125ED75690F220F2054B61E57C7570DC12B12AA7E24D776F11DBA0E8EA133E9B1A47F76D43B835EA5D7DB5F2D672854CCF7C415EAE2E23D21F3801FEDDA8CACEB8B76D40D77C495BAF2A829528CCF2FBFC2FB425F677CF90EB9DFA4EE7DA72656E39CFB16FFC158A03FE45C07C6CCEE01CC69E302E4277086768CD161EBB42F5D65505C3D7B1F5571856795BAB38C79822C471BE4A3D9B3CB9C50B9062DF915ECD87EF8D57634A6E20AFFD3E24ADA315C2745F4BFBAEF0AF855EC6EDD8159C555F1183CA6830160287070CCFE15E74E779E82191E27E16FB70A57AFD6E23CA6C015E430302CD791B5F698911D0B025FC65C92B686C495E457FAFCED5EB8C235A0B3C9EBE399302725BF5A0BED76F8D58E63A671759F5F14FB31388B5E0AD5E2B4147979273FB2D56E2A7BAC449DB49F29B25F1D7210E320EB100DF2AC52964097419F4ABFA85C77E63A27C803BE87C7F64BA7D7E714CA54D43AF390D7D26F0E3E8163B4816F9AC942E00A38C2F9C022F421B93E8AE7EEE739F05FE98BC1B1D636C0BDD12EEBCAE299D08EBA433716C4338E1357DA314A868A14F31BE7BA198D65AB79A6E4E5C6DD8C2BC4050157901BE823B9DF513F843E94EBB798F7D22F0AACAAB84A7EE2B96A05AEA0B73F7D1753E520EE094C83C037FA89C1801CC4DE34C014F08571977210F177FDC841A95FE1FDC1E78055797D601CCF017EE5F0E46965CFD79183FBD3CD471AC82F9A2D709D0BA31A09866379DAA41BDF2EE7CC628E427F95730BB8C2FC556DEE1E24ED41A997015F90015DFB5188E7BB31A867340C410EBED98C77E9ED185F29D7F02EBDAE21F5766011FF031EA51CEC1757367F907183798467D1EBEDE057520EBAB3E18E1C9C31FD0A7E1F335CC12F85BA3946D7E99747C04EBE2F5E6F4FE89FD8770D845A3EEF7F7E479F36A2647FBACDDF3FAE06E8E3CA2EEDBA07DBC76B185C416F071EA4DE0E5C483D09D8EAC56FA5DE2ED79EA5BE0F5C2D3D4FF6852B4724A2EA57C0A7560EEAF5F68DA852AF21E27B4FC54460EAB8923E44237E053DA9D7BB8302356BF63240CE2FF24750A705841C25E4D3C87C601CA37DDC79709083AFD7E3ECC7907A3BF021D7BD416676A024A9B763FCF13FE9BF52F2D9FBC3D546B0E367C03D25BF828E2A634F812BECA7A8CA41EF2A45B7BBF5DD61F6A61C1557FAE369C6B7033FED86F95E4B93A2D6B72F144C56BBF462A9B3CB9855A375722D419F97630F4CCAFDA4F11BFC5FFD3C878C8D95CF21F5ABB3F6378EDBC816EEEAED466485CE39CFB89A4592769C19A166D78E33457E7796F7E4DD7EED61398E4F10DABCDB093EE7BEFDC98CE8A1DBC6FC0A35B1C0F3E4FF51433395C558613DF48CB677AE68D9A7F026F80E17B89A7F421CA38C4D05418E4317052137167160F834DA27AC1761CF60F8ACB435F7F4049ED6BE846C34C7D00257F347D0F586C14C3F144E243886043122A0B4C3C9DF517B0EB639E246907BAAD51D24862023B5FB6F4EB24F16B89A4D425C1FF6A0F9DB4F7F57F7A70381EF557AEC69BDBEBFCF7E6CFB768D9657143E877A6D937CFE05AE669750C31E75BC509B4CB6C93AB6F7FD4FDAF7F9E431652205A56DC1AF16744BB2D6F820393588FDC31E550D813DE877B2A616F62099E4B32F70F563D109EFF5D4A2333186B01F604F207E16FBC02516758A1664210167F6ED8F13DD237881ABD924C83EE4935B91570A3E055C5587ACE9380C2D70359B040CA08681D15EA4F3400B5CCD2621F7E3DFFEFD2F9CF33CED6719867AE5D12F687A346A4ED134C98A7DC317341E0AD7E61757C3C841AC9DF7AA7B36E8FAEA82EE12E26011AF765FCECFACD27DB8421D13ECAD1C0875AF0198E53EC89A8788D7406CE376284DD5CFF3A9778E838CFAD3AC8F653F238EE15F0F03EC87E23DA87CBB9475BA793D671A758EADC015D60F504F35A5DB0FC90C57320608BC0AB18D5BDE02BD7377E77B0DB2D7FA8F46E84FACCBC4357B23A30D765F5CB75F3262AEB0171DE252ABE533A53681C01FF0845C72C4A9CD72FDF0FB7085F5CE7FFEFA80F705D1D6EC33C315E26E651D55E0CAB553227724A362AA627B4D9F8F265FF3795608FE28F4E7BBD535B53FB56DDA9A8D98A3A8170619807C02C4CA4A3C4DFB3D46C51563286E10CB63822BE409C87A0B90836BDB197AE9F6A8B1B0C8CDA9B7FFDC3681D13A9DD9DA9D55B996D3A061F29DCDDE17FAA5CCC302AEDE7C0C53B4A0A96B821A2F53986FD2DF3C0B76EE203177E1E2FCFA7BACC415E216658E3B70F5C199A1777B3BA63901BB9A7DCEB4845A3556BE236AB06865CF3848D602D1933EB702F584EEF4A741DB7DEDF34056E2AA543D17B82A53B680BA05C742BFCAD0B223426FEC91BB7578EAC8757AC93601740C6DBD5EAB6385FC8110D7E0D5EBC6BDFA05CF055BADDC14CF7B72496EEF09E72AE0B35CBFA272BBA1E637223F027914DABC51A3BE0A1F28FE17D876728F15A336D42B7079C4FD5D314B6AEFCE33AE6033C3670F7D1FB872785DC21E5CA375EF16790F0286B8828C02696B2E8F8AAB6AE3EA0E0F5CF6D8BB79E561F2FE6B9C36F99980AB5C214B3BAF90BF50675CE173F79D830E827BAAAF4ED66EB853F3FBB6AF2EBE7DA3A3FAA5D0D1B31CC389DA8747C130D702D6B6C9FC4CB9BF97FDB967A4FDE3661557DADA689E7081EBA0C04E818E8EDCBA58B2B3462EF336A5FF6A7D3741C1B479DD38B335D5517125F731414C1B7216508F0B6DB0A910878E367C475C3ACEA99BAC5B015BFDAE69E9E79AAC558B3EE21A5A91433ABBF9ACF2A6EEFF1AB5B5B97DD4FDE3660157E033D80BD20C57AEFD1CD75830C315E481CCEF05AE5033603DB2D7B107A34EAAB77AD7281E0557DAFDBCAAD922E3285FBCE0B65CBCCCBEC4FAE917FE8EBA5D88156F75D5C03BE6DAD6F0534A1F0BEF436AA4231E67399F5EEEA724EB5C75D5581578D37FEF85C95EEDF340C010E2BE10F38563F07E335CB98305AEE7095C418FC09CD4EE158136597301B8DA70E5C816ECD4DF460E6EBDD85BC7191557DB2E455E354E9AEC3BCC152FB9AD58685053BCDB49F386BF235785F7BB32897102C67AE964D0CB811B2D0664DE2AFA03738F75F8F829BFD74A6AF30E3E8DDABADAEBCADE24D27F3AC938AA517025751BB33C7AA9138593755ADB38E4392971855C5E792E72BC656D3DF845BDE123F2063B7B2ADCD8B794BD89C7882BFEFFC1DD7ED7B7199DA3EF9712CBCB84A2B71BD50035D0DB41E0E5C01B3EA5FE65C51A1FC609F2649C76AD95B8D21F6BDBCEBE7CEED4A0F065E9F15282F915F453F07E60489E8BBE432D0C595F7AC599E8C255DFB830C015EC817EEBE3678B6D03BDDDD5F57DFB20D2730C61ABC2EF855AD7667210FC48CA41591FAB1BBFF32BCBC6892BC37137E92BA963808F0157A871F2C4E1A2571E8FE1B83C77BD316CF7E5126A3DA0DD6092F51DF8A0F623091E43CEFDD5D5CC8865CC73EA30C79757DE8F35BE5BDDBF4ED8C1D84F1279F43E579A92A1829AEF3CEDB19E575CC1BE937B47B93C3972ED06E9A5DB2EC841DE42A01B3FF104FDFAF011E78A406FC07AACF65AA5CC11D78B87BD063B1B361BA892CAD161AAD4A513C1DE006ECC9E177A926D7D7322FB36E019B12F0F7C086C23089E57153A91597DA71F95ACC415F801D64EB3423F064FC17823FF4DC60EEACF0796CCF6C7435E38746CE92BE05A074236A10D7E036D9D22E8B19093D3DA6B4F4BB013CCFC167F261A045732362397A9D38E2B435E479C6B9EE1133C1F7555FC9E9C1AD360D533826F8DABFEC182A68F2BF00ACC45D49B80BE00FE0E829C421BB7CFE19AC382AC272BF271C0C3802FD43969CF816F6541E3A7459ED782C6410B5C2D681C64842BD857DADC2FAB086BB8A0715C5B7F9F79BEFE24DF635CF7D0FA74F07D104C6AEB7DF58BE141EF314C8EECA0F71874AFF641AF3FCC3D86B9CFA0F56286198F616AD2C87CE77E09EB67839C8FEB0F7A0FF834079D2BE3BEC7A0D71FA6AF86B98F3EC7781CE381FD42077D8FFF0785482AE5 - diff --git "a/Software/logic analyzer/\346\211\223\346\240\267\346\226\207\344\273\266/logic analyzer.zip" "b/Software/logic analyzer/\346\211\223\346\240\267\346\226\207\344\273\266/logic analyzer.zip" deleted file mode 100644 index 670efdb..0000000 Binary files "a/Software/logic analyzer/\346\211\223\346\240\267\346\226\207\344\273\266/logic analyzer.zip" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" deleted file mode 100644 index e2c47e5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227.doc" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" deleted file mode 100644 index 0201f31..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341A.xls" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" deleted file mode 100644 index d2b82b5..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/CH341_TEST.hex" +++ /dev/null @@ -1,4 +0,0 @@ -:04000F00C28080FC2F -:03000000020003F8 -:0C000300787FE4F6D8FD75810702000F3D -:00000001FF diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" deleted file mode 100644 index 2c393f7..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\216\237\347\220\206\345\233\276/CH341A.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" deleted file mode 100644 index 6f3999b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/16\350\204\232\350\275\2548\350\204\232\350\257\264\346\230\216.jpg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" deleted file mode 100644 index 2e59272..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" deleted file mode 100644 index 81102a9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" +++ /dev/null @@ -1,25 +0,0 @@ -[Config] -DriverDLL=USBIOX.DLL -language=2052 -IsWinStatus=1 -WindowState=0 -Left=576 -Top=322 -Width=836 -Height=541 -ChipType=0 -24ChipManuIndex=2 -25ChipManuIndex=1 -Default24ChipIndex=3 -Default25ChipIndex=25 -IsLastDir=1 -DefaultInitDir=D:\Users\Fairy\Documents\project\DIY\logic analyzer\固件\ - -[OperOption] -IsWriteCompleteVerify=1 -UseFastRead=0 -UseAAI=0 -IsClean=1 -IsChkBlank=1 -IsProgramming=1 -IsVerify=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" deleted file mode 100644 index f36027e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" deleted file mode 100644 index 92f5942..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=2052 -!LanguageName=ChineseSimp(简体中文) -!TranslationAuthor=风铃夜思雨 -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=CH341A编程器 -mFile.Caption=文件(&F) -mOpen.Caption=打开(&O) -mSave.Caption=保存(&S) -mExit.Caption=退出(&X) -mBuffer.Caption=缓冲区(&B) -mFill.Caption=填充缓充区(&F) -mSwap.Caption=高低字节交换(&S) -mCopy.Caption=复制(&C) -mCopyAsHex.Caption=复制为Hex格式(&H) -mFind.Caption=查找(&F) -mFindNext.Caption=查找下一个(&N) -mGoto.Caption=跳转(&G) -mSelectAll.Caption=全选(&A) -mOpter.Caption=操作(&P) -mOpterOption.Caption=操作选项(&O) -mAuto.Caption=自 动(&A) -mChkEmpty.Caption=查 空(&B) -mRead.Caption=读 取(&R) -mWrite.Caption=编 程(&W) -mVerify.Caption=校 验(&V) -mClean.Caption=擦 除(&E) -mAbort.Caption=终 止(&T) -mDetect.Caption=检测芯片(&T) -mlanguages.Caption=语言(Languages)(&L) -mHelp.Caption=帮助(&H) -mHelpContent.Caption=帮助(&H) -mLicense.Caption=许可信息(&L) -mAbout.Caption=关于(&A) -pCopy.Caption=复制(&C) -pCopyAsHex.Caption=复制为Hex格式(&H) -pSelectAll.Caption=全选(&A) -BtnOpen.Caption=打开 -BtnOpen.Hint=打开 -BtnSave.Caption=保存 -BtnSave.Hint=保存 -BtnFill.Caption=填充 -BtnFill.Hint=填充 -BtnSwap.Caption=交换 -BtnSwap.Hint=交换 -BtnAuto.Caption=自动 -BtnAuto.Hint=自动 -BtnChkEmpty.Caption=查空 -BtnChkEmpty.Hint=查空 -BtnRead.Caption=读取 -BtnRead.Hint=读取 -BtnWrite.Caption=编程 -BtnWrite.Hint=编程 -BtnVerify.Caption=校验 -BtnVerify.Hint=校验 -BtnClean.Caption=擦除 -BtnClean.Hint=擦除 -BtnAbort.Caption=终止 -BtnAbort.Hint=终止 -BtnAbout.Caption=关于 -BtnAbout.Hint=关于 -BtnExit.Caption=退出 -BtnExit.Hint=退出 -lbChipType.Caption=类型: -lbManuName.Caption=厂商: -lbChipName.Caption=名称: -lbChipSize.Caption=容量: -BtnChipFind.Caption=芯片查找(&S) -BtnDetect.Caption=检测(&D) -spStatus.!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -RzToolbar.CustomizeCaptions.Close=关闭 -RzToolbar.CustomizeCaptions.MoveDown=下移 -RzToolbar.CustomizeCaptions.MoveUp=上移 -RzToolbar.CustomizeCaptions.NoTextLabels=无文字标签 -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=选择性地将文字置于右侧 -RzToolbar.CustomizeCaptions.ShowTextLabels=显示文字标签 -RzToolbar.CustomizeCaptions.TextOptions=文字选项 -RzToolbar.CustomizeCaptions.Title=自定义工具栏 -OD.DefaultExt=Bin -OD.Filter=支持的文件 (*.bin;*.hex)|*.bin;*.hex|Bin 文件 (*.Bin)|*.bin|Hex 文件(*.Hex)|*.hex|所有文件 (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=支持的文件 (*.bin;*.hex)|*.bin;*.hex|Bin 文件 (*.Bin)|*.bin|Hex 文件(*.Hex)|*.hex|所有文件 (*.*)|*.* -sCH341_Status=设备连接状态: %s. -sUseTime=%s - 用时: %s -sRW_UseTime=%s - 速度: %d 字节/秒, 大小: %d 字节, 用时: %s -sEditorOffset=位置: %s, %d -sNoCH341=未发现有编程器连接到电脑! -sIgnoreLengthRange=文件长度超出范围, 超出部份将被忽略! -sRangeAddress=范围(0x%s-0x%s) -sNoChipEmpty=该芯片不为空. -sWriteOperTimeout=写操作超时失败! -sChipContentDifferent=芯片内容与缓冲区内容不一致. -sEraseOk=芯片擦除操作完毕, 请使用查空功能检查是否为空! -sChipBlank=芯片是空白的! -sChipVerfyOK=芯片与缓冲区内容一致! -sBeginRange=开始地址超出范围 -sEndRange=结束地址超出范围 -sNotExit=编程器工作中, 禁止退出. -sFindNotWords=找不到 "%s" -sGoto=转到 -sUserAbort=用户已终止 -sConnectionStatus0=未连接 -sConnectionStatus1=已连接 -sInsertMode0=覆盖 -sInsertMode1=插入 -sWorkStatus0=正在查空中... -sWorkStatus1=正在读取中... -sWorkStatus2=正在编程中... -sWorkStatus3=正在校验中... -sWorkStatus4=正在擦除中... - -[TFrmFill] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=填充缓冲区 -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=确定(&O) -GB1.Caption=数据 -GB2.Caption=范围(0x0-0x0) -rbbit1.Caption=常量字节 (8bit) -rbbit2.Caption=常量字节 (16bit) -rbbit3.Caption=随机数 -rbbit4.Caption=序列字节 (8bit) -rbbit5.Caption=序列字节 (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=开始地址: -RzLabel4.Caption=结束地址: - -[TFrmFind] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=查找 -lbFind.Caption=查找内容(&N): -cbNoCase.Caption=区分大小写(&C) -cbHex.Caption=Hex格式(&H) -BtnFind.Caption=查找下一个(&F) -BtnClose.Caption=取消(&C) - -[TFrmOperOption] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=操作选项 -GB1.Caption=常规 -ChkWriteCompleteVerify.Caption=写入完成后校验(&W) -ChkLastDir.Caption=记住最后的文件夹(&L) -ChkWinStatus.Caption=记住窗口位置和大小(&E) -GB2.Caption=25 芯片 -ChkUseFastRead.Caption=使用快速读取模式(&U) -ChkUseAAI.Caption=SST/ESMT芯片使用AAI编程模式(&A) -GB3.Caption=自动编程选项 -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=擦 除
查 空
编 程
校 验
-Btns.CaptionOk=确定(&O) -Btns.CaptionCancel=取消(&C) - -[TFrmChipSel] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=芯片查找 -lbChipName.Caption=器件名称: -lbChipFindInfo.Caption=不区分大小写, 支持 '*' 通配符, 例如: EN25*80 -DBGrid.Columns.Item0.Title.Caption=芯片名称 -DBGrid.Columns.Item1.Title.Caption=容量 -DBGrid.Columns.Item2.Title.Caption=厂商 -DBGrid.Columns.Item3.Title.Caption=类型 -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=选择(&S) -sChipFindCount=共找到 %d 个结果. - -[TFrmLicense] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=确定(&O) -Caption=许可信息 -lbAddr.Caption=地 址: -lbEmail.Caption=支付宝: -lbID.Caption=交易号: -lbName.Caption=姓 名: -lbNickName.Caption=昵 称: -lbPhone.Caption=电 话: - -[TFrmAbout] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -sAboutCaption=关于 -sVerCaption=版本: -sAuthorCaption=作者: -sClose=关闭(&C) -sLicenseCaption=许可: -sAuthor=风铃夜思雨 -sCopyRight=购买地址: http://usendz.taobao.com diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" deleted file mode 100644 index 1861f54..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=1028 -!LanguageName=ChineseTrad(羉砰いゅ) -!TranslationAuthor=筧獴 -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=CH341A絪祘竟 -mFile.Caption=郎(&F) -mOpen.Caption=ゴ秨(&O) -mSave.Caption=玂(&S) -mExit.Caption=癶(&X) -mBuffer.Caption=絯≧跋(&B) -mFill.Caption=恶絯跋(&F) -mSwap.Caption=蔼竊ユ传(&S) -mCopy.Caption=ī(&C) -mCopyAsHex.Caption=īHexΑ(&H) -mFind.Caption=琩т(&F) -mFindNext.Caption=琩т(&N) -mGoto.Caption=铬锣(&G) -mSelectAll.Caption=匡(&A) -mOpter.Caption=巨(&P) -mOpterOption.Caption=巨匡兜(&O) -mAuto.Caption= 笆(&A) -mChkEmpty.Caption=琩 (&B) -mRead.Caption=弄 (&R) -mWrite.Caption=絪 祘(&W) -mVerify.Caption= 喷(&V) -mClean.Caption=揽 埃(&E) -mAbort.Caption=沧 ゎ(&T) -mDetect.Caption=浪代(&T) -mlanguages.Caption=粂ē(Languages)(&L) -mHelp.Caption=腊(&H) -mHelpContent.Caption=腊(&H) -mLicense.Caption=砛獺(&L) -mAbout.Caption=闽(&A) -pCopy.Caption=ī(&C) -pCopyAsHex.Caption=īHexΑ(&H) -pSelectAll.Caption=匡(&A) -BtnOpen.Caption=ゴ秨 -BtnOpen.Hint=ゴ秨 -BtnSave.Caption=玂 -BtnSave.Hint=玂 -BtnFill.Caption=恶 -BtnFill.Hint=恶 -BtnSwap.Caption=ユ传 -BtnSwap.Hint=ユ传 -BtnAuto.Caption=笆 -BtnAuto.Hint=笆 -BtnChkEmpty.Caption=琩 -BtnChkEmpty.Hint=琩 -BtnRead.Caption=弄 -BtnRead.Hint=弄 -BtnWrite.Caption=絪祘 -BtnWrite.Hint=絪祘 -BtnVerify.Caption=喷 -BtnVerify.Hint=喷 -BtnClean.Caption=揽埃 -BtnClean.Hint=揽埃 -BtnAbort.Caption=沧ゎ -BtnAbort.Hint=沧ゎ -BtnAbout.Caption=闽 -BtnAbout.Hint=闽 -BtnExit.Caption=癶 -BtnExit.Hint=癶 -lbChipType.Caption=摸: -lbManuName.Caption=紅坝: -lbChipName.Caption=嘿: -lbChipSize.Caption=甧秖: -BtnChipFind.Caption=琩т(&S) -BtnDetect.Caption=浪代(&D) -spStatus.!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -RzToolbar.CustomizeCaptions.Close=闽超 -RzToolbar.CustomizeCaptions.MoveDown=簿 -RzToolbar.CustomizeCaptions.MoveUp=簿 -RzToolbar.CustomizeCaptions.NoTextLabels=礚ゅ夹帽 -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=匡拒┦盢ゅ竚凹 -RzToolbar.CustomizeCaptions.ShowTextLabels=陪ボゅ夹帽 -RzToolbar.CustomizeCaptions.TextOptions=ゅ匡兜 -RzToolbar.CustomizeCaptions.Title=﹚竡ㄣ逆 -OD.DefaultExt=Bin -OD.Filter=や郎 (*.bin;*.hex)|*.bin;*.hex|Bin 郎 (*.Bin)|*.bin|Hex 郎(*.Hex)|*.hex|┮Τ郎 (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=や郎 (*.bin;*.hex)|*.bin;*.hex|Bin 郎 (*.Bin)|*.bin|Hex 郎(*.Hex)|*.hex|┮Τ郎 (*.*)|*.* -sCH341_Status=砞称硈钡篈: %s. -sUseTime=%s - ノ: %s -sRW_UseTime=%s - 硉: %d 竊/, : %d 竊, ノ: %s -sEditorOffset=竚: %s, %d -sNoCH341=ゼ祇瞷Τ絪祘竟硈钡筿福! -sIgnoreLengthRange=郎禬璖瞅, 禬场盢砆┛菠! -sRangeAddress=璖瞅(0x%s-0x%s) -sNoChipEmpty=赣ぃ. -sWriteOperTimeout=糶巨禬ア毖! -sChipContentDifferent=ず甧籔絯≧跋ず甧ぃ璓. -sEraseOk=揽埃巨Ч拨, 叫ㄏノ琩浪琩琌! -sChipBlank=琌フ! -sChipVerfyOK=籔絯≧跋ず甧璓! -sBeginRange=秨﹍禬璖瞅 -sEndRange=挡禬璖瞅 -sNotExit=絪祘竟い, 窽ゎ癶. -sFindNotWords=тぃ "%s" -sGoto=锣 -sUserAbort=ノめ沧ゎ -sConnectionStatus0=ゼ硈钡 -sConnectionStatus1=硈钡 -sInsertMode0=滦籠 -sInsertMode1=础 -sWorkStatus0=タ琩い... -sWorkStatus1=タ弄い... -sWorkStatus2=タ絪祘い... -sWorkStatus3=タ喷い... -sWorkStatus4=タ揽埃い... - -[TFrmFill] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=恶絯≧跋 -Btns.CaptionCancel=(&C) -Btns.CaptionOk=絋﹚(&O) -GB1.Caption=计沮 -GB2.Caption=璖瞅(0x0-0x0) -rbbit1.Caption=盽秖竊 (8bit) -rbbit2.Caption=盽秖竊 (16bit) -rbbit3.Caption=繦诀计 -rbbit4.Caption=竊 (8bit) -rbbit5.Caption=竊 (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=秨﹍: -RzLabel4.Caption=挡: - -[TFrmFind] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=琩т -lbFind.Caption=琩тず甧(&N): -cbNoCase.Caption=跋だ糶(&C) -cbHex.Caption=HexΑ(&H) -BtnFind.Caption=琩т(&F) -BtnClose.Caption=(&C) - -[TFrmOperOption] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=巨匡兜 -GB1.Caption=盽砏 -ChkWriteCompleteVerify.Caption=糶ЧΘ喷(&W) -ChkLastDir.Caption=癘程郎Ж(&L) -ChkWinStatus.Caption=癘跌怠竚㎝(&E) -GB2.Caption=25  -ChkUseFastRead.Caption=ㄏノе硉弄家Α(&U) -ChkUseAAI.Caption=SST/ESMTㄏノAAI絪祘家Α(&A) -GB3.Caption=笆絪祘匡兜 -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=揽 埃
琩 
絪 祘
 喷
-Btns.CaptionOk=絋﹚(&O) -Btns.CaptionCancel=(&C) - -[TFrmChipSel] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=琩т -lbChipName.Caption=竟ン嘿: -lbChipFindInfo.Caption=ぃ跋だ糶, や '*' 硄皌才, ㄒ: EN25*80 -DBGrid.Columns.Item0.Title.Caption=嘿 -DBGrid.Columns.Item1.Title.Caption=甧秖 -DBGrid.Columns.Item2.Title.Caption=紅坝 -DBGrid.Columns.Item3.Title.Caption=摸 -Btns.CaptionCancel=(&C) -Btns.CaptionOk=匡拒(&S) -sChipFindCount=т %d 挡狦. - -[TFrmLicense] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Btns.CaptionCancel=(&C) -Btns.CaptionOk=絋﹚(&O) -Caption=砛獺 -lbAddr.Caption= : -lbEmail.Caption=や腳: -lbID.Caption=ユ腹: -lbName.Caption=﹎ : -lbNickName.Caption=晤 嘿: -lbPhone.Caption=筿 杠: - -[TFrmAbout] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -sAboutCaption=闽 -sVerCaption=セ: -sAuthorCaption=: -sClose=闽超(&C) -sLicenseCaption=砛: -sAuthor=筧獴 -sCopyRight=舦┮Τ (C) 2004 番腑絬 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" deleted file mode 100644 index c8e52a1..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=1033 -!LanguageName=English -!TranslationAuthor=SkyGz.Com -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=CH341A Programmer -mFile.Caption=&File -mOpen.Caption=&Open -mSave.Caption=&Save -mExit.Caption=E&xit -mBuffer.Caption=Data &Buffer -mFill.Caption=&Fill Data Buffer -mSwap.Caption=Byte &Swap -mCopy.Caption=&Copy -mCopyAsHex.Caption=Copy as &hex -mFind.Caption=&Find -mFindNext.Caption=Find &next -mGoto.Caption=&Goto -mSelectAll.Caption=Select &All -mOpter.Caption=O&perate -mOpterOption.Caption=&Operate Option -mAuto.Caption=&Auto Program -mChkEmpty.Caption=&Blank Check -mRead.Caption=&Read Chip -mWrite.Caption=&Program Chip -mVerify.Caption=&Verify Chip -mClean.Caption=&Erase Chip -mAbort.Caption=Abor&t -mDetect.Caption=De&tect Chip -mlanguages.Caption=&Languages -mHelp.Caption=&Help -mHelpContent.Caption=&Help -mLicense.Caption=&License Info -mAbout.Caption=&About -pCopy.Caption=&Copy -pCopyAsHex.Caption=Copy as &hex -pSelectAll.Caption=Select &All -BtnOpen.Caption=Open -BtnOpen.Hint=Open -BtnSave.Caption=Save -BtnSave.Hint=Save -BtnFill.Caption=Fill -BtnFill.Hint=Fill Data Buffer -BtnSwap.Caption=Swap -BtnSwap.Hint=Byte Swap -BtnAuto.Caption=Auto -BtnAuto.Hint=Auto Program -BtnChkEmpty.Caption=Blank -BtnChkEmpty.Hint=Blank Check -BtnRead.Caption=Read -BtnRead.Hint=Read Chip -BtnWrite.Caption=Program -BtnWrite.Hint=Program Chip -BtnVerify.Caption=Verify -BtnVerify.Hint=Verify Chip -BtnClean.Caption=Erase -BtnClean.Hint=Erase Chip -BtnAbort.Caption=Abort -BtnAbort.Hint=Abort -BtnAbout.Caption=About -BtnAbout.Hint=About -BtnExit.Caption=Exit -BtnExit.Hint=Exit -lbChipType.Caption=Type: -lbManuName.Caption=Manu: -lbChipName.Caption=Name: -lbChipSize.Caption=Size: -BtnChipFind.Caption=Chip &Search -BtnDetect.Caption=&Detect -spStatus.!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -RzToolbar.CustomizeCaptions.Close=&Close -RzToolbar.CustomizeCaptions.MoveDown=Move Down -RzToolbar.CustomizeCaptions.MoveUp=Move Up -RzToolbar.CustomizeCaptions.NoTextLabels=No text labels -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=Selective text on right -RzToolbar.CustomizeCaptions.ShowTextLabels=Show text labels -RzToolbar.CustomizeCaptions.TextOptions=Text Options -RzToolbar.CustomizeCaptions.Title=Custom Toolbar -OD.DefaultExt=Bin -OD.Filter=Support File (*.bin;*.hex)|*.bin;*.hex|Bin File (*.Bin)|*.bin|Hex File (*.Hex)|*.hex|All File (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=Support File (*.bin;*.hex)|*.bin;*.hex|Bin File (*.Bin)|*.bin|Hex File (*.Hex)|*.hex|All File (*.*)|*.* -sCH341_Status=Device state: %s. -sUseTime=%s - Time: %s -sRW_UseTime=%s - Speed: %d Byte/Sec, Size: %d Byte, Time: %s -sEditorOffset=Offset: %s, %d -sNoCH341=No programmer is connected to computer! -sIgnoreLengthRange=File length, beyond range of will be ignored. -sRangeAddress=Range(0x%s-0x%s) -sNoChipEmpty=The chips are not null. -sWriteOperTimeout=Write operations timeout failed! -sChipContentDifferent=Chip with the contents are in disagreement. -sEraseOk=Chip erasing is completed, please check is empty! -sChipBlank=Chip are blank! -sChipVerfyOK=Chip and buffer same! -sBeginRange=Start address out of range -sEndRange=End address out of range -sNotExit=Programmer working, Can't exit. -sFindNotWords=Not Find "%s" -sGoto=Goto -sUserAbort=User aborted -sConnectionStatus0=NotConnect -sConnectionStatus1=Connected -sInsertMode0=Overwrite -sInsertMode1=Insert -sWorkStatus0=Chkecking... -sWorkStatus1=Reading... -sWorkStatus2=Programing... -sWorkStatus3=Verifying... -sWorkStatus4=Eraseing... - -[TFrmFill] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Fill Data Buffer -Btns.CaptionCancel=&Cancel -Btns.CaptionOk=&OK -GB1.Caption=Data -GB2.Caption=Range(0x0-0x0) -rbbit1.Caption=Constant byte (8bit) -rbbit2.Caption=Constant byte (16bit) -rbbit3.Caption=Random values -rbbit4.Caption=Sequential bytes (8bit) -rbbit5.Caption=Sequential words (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=From: -RzLabel4.Caption=To: - -[TFrmFind] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Find -lbFind.Caption=Fi&nd content: -cbNoCase.Caption=&Case sensitive -cbHex.Caption=&Hex format -BtnFind.Caption=&Find next -BtnClose.Caption=&Cancel - -[TFrmOperOption] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Operate Option -GB1.Caption=General -ChkWriteCompleteVerify.Caption=&Write complete after verify -ChkLastDir.Caption=&Memorize last use in folder -ChkWinStatus.Caption=M&emorize windows position and size -GB2.Caption=25 Chips -ChkUseFastRead.Caption=&Use fast read mode -ChkUseAAI.Caption=SST/ESMT chip use &AAI program mode -GB3.Caption=Auto Program Option -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=Erase
Blank
Program
Verify
-Btns.CaptionOk=&OK -Btns.CaptionCancel=&Cancel - -[TFrmChipSel] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Chip Search -lbChipName.Caption=Chip Name: -lbChipFindInfo.Caption=Case insensitive, and support wildcard character '*', for example: EN25*80 -DBGrid.Columns.Item0.Title.Caption=Chip Name -DBGrid.Columns.Item1.Title.Caption=Chip Size -DBGrid.Columns.Item2.Title.Caption=Manufacture -DBGrid.Columns.Item3.Title.Caption=Type -Btns.CaptionCancel=&Cancel -Btns.CaptionOk=&Select -sChipFindCount=Find %d Chips. - -[TFrmLicense] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Btns.CaptionOk=&OK -Caption=License Info -lbAddr.Caption=Address: -lbEmail.Caption=Email: -lbID.Caption=ID: -lbName.Caption=Name: -lbNickName.Caption=Nick Name: -lbPhone.Caption=Phone: - - -[TFrmAbout] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -sAboutCaption=About -sVerCaption=Version: -sAuthorCaption=Author: -sClose=&Close -sLicenseCaption=License: -sAuthor=SkyGz -sCopyRight=Copyright (C) 2004 SkyGz.Com \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" deleted file mode 100644 index c9048ae..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" deleted file mode 100644 index bff8fe6..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" deleted file mode 100644 index 9862481..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,104 +0,0 @@ -测试环境 WINXP 1.1G CPU, 512M内存 -测试结果仅供参考, 不同电脑配置, 速度有所影响 - -名称 容量 写入 读取 -WINBOND W25X80 1MByte/8MBit 42秒 8秒 -MXIC 25L1605D 2MByte/16MBit 1分23秒 18秒 -MXIC 25L3205D 4MByte/32MBit 35秒 -MXIC 25L6405D 8MByte/64MBit 1分10秒 -MXIC 25L12805D 16MByte/128MBit 2分20秒 - -1.00版 -完成基本功能 - -1.01版 -25系列应坛友要求加入128K支持 - -1.02版 -加入多语言了 -加入SST模式(待测) -能打开\保存Intel Hex文件了(待测),Hex文件格式解释可能有误, 不推荐使用 -加读取芯片标识和序列号(待测) -改了几处BUG - -1.03版 -修正打开\保存Intel Hex文件的功能, 用BIN\HEX交叉保存测试正常了, 用其它编程软件也能打开了 -修正多语言功能 -其它改动 - -1.04版 -加入防窗体假死, 肯定会影响烧写速度的 -加入在编程完成后自动校验功能 -读芯片信息功能在左侧也加入了 -语言文件有变动 -在编程工作时, 加入禁止退止 -修正 填充 窗口 范围地址不正常 -发现有不少芯片编程指令不同, 不能通过简单的选择容量解决, 下一版会做一个大改动. - -1.05版 -修正上一版因个人犯的严重失误导致所有芯片烧写失常 -移除SST模式, 用芯片数据库的芯片参数控制 -移除容量选择, 改用芯片数据库 -加入芯片数据库, 编程指令\参数存在数据库中, 改进为选择芯片类型\厂商\名称的方式 -加入芯片查找选择功能 -已知ESMT 25系列的的芯片 不能烧写, 待解决, 主要是手头没这芯片, 无法调试程序 - -1.06版 -修正芯片列表会出现报Listbox 索引 -1 的BUG -修正芯片查找 过滤功能不正常的BUG - -1.07版 -修正WIN7不能运行的BUG - -1.08版 -去除数据区已修改内容的着色功能, 让填充功能速度提升 -增加编程工作时, 禁用打开\保存\填充\交换功能, 避免误操作 -修正语言中一个错误的单词 -可以成功烧写SST和ESMT芯片了, 但速度超慢(没办法的, 这两种不支持按页编程模式) - -1.09版 -改窗体, 可以最大化, 适用大屏幕\大字体 WIN7.... -去掉认会眼花的文字效果 -修正KH芯片烧写问题 -芯片数据库加入几个型号的芯片 - -1.10版 -增加快速读取模式, 可以在操作选项窗口切换. 默认标准读取模式 否则为 快速读取模式 -增加SST/ESMT芯片使用AAI编程模式, 可以在操作选项窗口切换. 默认AAI编程模式 否则为 字节编程模式, 如果不能写入, 请切换为字节编程模式 -优化查空\读取\校验功能, 比原有速度快差不多一半时间 -增加状态栏显示当前操作状态 -增加选项 写入完成后校验 - -1.11版 -修正擦除后立刻写入时, 会报写入超时的问题 -修正擦除后立刻查空时, 有时会报芯片不为空的问题 -修改选项 AAI编程模式 默认为 不打钩 - -1.12版 -修改为使用USBIOX.DLL, 如想使用CH341DLL.DLL, 把CH341DLL.DLL放在软件目录下, 修改Config.ini中的 DriverDLL=DLL文件名 并保存即可 -增加缓冲区数据查找功能 -增加缓冲区数据跳转功能 -修正个别对25T80不能 擦除\编程 的问题 - -1.13版 -修改计时显示格式 原来的是 "分:秒:毫秒" 改为 "时:分:秒:毫秒" -增加可以拖放文件到程序中加载 -菜单增加全选缓冲区数据 - -1.14版 -增加终止功能, 可以在读写操作过程中进行终止. -修正状态栏显示当前操作的状态刷新不实时的问题 -芯片数据库增加了几个芯片 - -1.15版 -25芯片扩展支持最大容量到256MByte/2048MBit芯片, WINDOWS内存小于1G的, 请不选择, 否则是无法加载这么大的数据, 并会造成操作系统内存用尽,系统变慢... -修正对个别芯片在编程报"写操作超时失败"的BUG -增加记住最后使用的文件夹, 可在选项关闭 -增加记住窗口位置和大小,可在选项关闭 - -1.16版 -增加繁体中文语言 -修正芯片数据库中EON系列芯片, 有部份型号容量错误的问题 -芯片数据库再次增加了几个芯片 -重复修正对个别芯片在编程报"写操作超时失败"的BUG -其它细小的改动优化 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" deleted file mode 100644 index cbb14ca..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/ATlog.txt" +++ /dev/null @@ -1 +0,0 @@ -Disabled Read Key diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" deleted file mode 100644 index 5a3e56a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/META_DLL.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" deleted file mode 100644 index 8e16135..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MTKTool.chm" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111101_23_04_06.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111114_11_58_48.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20111120_09_58_13.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120312_23_15_00.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120316_23_26_04.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120317_00_39_44.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120324_00_07_29.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120330_21_33_45.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120506_00_59_14.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120618_15_02_32.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120619_12_27_52.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" deleted file mode 100644 index 89aeaf3..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_38_18.txt" +++ /dev/null @@ -1 +0,0 @@ -<< 54, 8a, 66, 37, 92, 16, bc, 2b diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120812_19_40_00.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" deleted file mode 100644 index 6f104e8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkLog/AutoSave20120904_14_30_17.txt" +++ /dev/null @@ -1,2 +0,0 @@ -<< 54, 8a, 66, 37, 92, 16, bc, 2b -<< 54, 8a, 66, 37, 92, 16, bc, 2b diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" deleted file mode 100644 index 1ab9cd3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" deleted file mode 100644 index aeaa64e..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/MtkTool.ini" +++ /dev/null @@ -1,39 +0,0 @@ -[General] -platform=8 -usbconfig=0 -DisableErase=0 -DelayLen=4 -PartErase=1 -fgCopy=0 -NANDBoot=0 -FastLoad=0 -EnableBridge=0 -UsbToUart=0 -ComPort=3 -BaudRate=115200 -DebugInfo=0 -FlashKeep=0 -FlashCheck=1 -AutoSetBaud=1 -FormIndex=0 -UsedPort=0000000000000000000000000000000000000000000000000000000000000000 -DataMode=0 -FrontSecLen=1024 -FrontSecWait=0 -FrontCheckDram=0 -LoadBinName=E:\8223_SZ\Rls\6039\MT8223\mt8223_pq.bin -NotSupportChipName=mt1389mt1379mt8205mt8105mt5351mt8202mt8211mt8158mt537xmt8530mt8520 -FlashType=1 -MAC=00-0C-E7-06-00-00 -[EMI] -nand_acccon=0x010C1082 -[Log] -Back_Color=-1 -Font_Name=Courier New -Font_Style=0 -Font_Color=16777215 -Font_Size=10 -TimeStamp=0 -AutoSave=1 -FillPassword=0 -Cmd_Counter=0 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/autoread.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" deleted file mode 100644 index 33fe9fe..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/brom.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" deleted file mode 100644 index 74fe3fc..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/config.ini" +++ /dev/null @@ -1,25 +0,0 @@ -[MT8105] -Folder = 8158 -HDCPPos = 1048576 - -[MT1389] -Folder = 1389 - -[MT8205] -Folder = 8202 - -[MT8202] -Folder = 8202 - -[MT5351] -Folder = 537X - -[MT8211] -Folder = 8205 - -[MT8158] -Folder = 8158 -HDCPPos = 1048576 - -[MT537x] -Folder = 537X diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" deleted file mode 100644 index 768d4e5..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/flashinf.ini" +++ /dev/null @@ -1,346 +0,0 @@ -//Date: 20080909 -[Flash] -//Manu,DevId, Size, MinSecSize, Baud, Name -0x01, 0x20, 0x20000, 0x4000, 5, AMD(AM29F010)/NEX(NX29F010), -0x01, 0x28, 0x200000, 0x2000, 5, AMD(AM29DL163DT)x16, -0x01, 0x2B, 0x200000, 0x2000, 5, AMD(AM29DL163DB)x16, -0x01, 0x2D, 0x200000, 0x2000, 5, AMD(AM29DL162DT)x16, -0x01, 0x2E, 0x200000, 0x2000, 5, AMD(AM29DL162DB)x16, -0x01, 0x33, 0x200000, 0x2000, 5, AMD(AM29DL164DT)x16, -0x01, 0x35, 0x200000, 0x2000, 5, AMD(AM29DL164DB)x16, -0x01, 0x36, 0x200000, 0x2000, 5, AMD(AM29DL161DT)x16, -0x01, 0x39, 0x200000, 0x2000, 5, AMD(AM29DL161DB)x16, -0x01, 0x3D, 0x200000, 0x2000, 5, AMD(AM29F017D)x8, -0x01, 0x45, 0x200000, 0x2000, 5, AMD(AM29PL160C)x16, -0x01, 0x49, 0x200000, 0x2000, 5, AMD(AM29LV160M/B/DB/MB)/Spansion(S29AL016DB), -0x01, 0x4C, 0x200000, 0x2000, 5, AMD(AM29LV116M/DB)x8, -0x01, 0x5B, 0x100000, 0x2000, 5, AMD(AM29LV800DB), -0x01, 0x7E, 0x800000, 0x2000, 5, Spansion(S29GL064N), -0x01, 0x7E, 0x200000, 0x2000, 5, FUJITSU(MBM29DL640E), -0x01, 0x7E, 0x400000, 0x2000, 2, Spansion(S29JL032H), -0x01, 0x95, 0x200000, 0x2000, 5, AMD(AM29DS163DT)x16, -0x01, 0x96, 0x200000, 0x2000, 5, AMD(AM29DS163DB)x16, -0x01, 0xA3, 0x400000, 0x2000, 5, Spansion(S29AL032D), -0x01, 0xAD, 0x200000, 0x2000, 5, AMD(AM29F016D)x8, -0x01, 0xC4, 0x200000, 0x2000, 5, AMD(AM29LV160M/B/DT/MT)/Spansion(S29AL016DT), -0x01, 0xC7, 0x200000, 0x2000, 5, AMD(AM29LV116M/DT)x8, -0x01, 0xC8, 0x200000, 0x2000, 5, AMD(AM29LV017M/D)x8, -0x01, 0xD2, 0x200000, 0x2000, 5, AMD(AM29F160DT)x16, -0x01, 0xD5, 0x100000, 0x1000, 5, AMD(AM29F080B), -0x01, 0xD8, 0x200000, 0x2000, 5, AMD(AM29F160DB)x16, -0x01, 0xDA, 0x100000, 0x2000, 5, AMD(AM29LV800DT), -0x01, 0xE4, 0x200000, 0x2000, 5, AMD(AM29SL160CT)x16, -0x01, 0xE7, 0x200000, 0x2000, 5, AMD(AM29SL160CB)x16, -0x01, 0xF6, 0x400000, 0x2000, 5, AMD(AM29LV320DT)/Spansion(S29AL032DM3), -0x01, 0xF9, 0x400000, 0x2000, 5, AMD(AM29LV320DB)/Spansion(S29AL032DM4), - -0x04, 0x23, 0x80000, 0x2000, 5, FUJITSU(MBM29F400TC)x16, -0x04, 0x27, 0x200000, 0x2000, 5, FUJITSU(MBM29PL160TD)x16, -0x04, 0x28, 0x200000, 0x2000, 5, FUJITSU(MBM29DL163TD/E)x16, -0x04, 0x2b, 0x200000, 0x2000, 5, FUJITSU(MBM29DL163BD/E)x16, -0x04, 0x2D, 0x200000, 0x2000, 5, FUJITSU(MBM29DL162TD/E)x16, -0x04, 0x2E, 0x200000, 0x2000, 5, FUJITSU(MBM29DL162BD/E)x16, -0x04, 0x33, 0x200000, 0x2000, 5, FUJITSU(MBM29DL164TD/E)x16, -0x04, 0x35, 0x200000, 0x2000, 5, FUJITSU(MBM29DL164BD/E)x16, -0x04, 0x36, 0x200000, 0x2000, 5, FUJITSU(MBM29DL161TD/E)x16, -0x04, 0x39, 0x200000, 0x2000, 5, FUJITSU(MBM29DL161BD/E)x16, -0x04, 0x3D, 0x200000, 0x2000, 5, FUJITSU(MBM29F017A)x8, -0x04, 0x45, 0x200000, 0x2000, 5, FUJITSU(MBM29PL160BD)x16, -0x04, 0x49, 0x200000, 0x1000, 5, FUJITSU(MBM29LV160BE), -0x04, 0x4C, 0x200000, 0x2000, 5, FUJITSU(MBM29LV016B)x8, -0x04, 0x50, 0x200000, 0x2000, 5, FUJITSU(MBM29DL323TE)x16, -0x04, 0x53, 0x200000, 0x2000, 5, FUJITSU(MBM29DL323BE)x16, -0x04, 0x55, 0x200000, 0x2000, 5, FUJITSU(MBM29DL322TE)x16, -0x04, 0x56, 0x200000, 0x2000, 5, FUJITSU(MBM29DL322BE)x16, -0x04, 0x59, 0x200000, 0x2000, 5, FUJITSU(MBM29DL321TE)x16, -0x04, 0x5a, 0x200000, 0x2000, 5, FUJITSU(MBM29DL321BE)x16, -0x04, 0x5B, 0x100000, 0x1000, 5, FUJITSU(MBM29LV800BA), -0x04, 0x5c, 0x200000, 0x2000, 5, FUJITSU(MBM29DL324TE)x16, -0x04, 0x5f, 0x200000, 0x2000, 5, FUJITSU(MBM29DL324BE)x16, -0x04, 0x77, 0x80000, 0x2000, 5, FUJITSU(MBM29F004TC)x8, -0x04, 0x7B, 0x80000, 0x2000, 5, FUJITSU(MBM29F004BC)x8, -0x04, 0x7E, 0x400000, 0x1000, 5, FUJITSU(MBM29DL32TF/BF), -0x04, 0x95, 0x200000, 0x2000, 5, FUJITSU(MBM29DS163TE), -0x04, 0x96, 0x200000, 0x2000, 5, FUJITSU(MBM29DS163BE), -0x04, 0xA4, 0x80000, 0x2000, 5, FUJITSU(MBM29F040C), -0x04, 0xAB, 0x80000, 0x2000, 5, FUJITSU(MBM29F400BC), -0x04, 0xAD, 0x200000, 0x2000, 5, FUJITSU(MBM29F016A), -0x04, 0xB5, 0x80000, 0x2000, 5, FUJITSU(MBM29LV004TC), -0x04, 0xB6, 0x80000, 0x2000, 5, FUJITSU(MBM29LV004BC), -0x04, 0xB9, 0x80000, 0x2000, 5, FUJITSU(MBM29LV400TC), -0x04, 0xBA, 0x80000, 0x2000, 5, FUJITSU(MBM29LV400BC), -0x04, 0xC4, 0x200000, 0x1000, 5, FUJITSU(MBM29LV160TE), -0x04, 0xC7, 0x200000, 0x2000, 5, FUJITSU(MBM29LV016T)x8, -0x04, 0xC8, 0x200000, 0x2000, 5, FUJITSU(MBM29LV017)x8, -0x04, 0xD2, 0x200000, 0x2000, 5, FUJITSU(MBM29F160TE)x16, -0x04, 0xD8, 0x200000, 0x2000, 5, FUJITSU(MBM29F160BE)x16, -0x04, 0xDA, 0x100000, 0x1000, 5, FUJITSU(MBM29LV800TA), - -0x1C, 0x04, 0x80000, 0x10000, 5, EON(EN29F040A), -0x1C, 0x4F, 0x80000, 0x10000, 5, EON(EN29LV040), -0x1C, 0xB9, 0x80000, 0x2000, 5, EON(EN29LV400T), -0x1C, 0xBA, 0x80000, 0x2000, 5, EON(EN29LV400B), -0x1C, 0xDA, 0x100000, 0x2000, 5, EON(EN29LV800BT), -0x1C, 0x5B, 0x100000, 0x2000, 5, EON(EN29LV800BB), -0x7F, 0x49, 0x200000, 0x2000, 5, EON(EN29LV160ABB), -0x7F, 0x7F, 0x800000, 0x2000, 5, EON(EN29LV640B), -0x7F, 0x7F, 0x40000, 0x2000, 5, EON(EN29F002/EN29F002N), -0x7F, 0xC4, 0x200000, 0x2000, 5, EON(EN29LV160ATB), -0x7F, 0xF6, 0x400000, 0x2000, 5, EON(EN29LV320BT), -0x7F, 0xF9, 0x400000, 0x2000, 5, EON(EN29LV320BB), - - -0x1F, 0x03, 0x10000, 0x10000, 5, ATMEL(AT49F512), -0x1F, 0x04, 0x20000, 0x2000, 5, ATMEL(AT49F001NT), -0x1F, 0x05, 0x20000, 0x2000, 5, ATMEL(AT49F001N), -0x1F, 0x13, 0x80000, 0x80000, 5, ATMEL(AT49F040), -0x1F, 0x10, 0x80000, 0x2000, 5, ATMEL(AT49F004T), -0x1F, 0x11, 0x80000, 0x2000, 5, ATMEL(AT49F004), -0x1F, 0x13, 0x80000, 0x2000, 5, ATMEL(AT49F040), -0x1F, 0x21, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV008(A)T), -0x1F, 0x22, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV008(A)), -0x1F, 0x23, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV080(A)), -0x1F, 0x27, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV080(A)T), -0x1F, 0x4A, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV8011T), -0x1F, 0x90, 0x80000, 0x2000, 5, ATMEL(AT49F4096AT), -0x1F, 0x92, 0x80000, 0x2000, 5, ATMEL(AT49F4096A), -0x1F, 0xA0, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV8192(A)), -0x1F, 0xA3, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV8192(A)T), -0x1F, 0xC0, 0x200000, 0x1000, 5, ATMEL(AT49BV162A), -0x1F, 0xC1, 0x100000, 0x2000, 5, ATMEL(AT49BV802A), -0x1F, 0xC2, 0x200000, 0x1000, 5, ATMEL(AT49BV162ATT), -0x1F, 0xC3, 0x100000, 0x2000, 4, ATMEL(AT49BV802AT), -0x1F, 0xC8, 0x400000, 0x2000, 4, ATMEL(AT49BV322A), -0x1F, 0xC9, 0x400000, 0x2000, 4, ATMEL(AT49BV322AT), -0x1F, 0xCB, 0x100000, 0x2000, 5, ATMEL(AT49F/BV/LV8011), - -0x20, 0x92, 0x80000, 0x2000, 5, STT(S28W800BT), -0x20, 0x93, 0x80000, 0x2000, 5, STT(S28W800BB), -0x20, 0x49, 0x200000, 0x1000, 4, ST(M29W160DB/M29W160EB), -0x20, 0x4B, 0x200000, 0x2000, 5, ST(M29F160BB), -0x20, 0x5B, 0x100000, 0x1000, 5, ST(M29W800AB) / ST(M29W800DB), -0x20, 0xAD, 0x200000, 0x10000, 5, ST(M29F016D)x8, -0x20, 0xC4, 0x200000, 0x1000, 4, ST(M29W160DT/M29W160ET), -0x20, 0xC8, 0x200000, 0x10000, 5, ST(M29W017D)x8, -0x20, 0xCC, 0x200000, 0x2000, 5, ST(M29F160BT)x16, -0x20, 0xD7, 0x100000, 0x1000, 5, ST(M29W800AT) / ST(M29W800DT), -0x20, 0xDE, 0x800000, 0x2000, 5, ST(M29W640DT), -0x20, 0xDF, 0x800000, 0x2000, 5, ST(M29W640DB), -0x20, 0xEE, 0x80000, 0x2000, 5, ST(M29W400BT), -0x20, 0xEF, 0x80000, 0x2000, 5, ST(M29W400BB), -0x20, 0xF1, 0x100000, 0x1000, 5, ST(M29F080A), -0x20, 0xCA, 0x400000, 0x2000, 5, ST(M29W320DT), -0x20, 0xCB, 0x400000, 0x2000, 5, ST(M29W320DB), -0x20, 0x56, 0x400000, 0x2000, 5, ST(M29W320ET), -0x20, 0x57, 0x400000, 0x2000, 5, ST(M29W320EB), - -0x37, 0x0D, 0x40000, 0x2000, 5, AMIC(A29002U), -0x37, 0x0E, 0x100000, 0x1000, 5, AMIC(A29800T), -0x37, 0x29, 0x200000, 0x1000, 5, AMIC(A29L160UV/A29L160B), -0x37, 0x31, 0x80000, 0x2000, 5, AMIC(A29400UV(B)), -0x37, 0x34, 0x80000, 0x2000, 5, AMIC(A29L004T), -0x37, 0x49, 0x200000, 0x2000, 5, AMIC(A29L160AB), -0x37, 0x86, 0x80000, 0x10000, 5, AMIC(A29040A/B), -0x37, 0x8C, 0x40000, 0x2000, 5, AMIC(A29002L), -0x37, 0x8F, 0x100000, 0x1000, 5, AMIC(A29800B), -0x37, 0x92, 0x80000, 0x10000, 5, AMIC(A29L040), -0x37, 0xA1, 0x20000, 0x1000, 5, AMIC(A29001/290011), -0x37, 0xA8, 0x200000, 0x2000, 5, AMIC(A29L160T), -0x37, 0xB5, 0x80000, 0x2000, 5, AMIC(A29L004B/A29400UV(T)), -0x37, 0xF6, 0x400000, 0x2000, 5, AMIC(A29L320AT), -0x37, 0xF9, 0x400000, 0x2000, 5, AMIC(A29L320AB), -0x37, 0xC4, 0x200000, 0x2000, 5, AMIC(A29L160AT), -0x37, 0x49, 0x200000, 0x2000, 5, AMIC(A29L160AB), - -0x40, 0x01, 0x20000, 0x200, 5, MOSEL(V29C51001T)/SYNCMOS(F29C51001T), -0x40, 0x02, 0x40000, 0x200, 5, MOSEL(V29C51002T)/SYNCMOS(F29C51002T), -0x40, 0xA1, 0x20000, 0x200, 5, MOSEL(V29C51001B)/SYNCMOS(F29C51001B), -0x40, 0xA2, 0x40000, 0x200, 5, MOSEL(V29C51002B)/SYNCMOS(F29C51002B), - -0x4A, 0xF6, 0x400000, 0x2000, 5, ES(ES29LV320DT), -0x4A, 0xF9, 0x400000, 0x2000, 5, ES(ES29LV320DB), - -0x7F, 0x49, 0x200000, 0x2000, 5, F49L160BA, -0x7F, 0xC4, 0x200000, 0x2000, 5, F49L160UA, - -0x8C, 0x4F, 0x80000, 0x10000, 5, EFST(F49L040A), -0x8C, 0x49, 0x200000, 0x10000, 5, ESMT(F49L160BA), -0x8C, 0xC4, 0x200000, 0x10000, 5, ESMT(F49L160UA), - -0x98, 0x43, 0x200000, 0x2000, 5, TOSHIBA(TC58FVB160A), -0x98, 0xC2, 0x200000, 0x2000, 5, TOSHIBA(TC58FVT160A), - -0x9D, 0x1D, 0x40000, 0x20000, 5, PMC(PM29F002T), -0x9D, 0x3E, 0x80000, 0x1000, 5, PMC(Pm39LV040), -0x9D, 0x4E, 0x80000, 0x1000, 5, PMC(Pm39F040), - -0xAD, 0x28, 0x200000, 0x2000, 5, Hynix(HY29DL163T), -0xAD, 0x2B, 0x200000, 0x2000, 5, Hynix(HY29DL163B), -0xAD, 0x2D, 0x200000, 0x2000, 5, Hynix(HY29DL162T), -0xAD, 0x2E, 0x200000, 0x2000, 5, Hynix(HY29DL162B), -0xAD, 0x49, 0x200000, 0x1000, 5, Hynix(HY29LV160B)/AMIC(A29L160HUVB), -0xAD, 0x58, 0x100000, 0x1000, 5, Hynix(HY29F800B), -0xAD, 0x5B, 0x100000, 0x1000, 5, Hynix(HY29LV800B), -0xAD, 0x69, 0x200000, 0x2000, 5, Hynix(HY29DS162T), -0xAD, 0x6A, 0x200000, 0x2000, 5, Hynix(HY29DS163T), -0xAD, 0x6D, 0x200000, 0x2000, 5, Hynix(HY29DS162B), -0xAD, 0x6E, 0x200000, 0x2000, 5, Hynix(HY29DS163B), -0xAD, 0xB0, 0x40000, 0x10000, 5, HYUNDAI(HY29F002T), -0xAD, 0xC4, 0x200000, 0x1000, 5, Hynix(HY29LV160T)/AMIC(A29L160HUVT), -0xAD, 0xD6, 0x100000, 0x1000, 5, Hynix(HY29F800T), -0xAD, 0xDA, 0x100000, 0x1000, 5, Hynix(HY29LV800T), - -0xBF, 0x01, 0x20000, 0x1000, 5, SST(SST27SF010), -0xBF, 0x37, 0x20000, 0x1000, 5, SST(SST39SF010), -0xBF, 0x4A, 0x200000, 0x1000, 5, SST(SST36VF1602C), -0xBF, 0x4B, 0x200000, 0x1000, 5, SST(SST36VF1601C), -0xBF, 0x53, 0x400000, 0x1000, 5, SST(SST36VF3204), -0xBF, 0x54, 0x400000, 0x1000, 5, SST(SST36VF3203), -0xBF, 0x6A, 0x800000, 0x1000, 5, SST(SST39VF6402), -0xBF, 0x6B, 0x800000, 0x1000, 5, SST(SST39VF6401), -0xBF, 0x80, 0x80000, 0x1000, 5, SST(39LF/VF400A)x16, -0xBF, 0x81, 0x100000, 0x1000, 5, SST(SST39LF/VF800(Q))x16, -0xBF, 0x82, 0x200000, 0x1000, 5, SST(SST39LF/VF160(Q))x16, -0xBF, 0xB7, 0x80000, 0x1000, 5, SST(SST39SF040), -0xBF, 0xB4, 0x10000, 0x1000, 5, SST(SST39SF512), -0xBF, 0xB6, 0x40000, 0x1000, 5, SST(SST39SF020), -0xBF, 0xB7, 0x80000, 0x1000, 5, SST(SST39SF040), -0xBF, 0xC2, 0x10000, 0x1000, 5, SST(SST37VF040), -0xBF, 0xC4, 0x10000, 0x1000, 5, SST(SST37VF512), -0xBF, 0xC5, 0x20000, 0x1000, 5, SST(SST37VF010), -0xBF, 0xC6, 0x10000, 0x1000, 5, SST(SST37VF020), -0xBF, 0xC8, 0x200000, 0x1000, 5, SST(SST39VF1681), -0xBF, 0xC9, 0x200000, 0x1000, 5, SST(SST36VF1682), -0xBF, 0xD4, 0x10000, 0x1000, 5, SST(SST39VF512), -0xBF, 0xD5, 0x20000, 0x1000, 5, SST(SST39VF010), -0xBF, 0xD6, 0x40000, 0x1000, 5, SST(SST39VF020), -0xBF, 0xD7, 0x80000, 0x1000, 5, SST(SST39VF040), -0xBF, 0xD8, 0x100000, 0x1000, 5, SST(SST39LF080/SST39VF080/SST39VF088), -0xBF, 0xD9, 0x200000, 0x1000, 5, SST(SST39LF016/SST39VF016), - -0xC2, 0x17, 0x10000, 0x1000, 5, MXIC(MX29F512T), -0xC2, 0x18, 0x20000, 0x1000, 5, MXIC(MX29F001T), -0xC2, 0x19, 0x20000, 0x1000, 5, MXIC(MX29F001B), -0xC2, 0x23, 0x80000, 0x2000, 5, MXIC(MX29F400T), -0xC2, 0x34, 0x40000, 0x2000, 5, MXIC(MX29F002B), -0xC2, 0x37, 0x100000, 0x1000, 5, MXIC(MX29LV008B), -0xC2, 0x3E, 0x100000, 0x1000, 5, MXIC(MX29LV008T), -0xC2, 0x45, 0x80000, 0x2000, 5, MXIC(MX29F004T), -0xC2, 0x46, 0x80000, 0x2000, 5, MXIC(MX29F004B), -0xC2, 0x49, 0x200000, 0x1000, 5, MXIC(A29LV160AB/MX29LV160BB), -0xC2, 0x4F, 0x80000, 0x2000, 5, MXIC(MX29LV040), -0xC2, 0x58, 0x100000, 0x1000, 5, MXIC(MX29F800B), -0xC2, 0x5B, 0x100000, 0x1000, 2, MXIC(MX29LV800B), -0xC2, 0x6B, 0x200000, 0x2000, 5, MXIC(MX29F1615), -0xC2, 0x7E, 0x800000, 0x2000, 2, MXIC(MX29LV640MB/T), -0xC2, 0xA4, 0x80000, 0x2000, 5, MXIC(MX29F040), -0xC2, 0xA7, 0x400000, 0x2000, 5, MXIC(MX29LV320T/MX29LV320CT), -0xC2, 0xA8, 0x400000, 0x2000, 5, MXIC(MX29LV320AB/MX29LV320CBTC/MX29LV320B/MX29LV320CB), -0xC2, 0xAB, 0x80000, 0x2000, 5, MXIC(MX29F400B), -0xC2, 0xAD, 0x200000, 0x2000, 5, MXIC(MX29F016), -0xC2, 0xB0, 0x40000, 0x2000, 5, MXIC(MX29F002T), -0xC2, 0xB5, 0x80000, 0x2000, 5, MXIC(MX29LV004T), -0xC2, 0xB6, 0x80000, 0x2000, 5, MXIC(MX29LV004B), -0xC2, 0xB9, 0x80000, 0x2000, 5, MXIC(MX29LV400T), -0xC2, 0xBA, 0x80000, 0x2000, 5, MXIC(MX29LV400B), -0xC2, 0xC4, 0x200000, 0x1000, 5, MXIC(A29LV160AT/MX29LV160BT), -0xC2, 0xC8, 0x200000, 0x2000, 5, MXIC(MX29LV017A), -0xC2, 0xC9, 0x800000, 0x2000, 5, MXIC(MX29LV640BT), -0xC2, 0xCB, 0x800000, 0x2000, 5, MXIC(MX29LV640BB), -0xC2, 0xD6, 0x100000, 0x1000, 5, MXIC(MX29F800T), -0xC2, 0xDA, 0x100000, 0x1000, 2, MXIC(MX29LV800T/MX26LV800BT), -0xC2, 0xF2, 0x100000, 0x1000, 5, MXIC(MX29F080), -0xC2, 0xF6, 0x200000, 0x2000, 5, MXIC(MX29L1611G), -0xC2, 0xF8, 0x200000, 0x2000, 5, MXIC(MX29L1611), -0xC2, 0xFA, 0x200000, 0x2000, 5, MXIC(MX29F1610A), - -0xDA, 0x0B, 0x40000, 0x20000, 5, Winbond(W49F002U), -0xDA, 0xD6, 0x80000, 0x10000, 5, Winbond(W39L040A), -0xDA, 0x7E, 0x200000, 0x2000, 5, Winbond(W19B320A), - -0xEC, 0x40, 0x200000, 0x2000, 5, SAMSUNG(K8D1616UB), -0xEC, 0x4E, 0x200000, 0x2000, 5, SAMSUNG(K8D1716UB), -0xEC, 0xC8, 0x200000, 0x2000, 5, SAMSUNG(K8D1616UT), -0xEC, 0xCB, 0x200000, 0x2000, 5, SAMSUNG(K8D1716UT), - -0x01, 0x21, 0x100000, 0x1000, 5, ACT(AC39LV088), -0x1F, 0x02, 0x80000, 0x2000, 5, ACT(AC29LV400T), -0x1F, 0x03, 0x80000, 0x2000, 5, ACT(AC29LV400B), -0x1F, 0x29, 0x80000, 0x1000, 5, ACT(AC39LV040), -0x7F, 0x02, 0x80000, 0x2000, 5, ACT(AC29LV400T), -0x7F, 0x03, 0x80000, 0x2000, 5, ACT(AC29LV400B), - -[MT8108] -//Manu, MemType,MemCap,bPPType,dSize, dSecSize, bWrite, bRead, SecE, BulkE,ReadS,WriteS,WriteSE,WriteE,InWriteMask, Baud, Name -0x01, 0x02, 0x12, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL004A/S25FL040A), -0x01, 0x02, 0x13, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL008A), -0x01, 0x02, 0x14, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL016A), -0x01, 0x02, 0x15, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL032A), -0x01, 0x02, 0x16, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL064A), -0x01, 0x20, 0x18, 0x00, 0x1000000,0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion(S25FL128P), -0x12, 0x12, 0xEE, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, AMIC(A25L40P), -0x7F, 0x37, 0x20, 0x00, 0x200000, 0x1000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, AMIC(A25L16P), -0x37, 0x30, 0x15, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, AMIC(A25L016), -0x13, 0x13, 0xEE, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25P80)/AMIC(A25L80P), -0x1C, 0x20, 0x13, 0x00, 0x80000, 0x1000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EN25B40/EN25P40, -0x1C, 0x20, 0x14, 0x00, 0x100000, 0x1000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EN25B80/EN25P80, -0x1C, 0x20, 0x15, 0x00, 0x200000, 0x1000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EN25B16/EN25P16, -0x1C, 0x20, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EON(EN25B32), -0x1C, 0x20, 0x17, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EON(EN25B64), -0x1C, 0x31, 0x14, 0x00, 0x100000, 0x1000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, EN25F80, -0x1C, 0x31, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5,EN25F32, -0x1F, 0x27, 0x00, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT45DB321C), -0x1F, 0x46, 0x00, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT45DB161B), -0x1F, 0x45, 0x01, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT26DF081A), -0x1F, 0x47, 0x00, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT25DF321), -0x1F, 0x47, 0x01, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT25DF321A), -0x1F, 0x48, 0x00, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ATMEL(AT25DF641), -0x20, 0x20, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25P16), -0x20, 0x20, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25P32), -0x20, 0x20, 0x17, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25P64), -0x20, 0x71, 0x17, 0x00, 0x800000, 0x40000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25X64), -0x20, 0x20, 0x18, 0x00, 0x1000000,0x40000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ST(M25P128), -0x7F, 0x7F, 0x4F, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Spansion Sample(S25FL016A), -0x89, 0x89, 0x11, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard16MBB), -0x89, 0x89, 0x12, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard32MBB), -0x89, 0x89, 0x13, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard64MBB), -0x89, 0x89, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard16MBT), -0x89, 0x89, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard32MBT), -0x89, 0x89, 0x17, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Intel(BlanShard64MBT), -0x8C, 0x20, 0x13, 0x02, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ESMT(F25L004A), -0x8C, 0x20, 0x14, 0x02, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ESMT(F25L008A), -0x8C, 0x20, 0x15, 0x02, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ESMT(F25L016A), -0x8C, 0x20, 0x16, 0x02, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, ESMT(F25L032A), -0xBF, 0x43, 0x10, 0x02, 0x40000, 0x8000, 0x02, 0x03, 0x52, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF020B), -0xBF, 0x25, 0x41, 0x02, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF016B), -0xBF, 0x25, 0x8D, 0x02, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF040B), -0xBF, 0x25, 0x8E, 0x02, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF080B), -0xBF, 0x41, 0xEE, 0x01, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF16), -0xBF, 0x25, 0x4A, 0x02, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0x60, 0x05, 0x01, 0x06, 0x06, 0x01, 5, SST(25VF032B), -0xC2, 0x20, 0x10, 0x00, 0x10000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L512), -0xC2, 0x20, 0x13, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L4005A), -0xC2, 0x20, 0x14, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L8005A), -0xC2, 0x20, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L160/25L1605A), -0xC2, 0x24, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L1635D), -0xC2, 0x20, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L320), -0xC2, 0x5e, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L3235D), -0xC2, 0x20, 0x17, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L640), -0xC2, 0x20, 0x18, 0x00, 0x1000000,0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, MXIC(25L1280), -0xEF, 0x10, 0xEE, 0x00, 0x20000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P10), -0xEF, 0x11, 0xEE, 0x00, 0x40000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P20), -0xEF, 0x12, 0xEE, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P40), -0xEF, 0x30, 0x11, 0x00, 0x20000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X10), -0xEF, 0x30, 0x12, 0x00, 0x40000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X20), -0xEF, 0x30, 0x13, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X40/W25D40), -0xEF, 0x30, 0x14, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X80/W25D80), -0xEF, 0x30, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X16), -0xEF, 0x40, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25Q16BVSSIG), -0xEF, 0x40, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25Q32BVSS(F)IG), -0xEF, 0x30, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X32), -0xEF, 0x30, 0x17, 0x00, 0x800000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25X64), -0xEF, 0x32, 0xEE, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25B40B/W25B40AB), -0xEF, 0x42, 0xEE, 0x00, 0x80000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25B40T/W25B40AT), -0xEF, 0x20, 0x14, 0x00, 0x100000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P80)/NEXT(NX25P80), -0xEF, 0x20, 0x15, 0x00, 0x200000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P16)/NEXT(NX25P16), -0xEF, 0x20, 0x16, 0x00, 0x400000, 0x10000, 0x02, 0x03, 0xD8, 0xC7, 0x05, 0x01, 0x06, 0x06, 0x01, 5, Winbond(W25P32)/NEXT(NX25P32), - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" deleted file mode 100644 index 7fa500a..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/log.txt" +++ /dev/null @@ -1,379 +0,0 @@ -16:51:50:707 : Start to write key -16:51:50:722 : To write 8Byte -16:51:50:769 : Write 8Byte -16:51:50:769 : To wait for return -16:51:50:972 : Wait for return -16:51:50:972 : To read return -16:51:50:988 : Read return -16:51:50:988 : Return is wrong -16:51:50:988 : To reset -16:51:52:300 : Reset -16:51:52:316 : To write 8Byte -16:51:52:363 : Write 8Byte -16:51:52:363 : To wait for return -16:51:52:566 : Wait for return -16:51:52:566 : To read return -16:51:52:582 : Read return -16:51:52:582 : Return is wrong -16:51:52:582 : To reset -16:51:53:894 : Reset -16:51:53:910 : To write 8Byte -16:51:53:972 : Write 8Byte -16:51:53:972 : To wait for return -16:51:54:176 : Wait for return -16:51:54:176 : To read return -16:51:54:191 : Read return -16:51:54:191 : Return is wrong -16:51:54:191 : To reset -16:51:55:504 : Reset -16:51:55:519 : To write 8Byte -16:51:55:566 : Write 8Byte -16:51:55:566 : To wait for return -16:51:55:769 : Wait for return -16:51:55:769 : To read return -16:51:55:785 : Read return -16:51:55:785 : Return is wrong -16:51:55:785 : To reset -16:51:57:098 : Reset -16:51:57:113 : To write 8Byte -16:51:57:160 : Write 8Byte -16:51:57:160 : To wait for return -16:51:57:363 : Wait for return -16:51:57:363 : To read return -16:51:57:379 : Read return -16:51:57:379 : Return is wrong -16:51:57:379 : To reset -16:51:58:707 : Reset -16:51:58:723 : To write 8Byte -16:51:58:769 : Write 8Byte -16:51:58:769 : To wait for return -16:51:58:973 : Wait for return -16:51:58:973 : To read return -16:51:58:988 : Read return -16:51:58:988 : Return is wrong -16:51:58:988 : To reset -16:52:00:301 : Reset -16:52:00:316 : To write 8Byte -16:52:00:363 : Write 8Byte -16:52:00:363 : To wait for return -16:52:00:566 : Wait for return -16:52:00:566 : To read return -16:52:00:582 : Read return -16:52:00:582 : Return is wrong -16:52:00:582 : To reset -16:52:01:895 : Reset -16:52:01:910 : To write 8Byte -16:52:01:973 : Write 8Byte -16:52:01:973 : To wait for return -16:52:02:176 : Wait for return -16:52:02:176 : To read return -16:52:02:191 : Read return -16:52:02:191 : Return is wrong -16:52:02:191 : To reset -16:52:03:504 : Reset -16:52:03:520 : To write 8Byte -16:52:03:567 : Write 8Byte -16:52:03:567 : To wait for return -16:52:03:770 : Wait for return -16:52:03:770 : To read return -16:52:03:785 : Read return -16:52:03:785 : Return is wrong -16:52:03:785 : To reset -16:52:05:098 : Reset -16:52:05:113 : To write 8Byte -16:52:05:160 : Write 8Byte -16:52:05:160 : To wait for return -16:52:05:363 : Wait for return -16:52:05:363 : To read return -16:52:05:379 : Read return -16:52:05:379 : Return is wrong -16:52:05:379 : To reset -16:52:06:692 : Reset -16:52:06:707 : To write 8Byte -16:52:06:770 : Write 8Byte -16:52:06:770 : To wait for return -16:52:06:973 : Wait for return -16:52:06:973 : To read return -16:52:06:989 : Read return -16:52:06:989 : Return is wrong -16:52:06:989 : To reset -16:52:08:301 : Reset -16:52:08:317 : To write 8Byte -16:52:08:364 : Write 8Byte -16:52:08:364 : To wait for return -16:52:08:567 : Wait for return -16:52:08:567 : To read return -16:52:08:582 : Read return -16:52:08:582 : Return is wrong -16:52:08:582 : To reset -16:52:09:895 : Reset -16:52:09:910 : To write 8Byte -16:52:09:973 : Write 8Byte -16:52:09:973 : To wait for return -16:52:10:176 : Wait for return -16:52:10:176 : To read return -16:52:10:192 : Read return -16:52:10:192 : Return is wrong -16:52:10:192 : To reset -16:52:11:504 : Reset -16:52:11:520 : To write 8Byte -16:52:11:567 : Write 8Byte -16:52:11:567 : To wait for return -16:52:11:770 : Wait for return -16:52:11:770 : To read return -16:52:11:786 : Read return -16:52:11:786 : Return is wrong -16:52:11:786 : To reset -16:52:13:098 : Reset -16:52:13:114 : To write 8Byte -16:52:13:161 : Write 8Byte -16:52:13:161 : To wait for return -16:52:13:364 : Wait for return -16:52:13:364 : To read return -16:52:13:379 : Read return -16:52:13:379 : Return is wrong -16:52:13:379 : To reset -16:52:14:708 : Reset -16:52:14:723 : To write 8Byte -16:52:14:770 : Write 8Byte -16:52:14:770 : To wait for return -16:52:14:973 : Wait for return -16:52:14:973 : To read return -16:52:14:989 : Read return -16:52:14:989 : Return is wrong -16:52:14:989 : To reset -16:52:16:301 : Reset -16:52:16:317 : To write 8Byte -16:52:16:364 : Write 8Byte -16:52:16:364 : To wait for return -16:52:16:567 : Wait for return -16:52:16:567 : To read return -16:52:16:583 : Read return -16:52:16:583 : Return is wrong -16:52:16:583 : To reset -16:52:17:911 : Reset -16:52:17:926 : To write 8Byte -16:52:17:973 : Write 8Byte -16:52:17:973 : To wait for return -16:52:18:176 : Wait for return -16:52:18:176 : To read return -16:52:18:192 : Read return -16:52:18:192 : Return is wrong -16:52:18:192 : To reset -16:52:19:505 : Reset -16:52:19:520 : To write 8Byte -16:52:19:567 : Write 8Byte -16:52:19:567 : To wait for return -16:52:19:770 : Wait for return -16:52:19:770 : To read return -16:52:19:786 : Read return -16:52:19:786 : Return is wrong -16:52:19:786 : To reset -16:52:21:098 : Reset -16:52:21:114 : To write 8Byte -16:52:21:161 : Write 8Byte -16:52:21:161 : To wait for return -16:52:21:364 : Wait for return -16:52:21:364 : To read return -16:52:21:380 : Read return -16:52:21:380 : Return is wrong -16:52:21:380 : To reset -16:52:22:708 : Reset -16:52:22:723 : To write 8Byte -16:52:22:770 : Write 8Byte -16:52:22:770 : To wait for return -16:52:22:973 : Wait for return -16:52:22:973 : To read return -16:52:22:989 : Read return -16:52:22:989 : Return is wrong -16:52:22:989 : To reset -16:52:24:302 : Reset -16:52:24:317 : To write 8Byte -16:52:24:364 : Write 8Byte -16:52:24:364 : To wait for return -16:52:24:567 : Wait for return -16:52:24:567 : To read return -16:52:24:583 : Read return -16:52:24:583 : Return is wrong -16:52:24:583 : To reset -16:52:25:895 : Reset -16:52:25:911 : To write 8Byte -16:52:25:958 : Write 8Byte -16:52:25:958 : To wait for return -16:52:26:161 : Wait for return -16:52:26:161 : To read return -16:52:26:177 : Read return -16:52:26:177 : Return is wrong -16:52:26:177 : To reset -16:52:27:489 : Reset -16:52:27:505 : To write 8Byte -16:52:27:567 : Write 8Byte -16:52:27:567 : To wait for return -16:52:27:771 : Wait for return -16:52:27:771 : To read return -16:52:27:786 : Read return -16:52:27:786 : Return is wrong -16:52:27:786 : To reset -16:52:29:177 : Reset -16:52:29:192 : To write 8Byte -16:52:29:239 : Write 8Byte -16:52:29:239 : To wait for return -16:52:29:442 : Wait for return -16:52:29:442 : To read return -16:52:29:458 : Read return -16:52:29:458 : Return is wrong -16:52:29:458 : To reset -16:52:30:771 : Reset -16:52:30:786 : To write 8Byte -16:52:30:833 : Write 8Byte -16:52:30:833 : To wait for return -16:52:31:036 : Wait for return -16:52:31:036 : To read return -16:52:31:052 : Read return -16:52:31:052 : Return is wrong -16:52:31:052 : To reset -16:52:32:380 : Reset -16:52:32:396 : To write 8Byte -16:52:32:443 : Write 8Byte -16:52:32:443 : To wait for return -16:52:32:646 : Wait for return -16:52:32:646 : To read return -16:52:32:661 : Read return -16:52:32:661 : Return is wrong -16:52:32:661 : To reset -16:52:33:974 : Reset -16:52:33:990 : To write 8Byte -16:52:34:036 : Write 8Byte -16:52:34:036 : To wait for return -16:52:34:240 : Wait for return -16:52:34:240 : To read return -16:52:34:255 : Read return -16:52:34:255 : Return is wrong -16:52:34:255 : To reset -16:52:35:583 : Reset -16:52:35:599 : To write 8Byte -16:52:35:661 : Write 8Byte -16:52:35:661 : To wait for return -16:52:35:865 : Wait for return -16:52:35:865 : To read return -16:52:35:880 : Read return -16:52:35:880 : Return is wrong -16:52:35:880 : To reset -16:52:37:193 : Reset -16:52:37:208 : To write 8Byte -16:52:37:255 : Write 8Byte -16:52:37:255 : To wait for return -16:52:37:458 : Wait for return -16:52:37:458 : To read return -16:52:37:474 : Read return -16:52:37:474 : Return is wrong -16:52:37:474 : To reset -16:52:38:787 : Reset -16:52:38:802 : To write 8Byte -16:52:38:865 : Write 8Byte -16:52:38:865 : To wait for return -16:52:39:068 : Wait for return -16:52:39:068 : To read return -16:52:39:083 : Read return -16:52:39:083 : Return is wrong -16:52:39:083 : To reset -16:52:40:380 : Reset -16:52:40:396 : To write 8Byte -16:52:40:443 : Write 8Byte -16:52:40:443 : To wait for return -16:52:40:646 : Wait for return -16:52:40:646 : To read return -16:52:40:662 : Read return -16:52:40:662 : Return is wrong -16:52:40:662 : To reset -16:52:41:990 : Reset -16:52:42:005 : To write 8Byte -16:52:42:068 : Write 8Byte -16:52:42:068 : To wait for return -16:52:42:271 : Wait for return -16:52:42:271 : To read return -16:52:42:287 : Read return -16:52:42:287 : Return is wrong -16:52:42:287 : To reset -16:52:43:584 : Reset -16:52:43:599 : To write 8Byte -16:52:43:662 : Write 8Byte -16:52:43:662 : To wait for return -16:52:43:865 : Wait for return -16:52:43:865 : To read return -16:52:43:881 : Read return -16:52:43:881 : Return is wrong -16:52:43:881 : To reset -16:52:45:177 : Reset -16:52:45:193 : To write 8Byte -16:52:45:240 : Write 8Byte -16:52:45:240 : To wait for return -16:52:45:443 : Wait for return -16:52:45:443 : To read return -16:52:45:459 : Read return -16:52:45:459 : Return is wrong -16:52:45:459 : To reset -16:52:46:787 : Reset -16:52:46:803 : To write 8Byte -16:52:46:865 : Write 8Byte -16:52:46:865 : To wait for return -16:52:47:068 : Wait for return -16:52:47:068 : To read return -16:52:47:084 : Read return -16:52:47:084 : Return is wrong -16:52:47:084 : To reset -16:52:48:381 : Reset -16:52:48:396 : To write 8Byte -16:52:48:459 : Write 8Byte -16:52:48:459 : To wait for return -16:52:48:662 : Wait for return -16:52:48:662 : To read return -16:52:48:678 : Read return -16:52:48:678 : Return is wrong -16:52:48:678 : To reset -16:52:49:990 : Reset -16:52:50:006 : To write 8Byte -16:52:50:053 : Write 8Byte -16:52:50:053 : To wait for return -16:52:50:256 : Wait for return -16:52:50:256 : To read return -16:52:50:271 : Read return -16:52:50:271 : Return is wrong -16:52:50:271 : To reset -16:52:51:584 : Reset -16:52:51:600 : To write 8Byte -16:52:51:662 : Write 8Byte -16:52:51:662 : To wait for return -16:52:51:865 : Wait for return -16:52:51:865 : To read return -16:52:51:881 : Read return -16:52:51:881 : Return is wrong -16:52:51:881 : To reset -16:52:53:225 : Reset -16:52:53:240 : To write 8Byte -16:52:53:287 : Write 8Byte -16:52:53:287 : To wait for return -16:52:53:490 : Wait for return -16:52:53:490 : To read return -16:52:53:506 : Read return -16:52:53:506 : Return is wrong -16:52:53:506 : To reset -16:52:54:834 : Reset -16:52:54:850 : To write 8Byte -16:52:54:912 : Write 8Byte -16:52:54:912 : To wait for return -16:52:55:115 : Wait for return -16:52:55:115 : To read return -16:52:55:131 : Read return -16:52:55:131 : Return is wrong -16:52:55:131 : To reset -16:52:56:428 : Reset -16:52:56:444 : To write 8Byte -16:52:56:490 : Write 8Byte -16:52:56:490 : To wait for return -16:52:56:694 : Wait for return -16:52:56:694 : To read return -16:52:56:709 : Read return -16:52:56:709 : Return is wrong -16:52:56:709 : To reset -16:52:58:037 : Reset diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" deleted file mode 100644 index ab0c180..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/Mtktool2.48.05-54/\344\275\277\347\224\250\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,8 +0,0 @@ -硬件请设置为串口模式, 通过TTL接口与VGA连接. - -从编程器的TTL接口通过杜邦线连接 -RXD 连接到VGA 4,13脚 -TXD 连接到VGA 11,14脚 -GND 连接到VGA 的GND脚 - -软件上设定为CH341A的串口端口, 115200波特率 即可操作. \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" deleted file mode 100644 index 974327c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/2638Flash.cmd" +++ /dev/null @@ -1,18 +0,0 @@ - IsSSTFlash: 0; - spiFlashSize: 0x200000; - spiFlashSectorSize: 0x1000; - spiFlashProto: 0x0; - spiFlashClkL: 0x3; - spiFlashClkH: 0x3; - spiFlashCSH: 0x20; - spiFlashCSHold: 0x2; - spiFlashCSSet: 0x2; - spiFlashReadCmd: 0x3; - spiFlashProgCmd: 0x2; - spiFlashReadStatusCmd: 0x5 ; - spiFlashWriteStatusCmd: 0x1; - spiFlashWriteEnCmd: 0x6; - spiFlashWriteDisCmd: 0x4; - spiFlashPageEraseCmd: 0x20; - spiFlashInProc: 0x1 ; - spiFlashWriteEn: 0x2 ; \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" deleted file mode 100644 index baccb11..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Backup/fw.spi" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" deleted file mode 100644 index e9a3926..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/Flash_supporting_list.txt" +++ /dev/null @@ -1,98 +0,0 @@ -// Spansion Serial - S25FL004A(512KB) - S25FL008A(1MB) - S25FL016A(2MB) - S25FL032A(4MB) - S25FL064A(8MB) - -// ATMEL Serial - AT25FS010(128KB) - AT25FS040(512KB) - AT25DF321(4MB) - AT25DF641(8MB) - AT25DF041A(512KB) - AT26DF161A(2MB) - AT26DF321(4MB) - AT26DF081A(1MB) - AT26F004(512KB) - - -// SST Serial - SST25VF020/SST25LF020A(256KB) - SST25LF040A(512KB) - SST25VF010A(128KB, WORD mode) - SST25VF016B(2MB, WORD mode) - SST25VF040B(512KB, WORD mode) - SST25VF080B(1MB, WORD mode) - SST25VF032B(4MB, WORD mode) - - - -// Winbone Serial - W25X10L(128KB) - W25X20L(256KB) - W25X40L(512KB) - W25X80L(1MB) - W25X16/16A(2MB) - W25X32A(4MB) - W25X64A(8MB) - W25Q80L(1MB) - W25Q16(2MB) - W25Q32(4MB) - W25P80(1MB) - W25P16(2MB) - W25P10(128KB) - W25P20(256KB) - W25P40(512KB) - - -// ST Serial - M25P128(16MB) - M25P80(1MB) - M25P64(8MB) - M25P40(512KB) - M25P32(4MB) - M25P20(256KB) - M25P16(2MB) - M25P10(128KB) - M25P5(64KB) - - -// MXIC Serial - M25L512(64KB) - M25L1605(2MB) - M25L3205(4MB) - M25L6405(8MB) - M25L4005(512KB) - M25L8005(1MB) - M25L12805(16MB) - - -// EON Serial - EN25B16(2MB): Bottom Boot 4K ~ 64K Sector - EN25B16(2MB): Top Boot 4K ~ 64K Sector - EN25B20(256KB): Bottom Boot 4K ~ 64K Sector - EN25B20(256KB): Top Boot 4K ~ 64K Sector - EN25B32(4MB): Bottom Boot 4K ~ 64K Sector - EN25B32(4MB): Top Boot 4K ~ 64K Sector - EN25B40(512KB): Bottom Boot 4K ~ 64K Sector - EN25B40(512KB): Top Boot 4K ~ 64K Sector - EN25B64(8MB): Bottom Boot 4K ~ 64K Sector - EN25B64(8MB): Top Boot 4K ~ 64K Sector - EN25B80(1MB): Top Boot 4K ~ 64K Sector - EN25B80(1MB): Bottom Boot 4K ~ 64K Sector - EN25F20(256KB): EON 4K Uniform Sector - EN25F40(512KB): EON 4K Uniform Sector - EN25F80(1MB): EON 4K Uniform Sector - EN25F16(2M): EON 4K Uniform Sector - EN25P05(64KB): EON 32K Uniform Sector - EN25P16(2MB): EON 64K Uniform Sector - EN25P20(256KB): EON 64K Uniform Sector - EN25P32(4MB): EON 64K Uniform Sector - EN25P40(512KB): EON 64K Uniform Sector - EN25P64(8MB): EON 64K Uniform Sector - EN25P80(1MB): EON 64K Uniform Sector - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" deleted file mode 100644 index 6c73d6f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" deleted file mode 100644 index 6030d69..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/RTICE.ini" +++ /dev/null @@ -1,90 +0,0 @@ -[BURN_DRAGON] -DRAGON_HDCP_START=0x01ff000 -DRAGON_ROS_START=0x6000 -DRAGON_EDID_START=0x01ff400 -WRIITE_STATUS=0x00 -WP_CONTROL=1 -UPDATE_WRITE_STATUS=1 -WRITE_STATUS=0x80 -REBOOT_AFTER_PROGRAM=1 -LOCK_EDID=1 -EDID_RTDFILE=D:\软件包基本软件\JT1199\JT11990523软件包\SYSTEM\其他软件\RtkTool_0203\EDID.rtd -IMAGE_RTDFILE=E:\产品\液晶2672\自己的\L32R1B\程序\新程序\L32R1B下乡-L32F1-L32F1A下乡+CMOB6L02+20090903+1561 .spi -HDCP_FILE= -EDID_AUTOINCREASE=0 -[BURN_RTD2638] -TargetBoard=1 -All=E:\产品\液晶2672\自己的\L32R1B\程序\新程序\L32R1B下乡-L32F1-L32F1A下乡+CMOB6L02+20090903+1561 .spi -IsVerify=0 -IsErase=1 -ComboTarget=0 -BurnStartAddress=0x00000000 -LxProtocol=1 -UseCompress=0 -BootLoadVer=2 -LoadType=1 -PreLoadFileName=.\flash.img -ScalerType=1 -logpath=.\LOG.TXT -[RS232] -COMSelect=0 -BaudRate=8 -DataBits=3 -Parity=0 -Stopbits=0 -HandSharking=0 -Command=1 -[BURN_RTD2880] -Bootloader=0 -Firmware=1 -FS=1 -HDCP=0 -ALL=0 -NJffs2=0 -JumpAddress=bfc000d0 -LoadAddress=80a00000 -PreLoadFileName= -PreLoadFileName1=N:\2885\trunk\linux-2.6\linux.mem -PreLoadFileName2= -PreLoadFileName3= -PreLoadFileName4= -PreLoadFileName5= -[LX_CPU] -LxAddr=b80c5020 -LxCount=2 -LxAddr2=b80c508c -LxCount2=1 -LxAddr3=b801400c -LxAddr4=b8014018 -LxCount3=1 -LxCount4=1 -[Panel_PAGE] -dclkLow=200 -dclkHigh=2000 -totalLow=1 -totalHigh=3000 -totalCombo=1 -dclk=819 -htotal=1561 -vtotal=806 -lastline=1560 -dssEn=1 -dssCombo=0 -Filepath=D:\dragon\branches\public_dragon\ros\include\panel\au_m170eg01.h -[RTROM] -XFER_PACKET_LENGTH=512 -HDCPKEY_AUTOMATION=0 -CLEAR_WRITE_PROTECTION=1 -DDR_B8004054=0x00000808 -DDR_B8004058=0x00060680 -DDR_B800020C=0x0000cc00 -DDR_B8000204=0x33336584 -FG_Version_Issue=1 -MAX_RETRYII=35 -CONNECTREADTIMEOUT=5 -WRITE_PROTECT_PIN_CONTROL=0 -READ_AND_WRITE_BACK=1 -ENHACE_BAUD_RATE=460800 -VERIFY_XFER_PACKET_LENGTH=256 -[IIC_PAGE] -SlaveAddr=0xc0 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" deleted file mode 100644 index fc2765f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/UserManual/RTICE_User_Manual_0.3.doc" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" deleted file mode 100644 index 45bf8ea..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/WPControl.tbl" +++ /dev/null @@ -1,5 +0,0 @@ -rtdf_maskl(0xb8007118, 0xfff8ffff, 0x00010000) -rtdf_maskl(0xb80c5018, 0xefffffff, 0x10000000) -rtdf_maskl(0xb80c501c, 0xffefffef, 0x00000010) -rtdf_maskl(0xb80c5070, 0xffff0fff, 0x00008000) - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_command_out.txt" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" deleted file mode 100644 index 0206899..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/_hdcp_temp.bin" +++ /dev/null @@ -1 +0,0 @@ -HDCP@ ` \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" deleted file mode 100644 index 517bd3b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/boot1k.img" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" deleted file mode 100644 index 325063f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/download_loader.img" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" deleted file mode 100644 index 41eb614..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/fw.spi" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/keymap.con" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" deleted file mode 100644 index 2004691..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/tempLoader.img" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" deleted file mode 100644 index ab0c180..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/RtkTool_0203/\344\275\277\347\224\250\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,8 +0,0 @@ -硬件请设置为串口模式, 通过TTL接口与VGA连接. - -从编程器的TTL接口通过杜邦线连接 -RXD 连接到VGA 4,13脚 -TXD 连接到VGA 11,14脚 -GND 连接到VGA 的GND脚 - -软件上设定为CH341A的串口端口, 115200波特率 即可操作. \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" deleted file mode 100644 index 3d4a727..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\205\263\344\272\216\346\266\262\346\231\266\347\224\265\350\247\206\347\232\204\345\274\200\346\234\272\346\211\223\345\215\260\344\277\241\346\201\257.doc" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" deleted file mode 100644 index c9f2eb1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/CH341DLL.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" deleted file mode 100644 index 172e463..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTCJTAG.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" deleted file mode 100644 index b2b9f0f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/FTD2XX.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" deleted file mode 100644 index e8d8d04..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\344\275\277\347\224\250\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,17 +0,0 @@ -1. -硬件请设置为编程器模式, 通过24芯片烧写接口与VGA连接. - -从编程器的24烧录座接口通过杜邦线连接 -SCL 6脚 连接到VGA 15脚 -SDA 5脚 连接到VGA 12脚 -GND 4脚 连接到VGA 的GND脚 - -2. -硬件请设置为串口模式, 通过TTL接口与VGA连接. - -从编程器的TTL接口通过杜邦线连接 -RXD 连接到VGA 4,13脚 -TXD 连接到VGA 11,14脚 -GND 连接到VGA 的GND脚 - -软件上设定为CH341A的串口端口, 115200波特率 即可操作. \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" deleted file mode 100644 index 9f8a93f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\210\233\347\273\264/\345\210\233\347\273\264.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" deleted file mode 100644 index 8fcb67a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/CH341DLL.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" deleted file mode 100644 index 9849434..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" deleted file mode 100644 index d3d932c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DLPortIO.sys" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" deleted file mode 100644 index f4a9761..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/DataProc.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" deleted file mode 100644 index dbfea03..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/EasyUSB.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" deleted file mode 100644 index b48710a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" deleted file mode 100644 index 8f44ec1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/FlashPro_Buffer_Setting.jpg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" deleted file mode 100644 index f76b185..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RICE\344\275\277\347\224\250\346\226\271\346\263\225.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" deleted file mode 100644 index 974327c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/2638Flash.cmd" +++ /dev/null @@ -1,18 +0,0 @@ - IsSSTFlash: 0; - spiFlashSize: 0x200000; - spiFlashSectorSize: 0x1000; - spiFlashProto: 0x0; - spiFlashClkL: 0x3; - spiFlashClkH: 0x3; - spiFlashCSH: 0x20; - spiFlashCSHold: 0x2; - spiFlashCSSet: 0x2; - spiFlashReadCmd: 0x3; - spiFlashProgCmd: 0x2; - spiFlashReadStatusCmd: 0x5 ; - spiFlashWriteStatusCmd: 0x1; - spiFlashWriteEnCmd: 0x6; - spiFlashWriteDisCmd: 0x4; - spiFlashPageEraseCmd: 0x20; - spiFlashInProc: 0x1 ; - spiFlashWriteEn: 0x2 ; \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" deleted file mode 100644 index 98d842b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" deleted file mode 100644 index 328eebd..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE.ini" +++ /dev/null @@ -1,65 +0,0 @@ -[BURN_DRAGON] -DRAGON_HDCP_START=0x000ff000 -DRAGON_ROS_START=0x00006000 -[BURN_RTD2638] -TargetBoard=1 -All=C:\Documents and Settings\Administrator\桌面\fw_CMO22LVDS_091016.spi -IsVerify=0 -IsErase=1 -ComboTarget=0 -BurnStartAddress=0x00000000 -LxProtocol=1 -UseCompress=0 -BootLoadVer=2 -LoadType=1 -PreLoadFileName=E:\Project\8R08\code\realtek_20081022\flash.img -ScalerType=0 -logpath=C:\Documents and Settings\Administrator\桌面\aaa.h -[RS232] -COMSelect=4 -BaudRate=8 -DataBits=3 -Parity=0 -Stopbits=0 -HandSharking=0 -Command=1 -[BURN_RTD2880] -Bootloader=0 -Firmware=1 -FS=1 -HDCP=0 -ALL=0 -NJffs2=0 -JumpAddress=bfc000d0 -LoadAddress=80a00000 -PreLoadFileName= -PreLoadFileName1=N:\2885\trunk\linux-2.6\linux.mem -PreLoadFileName2= -PreLoadFileName3= -PreLoadFileName4= -PreLoadFileName5= -[LX_CPU] -LxAddr=b80e2090 -LxCount=5 -LxAddr2=b80e223c -LxCount2=1 -LxAddr3=b80e21c0 -LxAddr4=b80e20e8 -LxCount3=1 -LxCount4=1 -[Panel_PAGE] -dclkLow=200 -dclkHigh=2000 -totalLow=1 -totalHigh=3000 -totalCombo=1 -dclk=65 -htotal=2232 -vtotal=2061 -lastline=1792 -dssEn=0 -dssCombo=15 -Filepath=D:\fjyang\codes\dragon\skyworth\ros\include\panel\cmo_v320b1l01.h -[RTROM] -XFER_PACKET_LENGTH=512 -HDCPKEY_AUTOMATION=0 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" deleted file mode 100644 index 77c0dd9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/RTICE1.ini" +++ /dev/null @@ -1,13 +0,0 @@ -[BURN_DRAGON] -DRAGON_HDCP_START=0x00007000 -DRAGON_ROS_START=0x00006000 -[BURN_RTD2638] -TargetBoard=1 -All= -IsVerify=0 -IsErase=1 -ComboTarget=0 -BurnStartAddress=0x00000000 -[RTROM] -XFER_PACKET_LENGTH=512 -HDCPKEY_AUTOMATION=0 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" deleted file mode 100644 index a2ae632..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/_hdcp_temp.bin" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/RTICE\345\267\245\345\205\267/RTICE/keymap.con" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" deleted file mode 100644 index 3f515a3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/UsbPort.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" deleted file mode 100644 index 634065e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/hmIspPort.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" deleted file mode 100644 index 05495e5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/pflash.fct" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" deleted file mode 100644 index 871aeec..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/sflash.fct" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" deleted file mode 100644 index 8f70fb4..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/CH341\346\266\262\346\231\266\347\224\265\350\247\206\347\203\247\345\206\231\350\275\257\344\273\266/\345\215\216\344\272\232\345\276\256FlashPro_V519_2\344\270\255\346\226\207/\350\275\257\344\273\266\344\275\277\347\224\250\346\225\231\347\250\213.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" deleted file mode 100644 index 2a1e73f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB(24-25)\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" deleted file mode 100644 index c9048ae..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USBXXX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" deleted file mode 100644 index b321577..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/EEPROM FLASH \347\203\247\345\275\225\350\275\257\344\273\266/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250/USB\345\217\24324-25\347\263\273\345\210\227\347\274\226\347\250\213\345\231\250.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" deleted file mode 100644 index 2aa6195..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V480.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" deleted file mode 100644 index ccbd118..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/STC_ISP_V488.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" deleted file mode 100644 index ceae4d1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v1.06-chinese.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" deleted file mode 100644 index e0e1f0a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/STC_ISP\345\215\225\347\211\207\346\234\272-\344\270\262\345\217\243\344\270\213\350\275\275/stc-isp-15xx-v6.15.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" deleted file mode 100644 index d069d61..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/ChipList.mdb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" deleted file mode 100644 index 19fa4e3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/USB-SPI ISPDP V1.0.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" deleted file mode 100644 index 2e89d98..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/USB2SPI ISPDP/\344\275\277\347\224\250\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,19 +0,0 @@ -说明:本程序来源于网络,仅供客户测试使用,不提供程序相关技术支持。 - -本软件适用于YSUMA00-341A系列USB串口转换器通过USB转SPI方式 -对AT89S51,AT89S52,AVR系列单片机进行ISP编程及配置。 - -如果您是第一次配合YSUMA00-341A使用本软件,请先安装YSUMA00-341A的所有驱动。 - -YSUMA00-341A 采用CH341A为主芯片开发,主要完成以下功能 - -USB -> I2C (提供I2C相关软件) -USB -> SPI (本软件支持) -USB -> UART(TTL) (串口助手支持) - -同时有丰富的扩展模块供选择,可实现以下扩展功能 -USB -> RS232 (串口助手) -USB -> RS485 (串口助手) -USB 2425编程器 (24XX,25XX专用编程软件) - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" deleted file mode 100644 index 71588d7..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/USB 2 ISP - \345\215\225\347\211\207\346\234\272\344\270\213\350\275\275\350\275\257\344\273\266/\345\215\225\347\211\207\346\234\272ISP\344\270\213\350\275\275\350\275\257\344\273\266\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,14 +0,0 @@ -1. USB2SPI ISPDP - -将YSUMA01-341A的SPI接口与单片机SPI下载接口对接,片选信号为CS1 -使用于对AT89S51,AT89S52,AVR系列单片机进行ISP编程及配置。 - -2. STC_ISP_V488 - -将YSUMA01-341A的UART( TTL )接口 与 STC 单片机的串口对接 - -RXD - 单片机的 TXD ; TXD - 单片机的 RXD - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" deleted file mode 100644 index 9954e7f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/Commix.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" deleted file mode 100644 index efbc27f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/UartAssist.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" deleted file mode 100644 index e66ec05..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\345\267\245\345\205\267\350\275\257\344\273\266/\344\270\262\345\217\243\350\260\203\350\257\225\350\275\257\344\273\266/sscom32.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" deleted file mode 100644 index 79c90a5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS1.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" deleted file mode 100644 index 22ef59c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/CH341DS2.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" deleted file mode 100644 index 3cfff96..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" deleted file mode 100644 index 0ddac7c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/__MACOSX/._ch34xInstall.pkg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" deleted file mode 100644 index 8e82c03..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/ch34xInstall.pkg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" deleted file mode 100644 index 8b6d716..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/CH341SER_MAC/readme.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" deleted file mode 100644 index 25aab95..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/CH341SER_LINUX.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" deleted file mode 100644 index 2293a85..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/Makefile" +++ /dev/null @@ -1,41 +0,0 @@ - - -all: module - - - -install: module - mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/usb/ - cp -f ./ch34x.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/ - mkdir -p /lib/modules/$(shell uname -r)/misc/ - cp -f ./ch34x.ko /lib/modules/$(shell uname -r)/misc/ - depmod -a - -ifneq ($(KERNELRELEASE),) -obj-m := ch34x.o -else -KDIR := /lib/modules/$(shell uname -r)/build -PWD := $(shell pwd) - -module: - $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules - - - - -clean: clean_local -# $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean - -endif - -clean_local: - rm -f *~ - rm -f *.o - rm -rf ./.tmp_versions - rm -f ch34x.mod* - rm -f .ch34x* - rm -f ch34x.ko - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" deleted file mode 100644 index d116d1f..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/README.txt" +++ /dev/null @@ -1,13 +0,0 @@ -ch34x linux驱动内核2.6.18使用说明 -驱动安装 -(1)手工安装驱动 - a.获得驱动:你可以通过E-mail方式请求驱动,发送邮件到tech@wch.cn,请务必注明驱动内核版本。 - b.加载usbserial.ko - insmod usbserial.ko - c.加载ch34x.ko - insmod ch34x.ko - d.如果安装成功会在/dev目录下多出个ttyUSB0设备,理论上最多可支持255个设备。依次为ttyUSB1,ttyUSB2... -(2)脚本安装驱动 - #!/bin/sh - insmod /root/my_driver/ch34x/usbserial.ko - insmod /root/my_driver/ch34x/ch34x.ko diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" deleted file mode 100644 index bdc6867..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.c" +++ /dev/null @@ -1,1048 +0,0 @@ -/* - * CH34x USB to serial adaptor driver -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Version Information - */ -#define DRIVER_VERSION "v0.1" -#define DRIVER_DESC "NanJing QinHeng CH34x USB to serial adaptor driver" - -#define ch34x_VENDOR_ID_1 0x4348 -#define ch34x_VENDOR_ID_2 0x1a86 -#define ch34x_PRODUCT_ID 0x5523 - -static int debug; - -#define ch34x_CLOSING_WAIT (30*HZ) - -#define ch34x_BUF_SIZE 1024 -#define ch34x_TMP_BUF_SIZE 1024 - -static DECLARE_MUTEX(ch34x_tmp_buf_sem); - -struct ch34x_buf { - unsigned int buf_size; - char *buf_buf; - char *buf_get; - char *buf_put; -}; - -static struct usb_device_id id_table [] = { - { USB_DEVICE(ch34x_VENDOR_ID_1, ch34x_PRODUCT_ID) }, - { USB_DEVICE(ch34x_VENDOR_ID_2, ch34x_PRODUCT_ID) }, - { } /* Terminating entry */ -}; - -MODULE_DEVICE_TABLE (usb, id_table); - -static struct usb_driver ch34x_driver = { - .name = "ch34x", - .probe = usb_serial_probe, - .disconnect = usb_serial_disconnect, - .id_table = id_table, - .no_dynamic_id=1, -}; - -#define SET_LINE_REQUEST_TYPE 0x21 -#define SET_LINE_REQUEST 0x20 - -#define SET_CONTROL_REQUEST_TYPE 0x21 -#define SET_CONTROL_REQUEST 0x22 -#define CONTROL_DTR 0x01 -#define CONTROL_RTS 0x02 - -#define BREAK_REQUEST_TYPE 0x21 -#define BREAK_REQUEST 0x23 -#define BREAK_ON 0xffff -#define BREAK_OFF 0x0000 - -#define GET_LINE_REQUEST_TYPE 0xa1 -#define GET_LINE_REQUEST 0x21 - -#define VENDOR_WRITE_REQUEST_TYPE 0x40 -#define VENDOR_WRITE_REQUEST 0x01 - -#define VENDOR_READ_REQUEST_TYPE 0xc0 -#define VENDOR_READ_REQUEST 0x01 - -#define UART_STATE 0x08 -#define UART_STATE_TRANSIENT_MASK 0x74 -#define UART_DCD 0x01 -#define UART_DSR 0x02 -#define UART_BREAK_ERROR 0x04 -#define UART_RING 0x08 -#define UART_FRAME_ERROR 0x10 -#define UART_PARITY_ERROR 0x20 -#define UART_OVERRUN_ERROR 0x40 -#define UART_CTS 0x80 - -/* function prototypes for a ch34x serial converter */ -static int ch34x_open (struct usb_serial_port *port, struct file *filp); -static void ch34x_close (struct usb_serial_port *port, struct file *filp); -static void ch34x_set_termios (struct usb_serial_port *port,struct termios *old); -static int ch34x_ioctl (struct usb_serial_port *port, struct file *file,unsigned int cmd, unsigned long arg); -static void ch34x_read_int_callback (struct urb *urb, struct pt_regs *regs); -static void ch34x_read_bulk_callback (struct urb *urb, struct pt_regs *regs); -static void ch34x_write_bulk_callback (struct urb *urb, struct pt_regs *regs); -static int ch34x_write (struct usb_serial_port *port,const unsigned char *buf, int count); -static void ch34x_send (struct usb_serial_port *port); -static int ch34x_write_room(struct usb_serial_port *port); -static int ch34x_chars_in_buffer(struct usb_serial_port *port); -static void ch34x_break_ctl(struct usb_serial_port *port,int break_state); -static int ch34x_tiocmget (struct usb_serial_port *port, struct file *file); -static int ch34x_tiocmset (struct usb_serial_port *port, struct file *file,unsigned int set, unsigned int clear); -static int ch34x_startup (struct usb_serial *serial); -static void ch34x_shutdown (struct usb_serial *serial); -static struct ch34x_buf *ch34x_buf_alloc(unsigned int size); -static void ch34x_buf_free(struct ch34x_buf *pb); -static void ch34x_buf_clear(struct ch34x_buf *pb); -static unsigned int ch34x_buf_data_avail(struct ch34x_buf *pb); -static unsigned int ch34x_buf_space_avail(struct ch34x_buf *pb); -static unsigned int ch34x_buf_put(struct ch34x_buf *pb, const char *buf,unsigned int count); -static unsigned int ch34x_buf_get(struct ch34x_buf *pb, char *buf,unsigned int count); - -static struct usb_serial_driver ch34x_device={ - .driver={ - .owner = THIS_MODULE, - .name = "ch34x", - }, - .id_table = id_table, - .num_interrupt_in = NUM_DONT_CARE, - .num_bulk_in = 1, - .num_bulk_out = 1, - .num_ports = 1, - .open = ch34x_open, - .close = ch34x_close, - .write = ch34x_write, - .ioctl = ch34x_ioctl, - .break_ctl = ch34x_break_ctl, - .set_termios = ch34x_set_termios, - .tiocmget = ch34x_tiocmget, - .tiocmset = ch34x_tiocmset, - .read_bulk_callback = ch34x_read_bulk_callback, - .read_int_callback = ch34x_read_int_callback, - .write_bulk_callback = ch34x_write_bulk_callback, - .write_room = ch34x_write_room, - .chars_in_buffer = ch34x_chars_in_buffer, - .attach = ch34x_startup, - .shutdown = ch34x_shutdown, -}; - - -struct ch34x_private { - spinlock_t lock; - struct ch34x_buf *buf; - int write_urb_in_use; - wait_queue_head_t delta_msr_wait; - u8 line_control; - u8 line_status; - u8 termios_initialized; -}; - - -static int ch34x_startup (struct usb_serial *serial) -{ - struct ch34x_private *priv; - int i; - dbg("ch34x_startup\n"); - dbg("serial->num_ports=%d\n",serial->num_ports); - - for (i = 0; i < serial->num_ports; ++i) - { - priv = kmalloc (sizeof (struct ch34x_private), GFP_KERNEL); - if (!priv) - goto cleanup; - memset (priv, 0x00, sizeof (struct ch34x_private)); - spin_lock_init(&priv->lock); - priv->buf = ch34x_buf_alloc(ch34x_BUF_SIZE); - if (priv->buf == NULL) - { - kfree(priv); - goto cleanup; - } - init_waitqueue_head(&priv->delta_msr_wait); - usb_set_serial_port_data(serial->port[i], priv); - } - return 0; - -cleanup: - for (--i; i>=0; --i) - { - priv = usb_get_serial_port_data(serial->port[i]); - ch34x_buf_free(priv->buf); - kfree(priv); - usb_set_serial_port_data(serial->port[i], NULL); - } - return -ENOMEM; -} - -static int set_control_lines (struct usb_device *dev, u8 value) -{ - int retval; - - retval = usb_control_msg (dev, usb_sndctrlpipe (dev, 0), - SET_CONTROL_REQUEST, SET_CONTROL_REQUEST_TYPE, - value, 0, NULL, 0, 100); - dbg("%s - value = %d, retval = %d", __FUNCTION__, value, retval); - return retval; -} - -static int ch34x_write (struct usb_serial_port *port, const unsigned char *buf, int count) -{ - - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - dbg("ch34x_write\n"); - dbg("%s - port %d, %d bytes", __FUNCTION__, port->number, count); - - if (!count) - return count; - - spin_lock_irqsave(&priv->lock, flags); - count = ch34x_buf_put(priv->buf, buf, count); - spin_unlock_irqrestore(&priv->lock, flags); - - ch34x_send(port); - - return count; -} - -static void ch34x_send(struct usb_serial_port *port) -{ - int count, result; - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - - dbg("%s - port %d", __FUNCTION__, port->number); - - spin_lock_irqsave(&priv->lock, flags); - - if (priv->write_urb_in_use) - { - spin_unlock_irqrestore(&priv->lock, flags); - return; - } - - count = ch34x_buf_get(priv->buf, port->write_urb->transfer_buffer,port->bulk_out_size); - - if (count == 0) - { - spin_unlock_irqrestore(&priv->lock, flags); - return; - } - - priv->write_urb_in_use = 1; - - spin_unlock_irqrestore(&priv->lock, flags); - - usb_serial_debug_data(debug, &port->dev, __FUNCTION__, count, port->write_urb->transfer_buffer); - - port->write_urb->transfer_buffer_length = count; - port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb, GFP_ATOMIC); - if (result) - { - dev_err(&port->dev, "%s - failed submitting write urb, error %d\n", __FUNCTION__, result); - priv->write_urb_in_use = 0; - // TODO: reschedule ch34x_send - } - - schedule_work(&port->work); -} - -static int ch34x_write_room(struct usb_serial_port *port) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - int room = 0; - unsigned long flags; - - dbg("%s - port %d", __FUNCTION__, port->number); - - spin_lock_irqsave(&priv->lock, flags); - room = ch34x_buf_space_avail(priv->buf); - spin_unlock_irqrestore(&priv->lock, flags); - - dbg("%s - returns %d", __FUNCTION__, room); - return room; -} - - -static int ch34x_chars_in_buffer(struct usb_serial_port *port) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - int chars = 0; - unsigned long flags; - - dbg("%s - port %d", __FUNCTION__, port->number); - - spin_lock_irqsave(&priv->lock, flags); - chars = ch34x_buf_data_avail(priv->buf); - spin_unlock_irqrestore(&priv->lock, flags); - - dbg("%s - returns %d", __FUNCTION__, chars); - return chars; -} - - -static int SetBaudrate( unsigned int mBaudRate, struct usb_serial_port *port) -{ - - struct usb_serial *serial = port->serial; - unsigned char mTimerCtrl, mTimerCount; - unsigned short mValue, mIndex; - int i; - mValue = 0; mIndex = 0; - dbg("SetBaudrate.\n"); - dbg ("0x40:1:0:1 %d", mBaudRate); - switch (mBaudRate) - { - case 2225: { mTimerCtrl = 0; mTimerCount = 0x16; break; }//50 - case 2226: { mTimerCtrl = 0; mTimerCount = 0x64; break; }//75 - case 2227: { mTimerCtrl = 0; mTimerCount = 0x96; break; }//110 - case 2228: { mTimerCtrl = 0; mTimerCount = 0xa9; break; }//135 - case 2229: { mTimerCtrl = 0; mTimerCount = 0xb2; break; }//150 - case 2231: { mTimerCtrl = 0; mTimerCount = 0xd9; break; }//300 - case 2232: { mTimerCtrl = 1; mTimerCount = 0x64; break; }//600 - case 2233: { mTimerCtrl = 1; mTimerCount = 0xb2; break; }//1200 - case 2234: { mTimerCtrl = 1; mTimerCount = 0xcc; break; }//1800 - case 2235: { mTimerCtrl = 1; mTimerCount = 0xd9; break; }//2400 - case 2236: { mTimerCtrl = 2; mTimerCount = 0x64; break; }//4800 - case 2237: { mTimerCtrl = 2; mTimerCount = 0xb2; break; }//9600 - case 2238: { mTimerCtrl = 2; mTimerCount = 0xd9; break; }//19200 - case 2239: { mTimerCtrl = 3; mTimerCount = 0x64; break; }//38400 - case 6321: { mTimerCtrl = 3; mTimerCount = 0x98; break; }//57600 - case 6322: { mTimerCtrl = 3; mTimerCount = 0xcc; break; }//115200 - case 6323: { mTimerCtrl = 3; mTimerCount = 0xe6; break; }//230400 - case 6324: { mTimerCtrl = 3; mTimerCount = 0xf3; break; }//460800 - case 6325: { mTimerCtrl = 3; mTimerCount = 0xf4; break; }//500000 - case 6326: - case 6327: { mTimerCtrl = 7; mTimerCount = 0xf3; break; }//921600 - case 6328: { mTimerCtrl = 3; mTimerCount = 0xfa; break; }//1000000 - case 6329: - case 6330: - case 6331: { mTimerCtrl = 3; mTimerCount = 0xfd; break; }//2000000 - case 6332: - case 6333: { mTimerCtrl=3;mTimerCount=0xfe; break; }//3000000 - default: { return( -EPROTO ); break; } - } - mValue |= 0x04; mIndex |= mTimerCtrl; - mValue |= 0x08; mIndex |= (unsigned short)mTimerCount << 8; - i = usb_control_msg (serial->dev, usb_sndctrlpipe (serial->dev,0), - 0xA1,0x40,mValue,mIndex,NULL,0,100); - dbg ("0x40:1:0:1 %d", i); - return 0; -} - - -static void ch34x_set_termios (struct usb_serial_port *port, struct termios *old_termios) -{ - - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - unsigned int cflag; - dbg("ch34x_set_termios\n"); - dbg("%s - port %d", __FUNCTION__, port->number); - - if ((!port->tty) || (!port->tty->termios)) - { - dbg("%s - no tty structures", __FUNCTION__); - return; - } - - spin_lock_irqsave(&priv->lock, flags); - if (!priv->termios_initialized) - { - *(port->tty->termios) = tty_std_termios; - port->tty->termios->c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; - priv->termios_initialized = 1; - } - spin_unlock_irqrestore(&priv->lock, flags); - - cflag = port->tty->termios->c_cflag; - /* check that they really want us to change something */ - if (old_termios) - { - if ((cflag == old_termios->c_cflag) && - (RELEVANT_IFLAG(port->tty->termios->c_iflag) == RELEVANT_IFLAG(old_termios->c_iflag))) - { - dbg("%s - nothing to change...", __FUNCTION__); - return; - } - } - SetBaudrate(cflag,port); -} - -static int ch34x_open (struct usb_serial_port *port, struct file *filp) -{ - struct termios tmp_termios; - struct usb_serial *serial = port->serial; - int result; - dbg("ch34x_open!\n"); - dbg("%s - port %d", __FUNCTION__, port->number); - - usb_clear_halt(serial->dev, port->write_urb->pipe); - usb_clear_halt(serial->dev, port->read_urb->pipe); - - if (port->tty) - { - ch34x_set_termios (port, &tmp_termios); - } - - //FIXME: need to assert RTS and DTR if CRTSCTS off - - dbg("%s - submitting read urb", __FUNCTION__); - port->read_urb->dev = serial->dev; - result = usb_submit_urb (port->read_urb, GFP_KERNEL); - if (result) - { - dev_err(&port->dev, "%s - failed submitting read urb, error %d\n", __FUNCTION__, result); - ch34x_close (port, NULL); - return -EPROTO; - } - - dbg("%s - submitting interrupt urb", __FUNCTION__); - port->interrupt_in_urb->dev = serial->dev; - result = usb_submit_urb (port->interrupt_in_urb, GFP_KERNEL); - if (result) - { - dev_err(&port->dev, "%s - failed submitting interrupt urb, error %d\n", __FUNCTION__, result); - ch34x_close (port, NULL); - return -EPROTO; - } - - return 0; -} - -static void ch34x_close (struct usb_serial_port *port, struct file *filp) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - unsigned int c_cflag; - int bps; - long timeout; - wait_queue_t wait; - dbg("ch34x_close\n"); - dbg("%s - port %d", __FUNCTION__, port->number); - - /* wait for data to drain from the buffer */ - spin_lock_irqsave(&priv->lock, flags); - timeout = ch34x_CLOSING_WAIT; - init_waitqueue_entry(&wait, current); - add_wait_queue(&port->tty->write_wait, &wait); - for (;;) - { - set_current_state(TASK_INTERRUPTIBLE); - if (ch34x_buf_data_avail(priv->buf) == 0 - || timeout == 0 || signal_pending(current) - || !usb_get_intfdata(port->serial->interface)) /* disconnect */ - break; - spin_unlock_irqrestore(&priv->lock, flags); - timeout = schedule_timeout(timeout); - spin_lock_irqsave(&priv->lock, flags); - } - set_current_state(TASK_RUNNING); - remove_wait_queue(&port->tty->write_wait, &wait); - /* clear out any remaining data in the buffer */ - ch34x_buf_clear(priv->buf); - spin_unlock_irqrestore(&priv->lock, flags); - - /* wait for characters to drain from the device */ - /* (this is long enough for the entire 256 byte */ - /* ch34x hardware buffer to drain with no flow */ - /* control for data rates of 1200 bps or more, */ - /* for lower rates we should really know how much */ - /* data is in the buffer to compute a delay */ - /* that is not unnecessarily long) */ - bps = tty_get_baud_rate(port->tty); - if (bps > 1200) - timeout = max((HZ*2560)/bps,HZ/10); - else - timeout = 2*HZ; - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(timeout); - - /* shutdown our urbs */ - dbg("%s - shutting down urbs", __FUNCTION__); - usb_kill_urb(port->write_urb); - usb_kill_urb(port->read_urb); - usb_kill_urb(port->interrupt_in_urb); - - if (port->tty) - { - c_cflag = port->tty->termios->c_cflag; - if (c_cflag & HUPCL) - { - /* drop DTR and RTS */ - spin_lock_irqsave(&priv->lock, flags); - priv->line_control = 0; - spin_unlock_irqrestore (&priv->lock, flags); - set_control_lines (port->serial->dev, 0); - } - } -} - - -static int ch34x_tiocmset (struct usb_serial_port *port, struct file *file,unsigned int set, unsigned int clear) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - u8 control; - - spin_lock_irqsave (&priv->lock, flags); - if (set & TIOCM_RTS) - priv->line_control |= CONTROL_RTS; - if (set & TIOCM_DTR) - priv->line_control |= CONTROL_DTR; - if (clear & TIOCM_RTS) - priv->line_control &= ~CONTROL_RTS; - if (clear & TIOCM_DTR) - priv->line_control &= ~CONTROL_DTR; - control = priv->line_control; - spin_unlock_irqrestore (&priv->lock, flags); - - return set_control_lines (port->serial->dev, control); -} - -static int ch34x_tiocmget (struct usb_serial_port *port, struct file *file) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - unsigned int mcr; - unsigned int status; - unsigned int result; - - dbg("%s (%d)", __FUNCTION__, port->number); - - spin_lock_irqsave (&priv->lock, flags); - mcr = priv->line_control; - status = priv->line_status; - spin_unlock_irqrestore (&priv->lock, flags); - - result = ((mcr & CONTROL_DTR) ? TIOCM_DTR : 0) - | ((mcr & CONTROL_RTS) ? TIOCM_RTS : 0) - | ((status & UART_CTS) ? TIOCM_CTS : 0) - | ((status & UART_DSR) ? TIOCM_DSR : 0) - | ((status & UART_RING) ? TIOCM_RI : 0) - | ((status & UART_DCD) ? TIOCM_CD : 0); - - dbg("%s - result = %x", __FUNCTION__, result); - - return result; -} - - -static int wait_modem_info(struct usb_serial_port *port, unsigned int arg) -{ - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned long flags; - unsigned int prevstatus; - unsigned int status; - unsigned int changed; - - spin_lock_irqsave (&priv->lock, flags); - prevstatus = priv->line_status; - spin_unlock_irqrestore (&priv->lock, flags); - - while (1) - { - interruptible_sleep_on(&priv->delta_msr_wait); - /* see if a signal did it */ - if (signal_pending(current)) - return -ERESTARTSYS; - - spin_lock_irqsave (&priv->lock, flags); - status = priv->line_status; - spin_unlock_irqrestore (&priv->lock, flags); - - changed=prevstatus^status; - - if (((arg & TIOCM_RNG) && (changed & UART_RING)) || - ((arg & TIOCM_DSR) && (changed & UART_DSR)) || - ((arg & TIOCM_CD) && (changed & UART_DCD)) || - ((arg & TIOCM_CTS) && (changed & UART_CTS)) ) { - return 0; - } - prevstatus = status; - } - /* NOTREACHED */ - return 0; -} - - -static int ch34x_ioctl (struct usb_serial_port *port, struct file *file, unsigned int cmd, unsigned long arg) -{ - dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd); - - switch (cmd) - { - case TIOCMIWAIT: - dbg("%s (%d) TIOCMIWAIT", __FUNCTION__, port->number); - return wait_modem_info(port, arg); - - default: - dbg("%s not supported = 0x%04x", __FUNCTION__, cmd); - break; - } - - return -ENOIOCTLCMD; -} - - -static void ch34x_break_ctl (struct usb_serial_port *port, int break_state) -{ - struct usb_serial *serial = port->serial; - u16 state; - int result; - - dbg("%s - port %d", __FUNCTION__, port->number); - - if (break_state == 0) - state = BREAK_OFF; - else - state = BREAK_ON; - dbg("%s - turning break %s", __FUNCTION__, state==BREAK_OFF ? "off" : "on"); - - result = usb_control_msg (serial->dev, usb_sndctrlpipe (serial->dev, 0), - BREAK_REQUEST, BREAK_REQUEST_TYPE, state, - 0, NULL, 0, 100); - if (result) - dbg("%s - error sending break = %d", __FUNCTION__, result); -} - - - -static void ch34x_shutdown (struct usb_serial *serial) -{ - int i; - struct ch34x_private *priv; - dbg("ch34x_shutdown\n"); - dbg("%s", __FUNCTION__); - - for (i = 0; i < serial->num_ports; ++i) - { - priv = usb_get_serial_port_data(serial->port[i]); - if (priv) - { - ch34x_buf_free(priv->buf); - kfree(priv); - usb_set_serial_port_data(serial->port[i], NULL); - } - } -} - - -static void ch34x_read_int_callback (struct urb *urb, struct pt_regs *regs) -{ - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - struct ch34x_private *priv = usb_get_serial_port_data(port); - unsigned char *data = urb->transfer_buffer; - unsigned long flags; - int status; - u8 uart_state; - - dbg("%s (%d)", __FUNCTION__, port->number); - - switch (urb->status) - { - case 0: - /* success */ - break; - case -ECONNRESET: - case -ENOENT: - case -ESHUTDOWN: - /* this urb is terminated, clean up */ - dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status); - return; - default: - dbg("%s - nonzero urb status received: %d", __FUNCTION__, urb->status); - goto exit; - } - - - usb_serial_debug_data(debug, &port->dev, __FUNCTION__, urb->actual_length, urb->transfer_buffer); - - if (urb->actual_length < UART_STATE) - goto exit; - - /* Save off the uart status for others to look at */ - uart_state = data[UART_STATE]; - spin_lock_irqsave(&priv->lock, flags); - uart_state |= (priv->line_status & UART_STATE_TRANSIENT_MASK); - priv->line_status = uart_state; - spin_unlock_irqrestore(&priv->lock, flags); - -exit: - status = usb_submit_urb (urb, GFP_ATOMIC); - if (status) - dev_err(&urb->dev->dev, "%s - usb_submit_urb failed with result %d\n", - __FUNCTION__, status); -} - - -static void ch34x_read_bulk_callback (struct urb *urb, struct pt_regs *regs) -{ - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - struct ch34x_private *priv = usb_get_serial_port_data(port); - struct tty_struct *tty; - unsigned char *data = urb->transfer_buffer; - unsigned long flags; - int i; - int result; - u8 status; - char tty_flag; - - dbg("%s - port %d", __FUNCTION__, port->number); - - if (urb->status) - { - dbg("%s - urb->status = %d", __FUNCTION__, urb->status); - if (!port->open_count) - { - dbg("%s - port is closed, exiting.", __FUNCTION__); - return; - } - if (urb->status == -EPROTO) - { - /* ch34x mysteriously fails with -EPROTO reschedule the read */ - dbg("%s - caught -EPROTO, resubmitting the urb", __FUNCTION__); - urb->status = 0; - urb->dev = port->serial->dev; - result = usb_submit_urb(urb, GFP_ATOMIC); - if (result) - dev_err(&urb->dev->dev, "%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result); - return; - } - dbg("%s - unable to handle the error, exiting.", __FUNCTION__); - return; - } - - usb_serial_debug_data(debug, &port->dev, __FUNCTION__, urb->actual_length, data); - - /* get tty_flag from status */ - tty_flag = TTY_NORMAL; - - spin_lock_irqsave(&priv->lock, flags); - status = priv->line_status; - priv->line_status &= ~UART_STATE_TRANSIENT_MASK; - spin_unlock_irqrestore(&priv->lock, flags); - wake_up_interruptible (&priv->delta_msr_wait); - - /* break takes precedence over parity, */ - /* which takes precedence over framing errors */ - if (status & UART_BREAK_ERROR ) - tty_flag = TTY_BREAK; - else if (status & UART_PARITY_ERROR) - tty_flag = TTY_PARITY; - else if (status & UART_FRAME_ERROR) - tty_flag = TTY_FRAME; - dbg("%s - tty_flag = %d", __FUNCTION__, tty_flag); - - tty = port->tty; - if (tty && urb->actual_length) { - /* overrun is special, not associated with a char */ - if (status & UART_OVERRUN_ERROR) - tty_insert_flip_char(tty, 0, TTY_OVERRUN); - - for (i = 0; i < urb->actual_length; ++i) { - // if (tty->flip.count >= TTY_FLIPBUF_SIZE) { - // tty_flip_buffer_push(tty); - // } - tty_insert_flip_char (tty, data[i], tty_flag); - } - tty_flip_buffer_push (tty); - } - - /* Schedule the next read _if_ we are still open */ - if (port->open_count) { - urb->dev = port->serial->dev; - result = usb_submit_urb(urb, GFP_ATOMIC); - if (result) - dev_err(&urb->dev->dev, "%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result); - } - - return; -} - - - -static void ch34x_write_bulk_callback (struct urb *urb, struct pt_regs *regs) -{ - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - struct ch34x_private *priv = usb_get_serial_port_data(port); - int result; - - dbg("%s - port %d", __FUNCTION__, port->number); - - switch (urb->status) - { - case 0: - /* success */ - break; - case -ECONNRESET: - case -ENOENT: - case -ESHUTDOWN: - /* this urb is terminated, clean up */ - dbg("%s - urb shutting down with status: %d", __FUNCTION__, urb->status); - priv->write_urb_in_use = 0; - return; - default: - /* error in the urb, so we have to resubmit it */ - dbg("%s - Overflow in write", __FUNCTION__); - dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); - port->write_urb->transfer_buffer_length = 1; - port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb, GFP_ATOMIC); - if (result) - dev_err(&urb->dev->dev, "%s - failed resubmitting write urb, error %d\n", __FUNCTION__, result); - else - return; - } - - priv->write_urb_in_use = 0; - - /* send any buffered data */ - ch34x_send(port); -} - - -/* - * ch34x_buf_alloc - * - * Allocate a circular buffer and all associated memory. - */ - -static struct ch34x_buf *ch34x_buf_alloc(unsigned int size) -{ - - struct ch34x_buf *pb; - if (size == 0) - return NULL; - pb = (struct ch34x_buf *)kmalloc(sizeof(struct ch34x_buf), GFP_KERNEL); - if (pb == NULL) - return NULL; - pb->buf_buf = kmalloc(size, GFP_KERNEL); - if (pb->buf_buf == NULL) - { - kfree(pb); - return NULL; - } - pb->buf_size = size; - pb->buf_get = pb->buf_put = pb->buf_buf; - return pb; -} - - -/* - * ch34x_buf_free - * - * Free the buffer and all associated memory. - */ - -static void ch34x_buf_free(struct ch34x_buf *pb) -{ - if (pb != NULL) - { - if (pb->buf_buf != NULL) - kfree(pb->buf_buf); - kfree(pb); - } -} - - -/* - * ch34x_buf_clear - * - * Clear out all data in the circular buffer. - */ - -static void ch34x_buf_clear(struct ch34x_buf *pb) -{ - if (pb != NULL) - pb->buf_get = pb->buf_put; - /* equivalent to a get of all data available */ -} - - -/* - * ch34x_buf_data_avail - * - * Return the number of bytes of data available in the circular - * buffer. - */ - -static unsigned int ch34x_buf_data_avail(struct ch34x_buf *pb) -{ - if (pb != NULL) - return ((pb->buf_size + pb->buf_put - pb->buf_get) % pb->buf_size); - else - return 0; -} - - -/* - * ch34x_buf_space_avail - * - * Return the number of bytes of space available in the circular - * buffer. - */ - -static unsigned int ch34x_buf_space_avail(struct ch34x_buf *pb) -{ - if (pb != NULL) - return ((pb->buf_size + pb->buf_get - pb->buf_put - 1) % pb->buf_size); - else - return 0; -} - - -/* - * ch34x_buf_put - * - * Copy data data from a user buffer and put it into the circular buffer. - * Restrict to the amount of space available. - * - * Return the number of bytes copied. - */ - -static unsigned int ch34x_buf_put(struct ch34x_buf *pb, const char *buf, unsigned int count) -{ - - unsigned int len; - if (pb == NULL) - return 0; - - len = ch34x_buf_space_avail(pb); - dbg("len=%d\n",len); - if (count > len) - count = len; - - if (count == 0) - return 0; - - len = pb->buf_buf + pb->buf_size - pb->buf_put; - if (count > len) - { - memcpy(pb->buf_put, buf, len); - memcpy(pb->buf_buf, buf+len, count - len); - pb->buf_put = pb->buf_buf + count - len; - } - else - { - memcpy(pb->buf_put, buf, count); - if (count < len) - pb->buf_put += count; - else /* count == len */ - pb->buf_put = pb->buf_buf; - } - - return count; - -} - - -/* - * ch34x_buf_get - * - * Get data from the circular buffer and copy to the given buffer. - * Restrict to the amount of data available. - * - * Return the number of bytes copied. - */ - -static unsigned int ch34x_buf_get(struct ch34x_buf *pb, char *buf,unsigned int count) -{ - unsigned int len; - if (pb == NULL) - return 0; - len = ch34x_buf_data_avail(pb); - if (count > len) - count = len; - if (count == 0) - return 0; - len = pb->buf_buf + pb->buf_size - pb->buf_get; - if (count > len) - { - memcpy(buf, pb->buf_get, len); - memcpy(buf+len, pb->buf_buf, count - len); - pb->buf_get = pb->buf_buf + count - len; - } - else - { - memcpy(buf, pb->buf_get, count); - if (count < len) - pb->buf_get += count; - else /* count == len */ - pb->buf_get = pb->buf_buf; - } - return count; -} - -//加载驱动 -static int __init ch34x_init (void) -{ - int retval; - retval = usb_serial_register(&ch34x_device);//注册设备,成功返回0 - if (retval) - { - dbg("%s - failed usb_register_device\n",__FUNCTION__); - goto failed_usb_serial_register; - } - else - { - dbg("%s - success usb_register_device\n",__FUNCTION__); - retval = usb_register(&ch34x_driver);//注册驱动,成功返回0 - if (retval) - { - dbg("%s - failed usb_register_driver\n",__FUNCTION__); - goto failed_usb_register; - } - else - { - dbg("%s - success usb_register_driver\n",__FUNCTION__); - info(DRIVER_DESC " " DRIVER_VERSION); - } - } - return 0; -failed_usb_register: - usb_serial_deregister(&ch34x_device); -failed_usb_serial_register: - return retval; -} - - -//卸载驱动 -static void __exit ch34x_exit (void) -{ - dbg("%s - ch34x_exit\n",__FUNCTION__); - usb_deregister (&ch34x_driver); - usb_serial_deregister (&ch34x_device); -} - -//加载模块 -module_init(ch34x_init); -//卸载模块 -module_exit(ch34x_exit); - -MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_VERSION(DRIVER_VERSION); -MODULE_LICENSE("GPL"); - -module_param(debug, bool, S_IRUGO | S_IWUSR); -MODULE_PARM_DESC(debug, "Debug enabled or not"); - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" deleted file mode 100644 index 5a9bd8d..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Fedora6/ch34x.ko" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" deleted file mode 100644 index 1063132..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ForAndroid.zip" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" deleted file mode 100644 index fca703c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/Makefile" +++ /dev/null @@ -1,83 +0,0 @@ -# USB-Serial Makefile -# -# USAGE: -# To install driver - -# make inst (The Makefile will check the module and compile and link it automatically. It will also remove -# the loaded USB-Serial driver) -# -# To uninstall driver - -# make uninst -# -# To uninstall all drivers (including base driver) - -# make uninst_all -# -# To remove module (*.o) files - -# make clean -# - -KINCLUDES=/usr/src/linux-2.4/include -DRVINCLUDES=/usr/src/linux-2.4/drivers/usb/serial - -# uncomment line below if you have SMP -#SMPFLAGS= -D__SMP__ -DCONFIG_SMP=1 - -# Unless you have a 386/486, you shouldn't need -# to change anything below here... - -# CPUFLAGS= -DCPU=586 -march=i586 -MODULE= ch34x -BASE_MODULE= usbserial -CC= gcc -CPPFLAGS= -D__KERNEL__ -I$(KINCLUDES) -I$(DRVINCLUDES) -MODFLAGS= -DMODULE -KERNFLAGS= $(CPPFLAGS) $(CPUFLAGS) $(SMPFLAGS) \ - -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer \ - -fno-strict-aliasing -fno-common -Wno-unused -# EXTRA_CFLAGS= -DEXPORT_SYMTAB -# DBGCFLAGS= -DDEBUG -DCONFIG_USB_SERIAL_DEBUG -CFLAGS= $(KERNFLAGS) $(DBGCFLAGS) $(MODFLAGS) - -RELVER= $(shell uname -r) - -all:: $(MODULE).o - -$(MODULE).o: $(MODULE).c - $(CC) $(CFLAGS) -c $< - -.PHONY: inst, uninst, uninst_all, clean - -inst: $(MODULE).o -ifneq (,$(findstring $(MODULE),$(shell lsmod | grep $(MODULE)))) # if module was already loaded - rmmod $(MODULE) - insmod ./$(MODULE).o -else -ifeq (,$(findstring $(BASE_MODULE),$(shell lsmod | grep $(BASE_MODULE)))) # if there is no base module - insmod /lib/modules/$(RELVER)/kernel/drivers/usb/serial/$(BASE_MODULE).o -endif - insmod ./$(MODULE).o -endif - @echo - @echo ">> Please unplug and plug the cable if it is already plugged-in. <<" - @echo - -uninst: -ifneq (,$(findstring $(MODULE),$(shell lsmod | grep $(MODULE)))) # if module was loaded - rmmod $(MODULE) -endif - @echo - @echo ">> The USB-Serial driver is removed! <<" - @echo - -uninst_all: -ifneq (,$(findstring $(MODULE),$(shell lsmod | grep $(MODULE)))) # if module was loaded - rmmod $(MODULE) -endif -ifneq (,$(findstring $(BASE_MODULE),$(shell lsmod | grep $(BASE_MODULE)))) # if base module was loaded - rmmod $(BASE_MODULE) -endif - @echo - @echo ">> The USB-Serial and base driver are removed! <<" - @echo - -clean: - rm -f *.o diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" deleted file mode 100644 index a458368..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ReadMe.txt" +++ /dev/null @@ -1,12 +0,0 @@ -To install driver - - make inst (The Makefile will check the module and compile and link it automatically. It will also remove - the loaded USB-Serial driver) - -To uninstall driver - - make uninst - -To uninstall all drivers (including base driver) - - make uninst_all - -To remove module (*.o) files - - make clean diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" deleted file mode 100644 index 9f3169a..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/Redhat9/ch34x.c" +++ /dev/null @@ -1,528 +0,0 @@ -/* - ch34x USB to serial adaptor driver - http://www.wch.cn - http://www.winchiphead.cn -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef CONFIG_USB_SERIAL_DEBUG - static int debug=1; -#else - static int debug; -#endif - -#include "usb-serial.h" - -/* -* Version Information -*/ -#define DRIVER_VERSION "v1.0" -#define DRIVER_DESC "NanJing QinHeng ch34x USB to serial adaptor driver" -#define FALSE -1 - -#define ch34x_VENDOR_ID_1 0x4348 -#define ch34x_VENDOR_ID_2 0x1a86 -#define ch34x_PRODUCT_ID 0x5523 -#define CONTROL_DTR 0x20 -#define CONTROL_RTS 0x40 -#define BREAK_ON 0xffff -#define BREAK_OFF 0x0000 -#define VENDOR_READ_REQUEST_TYPE 0xc0 -#define VENDOR_READ_REQUEST 0x01 -#define VENDOR_WRITE_REQUEST_TYPE 0x40 -#define VENDOR_WRITE_REQUEST 0x01 -static struct usb_device_id id_table [] = -{ - { USB_DEVICE(ch34x_VENDOR_ID_1, ch34x_PRODUCT_ID) }, - { USB_DEVICE(ch34x_VENDOR_ID_2, ch34x_PRODUCT_ID) }, - { } /* Terminating entry */ -}; - -MODULE_DEVICE_TABLE (usb, id_table); - -static int ch34x_open (struct usb_serial_port *port, struct file *filp); -static void ch34x_close (struct usb_serial_port *port, struct file *filp); -static void ch34x_set_termios (struct usb_serial_port *port,struct termios *old); -static int ch34x_ioctl (struct usb_serial_port *port, struct file *file,unsigned int cmd, unsigned long arg); -static void ch34x_read_int_callback (struct urb *urb); -static void ch34x_read_bulk_callback (struct urb *urb); -static void ch34x_write_bulk_callback (struct urb *urb); -static int ch34x_write (struct usb_serial_port *port, int from_user,const unsigned char*buf, int count); -static void ch34x_break_ctl(struct usb_serial_port *port,int break_state); -static int ch34x_startup (struct usb_serial *serial); -static void ch34x_shutdown (struct usb_serial *serial); -static int SetBaudrate( unsigned int value, struct usb_serial_port *port); - -static struct usb_serial_device_type ch34x_device = { - .owner = THIS_MODULE, - .name = "ch34x", - .id_table = id_table, - .num_interrupt_in = NUM_DONT_CARE, - .num_bulk_in = 1, - .num_bulk_out = 1, - .num_ports = 1, - .open = ch34x_open, - .close = ch34x_close, - .write = ch34x_write, - .ioctl = ch34x_ioctl, - .break_ctl = ch34x_break_ctl, - .set_termios = ch34x_set_termios, - .read_bulk_callback = ch34x_read_bulk_callback, - .read_int_callback = ch34x_read_int_callback, - .write_bulk_callback = ch34x_write_bulk_callback, - .startup = ch34x_startup, - .shutdown = ch34x_shutdown, -}; - -struct ch34x_private -{ - u8 line_control; - u8 termios_initialized; - u8 driverType; -}; - -static int set_control_lines (struct usb_device *dev, u8 value) -{ - dbg("set_control_lines."); - int retval; - retval = usb_control_msg (dev, usb_sndctrlpipe (dev, 0),0xA4, 0x40,value, 0, NULL, 0, 100); - dbg("%s - value = %x, retval = %d", __FUNCTION__, value, retval); - return retval; -} - -static int SetBaudrate( unsigned int mBaudRate, struct usb_serial_port *port) -{ - dbg("SetBaudrate."); - struct usb_serial *serial = port->serial; - unsigned char mTimerCtrl, mTimerCount; - unsigned short mValue, mIndex; - mValue = 0; mIndex = 0; - dbg ("0x40:1:0:1 %d", mBaudRate); - int i; - switch (mBaudRate) - { - case 2225: { mTimerCtrl = 0; mTimerCount = 0x16; break; }//50 - case 2226: { mTimerCtrl = 0; mTimerCount = 0x64; break; }//75 - case 2227: { mTimerCtrl = 0; mTimerCount = 0x96; break; }//110 - case 2228: { mTimerCtrl = 0; mTimerCount = 0xa9; break; }//135 - case 2229: { mTimerCtrl = 0; mTimerCount = 0xb2; break; }//150 - case 2231: { mTimerCtrl = 0; mTimerCount = 0xd9; break; }//300 - case 2232: { mTimerCtrl = 1; mTimerCount = 0x64; break; }//600 - case 2233: { mTimerCtrl = 1; mTimerCount = 0xb2; break; }//1200 - case 2234: { mTimerCtrl = 1; mTimerCount = 0xcc; break; }//1800 - case 2235: { mTimerCtrl = 1; mTimerCount = 0xd9; break; }//2400 - case 2236: { mTimerCtrl = 2; mTimerCount = 0x64; break; }//4800 - case 2237: { mTimerCtrl = 2; mTimerCount = 0xb2; break; }//9600 - case 2238: { mTimerCtrl = 2; mTimerCount = 0xd9; break; }//19200 - case 2239: { mTimerCtrl = 3; mTimerCount = 0x64; break; }//38400 - case 6321: { mTimerCtrl = 3; mTimerCount = 0x98; break; }//57600 - case 6322: { mTimerCtrl = 3; mTimerCount = 0xcc; break; }//115200 - case 6323: { mTimerCtrl = 3; mTimerCount = 0xe6; break; }//230400 - case 6324: { mTimerCtrl = 3; mTimerCount = 0xf3; break; }//460800 - case 6325: { mTimerCtrl = 3; mTimerCount = 0xf4; break; }//500000 - case 6326: - case 6327: { mTimerCtrl = 7; mTimerCount = 0xf3; break; }//921600 - case 6328: { mTimerCtrl = 3; mTimerCount = 0xfa; break; }//1000000 - case 6329: - case 6330: - case 6331: { mTimerCtrl = 3; mTimerCount = 0xfd; break; }//2000000 - case 6332: - case 6333: { mTimerCtrl=3;mTimerCount=0xfe; break; }//3000000 - default: { return( -EPROTO ); break; } - } - mValue |= 0x04; mIndex |= mTimerCtrl; - mValue |= 0x08; mIndex |= (unsigned short)mTimerCount << 8; - i = usb_control_msg (serial->dev, usb_sndctrlpipe(serial->dev,0),0xA1,0x40,mValue,mIndex,NULL,0,100); - return 1; -} - -static int ch34x_startup (struct usb_serial *serial) -{ - dbg("ch34x_startup."); - struct ch34x_private *priv; - int i; - for (i = 0; i < serial->num_ports; ++i) - { - priv = kmalloc (sizeof (struct ch34x_private), GFP_KERNEL); - if (!priv) - return -ENOMEM; - memset (priv, 0x00, sizeof (struct ch34x_private)); - serial->port[i].private = priv; - } - return 0; -} - -static int ch34x_open (struct usb_serial_port *port, struct file *filp) -{ - dbg("ch34x_open."); - struct termios tmp_termios; - struct usb_serial *serial = port->serial; - int result; - struct ch34x_private *priv = port->private; - if (port_paranoia_check (port, __FUNCTION__)) - return -ENODEV; - dbg("%s - port %d", __FUNCTION__, port->number); - /* Setup termios */ - if (port->tty) - { - ch34x_set_termios (port, &tmp_termios); - } - //FIXME: need to assert RTS and DTR if CRTSCTS off - priv = port->private; - priv->line_control = 0x9F; - set_control_lines (port->serial->dev,priv->line_control); - priv->line_control = 0xFF; - dbg("%s - submitting read urb", __FUNCTION__); - port->read_urb->dev = serial->dev; - result = usb_submit_urb (port->read_urb); - if (result) - { - err("%s - failed submitting read urb, error %d", __FUNCTION__, result); - ch34x_close (port, NULL); - return -EPROTO; - } - dbg("%s - submitting interrupt urb", __FUNCTION__); - port->interrupt_in_urb->dev = serial->dev; - result = usb_submit_urb (port->interrupt_in_urb); - if (result) - { - err("%s - failed submitting interrupt urb, error %d", __FUNCTION__, result); - ch34x_close (port, NULL); - return -EPROTO; - } - return 0; -} - -static int ch34x_write (struct usb_serial_port *port, int from_user, const unsigned char *buf, int count) -{ - dbg("ch34x_write."); - int result; - dbg("%s - port %d, %d bytes", __FUNCTION__, port->number, count); - if (port->write_urb->status == -EINPROGRESS) - { - dbg("%s - already writing", __FUNCTION__); - return 0; - } - count = (count > port->bulk_out_size) ? port->bulk_out_size : count; - if (from_user) - { - if (copy_from_user (port->write_urb->transfer_buffer, buf, count)) - return -EFAULT; - } - else - { - memcpy (port->write_urb->transfer_buffer, buf, count); - } - usb_serial_debug_data (__FILE__, __FUNCTION__, count, port->write_urb->transfer_buffer); - port->write_urb->transfer_buffer_length = count; - port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb); - if (result) - err("%s - failed submitting write urb, error %d", __FUNCTION__, result); - else - result = count; - return result; -} - -static void ch34x_set_termios (struct usb_serial_port *port, struct termios *old_termios) -{ - dbg("set_termios.\n"); - unsigned int cflag; - dbg("%s - port %d, initialized = %d", __FUNCTION__, port->number, ((struct ch34x_private *) port->private)->termios_initialized); - if ((!port->tty) || (!port->tty->termios)) - { - dbg("%s - no tty structures", __FUNCTION__); - return; - } - if (!(((struct ch34x_private *) port->private)->termios_initialized)) - { - *(port->tty->termios) = tty_std_termios; - port->tty->termios->c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; - ((struct ch34x_private *) port->private)->termios_initialized = 1; - } - cflag = port->tty->termios->c_cflag; - /* check that they really want us to change something */ - if (old_termios) - { - if ((cflag == old_termios->c_cflag) && - (RELEVANT_IFLAG(port->tty->termios->c_iflag) == RELEVANT_IFLAG(old_termios->c_iflag))) - { - dbg("%s - nothing to change...", __FUNCTION__); - return; - } - } - SetBaudrate(cflag,port); -} - -/*close the serial*/ -static void ch34x_close (struct usb_serial_port *port, struct file *filp) -{ - dbg("ch34x_close.\n"); - struct usb_serial *serial; - struct ch34x_private *priv; - unsigned int c_cflag; - int result; - if (port_paranoia_check (port, __FUNCTION__)) - return; - serial = get_usb_serial (port, __FUNCTION__); - if (!serial) - return; - dbg("%s - port %d", __FUNCTION__, port->number); - if (serial->dev) - { - if (port->tty) - { - c_cflag = port->tty->termios->c_cflag; - if (c_cflag & HUPCL) - { - // drop DTR and RTS - priv = port->private; - priv->line_control = 0x7F; - set_control_lines (port->serial->dev, - priv->line_control); - } - } - /* shutdown our urbs */ - dbg("%s - shutting down urbs", __FUNCTION__); - result = usb_unlink_urb (port->write_urb); - if (result) - dbg("%s - usb_unlink_urb (write_urb)" - " failed with reason: %d", __FUNCTION__, - result); - result = usb_unlink_urb (port->read_urb); - if (result) - dbg("%s - usb_unlink_urb (read_urb) " - "failed with reason: %d", __FUNCTION__, - result); - result = usb_unlink_urb (port->interrupt_in_urb); - if (result) - dbg("%s - usb_unlink_urb (interrupt_in_urb)" - " failed with reason: %d", __FUNCTION__, - result); - } -} - -static int set_modem_info (struct usb_serial_port *port, unsigned int cmd, unsigned int *value) -{ - struct ch34x_private *priv = port->private; - unsigned int arg; - if (copy_from_user(&arg, value, sizeof(int))) - { - return -EFAULT; - } - dbg ("0x40:0x1:0x0:0x41 %d", arg); - switch (cmd) - { - case TIOCMBIS: - printk("TIOCMBIS.\n"); - if (arg & TIOCM_RTS) - priv->line_control |= CONTROL_RTS; - if (arg & TIOCM_DTR) - priv->line_control |= CONTROL_DTR; - break; - - case TIOCMBIC: - printk("TIOCMBIC.\n"); - if (arg & TIOCM_RTS) - priv->line_control &= ~CONTROL_RTS; - if (arg & TIOCM_DTR) - priv->line_control &= ~CONTROL_DTR; - break; - - case TIOCMSET: - // turn off RTS and DTR and then only turn - // on what was asked to - printk("TIOCMSET.\n"); //CONTROL_RTS=0x40,CONTROL_DTR=0x20 - priv->line_control &= ~(CONTROL_RTS | CONTROL_DTR);//TIOCM_RTS=0x004,TIOCM_DTR=0x002 - priv->line_control |= ((arg & TIOCM_RTS) ? CONTROL_RTS : 0); - priv->line_control |= ((arg & TIOCM_DTR) ? CONTROL_DTR : 0); - break; - } - return set_control_lines (port->serial->dev, priv->line_control); -} - -static int ch34x_ioctl (struct usb_serial_port *port, struct file *file, unsigned int cmd, unsigned long arg) -{ - dbg("ch34x_ioctl.\n"); - dbg("%s (%d) cmd = 0x%04x", __FUNCTION__, port->number, cmd); - switch (cmd) - { - case TIOCMGET: - case TIOCMBIS: - case TIOCMBIC: - case TIOCMSET: - dbg("%s (%d) TIOCMSET/TIOCMBIC/TIOCMSET", __FUNCTION__, port->number); - return set_modem_info(port, cmd, (unsigned int *) arg); - default: - dbg("%s not supported = 0x%04x", __FUNCTION__, cmd); - break; - } - return -ENOIOCTLCMD; -} - -static void ch34x_break_ctl (struct usb_serial_port *port, int break_state) -{ - dbg("ch34x_break_ctl.\n"); -} - -static void ch34x_shutdown (struct usb_serial *serial) -{ - dbg("ch34x_shutdown.\n"); - int i; - dbg("%s", __FUNCTION__); - for (i = 0; i < serial->num_ports; ++i) - kfree (serial->port[i].private); -} - -static void ch34x_read_int_callback (struct urb *urb) -{ - dbg("ch34x_read_int_callback.\n"); - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - struct usb_serial *serial = get_usb_serial (port, __FUNCTION__); - //ints auto restart... - if (!serial) - { - return; - } - if (urb->status) - { - urb->status = 0; - return; - } - usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, urb->transfer_buffer); -#if 0 - //FIXME need to update state of terminal lines variable -#endif - return; -} - -static void ch34x_read_bulk_callback (struct urb *urb) -{ - printk("ch34x_read_bulk_callback.\n"); - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - struct usb_serial *serial = get_usb_serial (port, __FUNCTION__); - struct tty_struct *tty; - unsigned char *data = urb->transfer_buffer; - int i; - int result; - if (port_paranoia_check (port, __FUNCTION__)) - return; - dbg("%s - port %d", __FUNCTION__, port->number); - if (!serial) - { - dbg("%s - bad serial pointer, exiting", __FUNCTION__); - return; - } - if (urb->status) - { - dbg("%s - urb->status = %d", __FUNCTION__, urb->status); - if (!port->open_count) - { - dbg("%s - port is closed, exiting.", __FUNCTION__); - return; - } - if (urb->status == -EPROTO) - { - dbg("%s - caught -EPROTO, resubmitting the urb", __FUNCTION__); - urb->status = 0; - urb->dev = serial->dev; - result = usb_submit_urb(urb); - if (result) - err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result); - return; - } - dbg("%s - unable to handle the error, exiting.", __FUNCTION__); - return; - } - usb_serial_debug_data (__FILE__, __FUNCTION__, urb->actual_length, data); - tty = port->tty; - if (tty && urb->actual_length) - { - for (i = 0; i < urb->actual_length; ++i) - { - if (tty->flip.count >= TTY_FLIPBUF_SIZE) - { - tty_flip_buffer_push(tty); - } - tty_insert_flip_char (tty, data[i], 0); - } - tty_flip_buffer_push (tty); - } - // Schedule the next read _if_ we are still open - if (port->open_count) - { - urb->dev = serial->dev; - result = usb_submit_urb(urb); - if (result) - err("%s - failed resubmitting read urb, error %d", __FUNCTION__, result); - } - return; -} - -static void ch34x_write_bulk_callback (struct urb *urb) -{ - dbg("ch34x_write_bulk_callback.\n"); - struct usb_serial_port *port = (struct usb_serial_port *) urb->context; - int result; - - if (port_paranoia_check (port, __FUNCTION__)) - return; - dbg("%s - port %d", __FUNCTION__, port->number); - if (urb->status) - { - /* error in the urb, so we have to resubmit it */ - if (serial_paranoia_check (port->serial, __FUNCTION__)) - { - return; - } - dbg("%s - Overflow in write", __FUNCTION__); - dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); - port->write_urb->transfer_buffer_length = 1; - port->write_urb->dev = port->serial->dev; - result = usb_submit_urb (port->write_urb); - if (result) - err("%s - failed resubmitting write urb, error %d", __FUNCTION__, result); - return; - } - queue_task(&port->tqueue, &tq_immediate); - mark_bh(IMMEDIATE_BH); - return; - -} - -static int __init ch34x_init (void) -{ - dbg("ch34x_init."); - usb_serial_register (&ch34x_device); - info(DRIVER_DESC " " DRIVER_VERSION); - return 0; -} - -static void __exit ch34x_exit (void) -{ - dbg("ch34x_exit."); - usb_serial_deregister (&ch34x_device); -} - -module_init(ch34x_init); -module_exit(ch34x_exit); - -MODULE_DESCRIPTION(DRIVER_DESC); -MODULE_LICENSE("GPL"); - -MODULE_PARM(debug, "i"); -MODULE_PARM_DESC(debug, "Debug enabled or not"); - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" deleted file mode 100644 index e0bebe6..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis.rar" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" deleted file mode 100644 index 595a502..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/ReadMe.txt" +++ /dev/null @@ -1,28 +0,0 @@ -Chinese: -支持:Linux2.6.18 ~3.x -1、安装驱动: - A、进入driver目录,执行 - # make - # insmod ch341_pis.ko -2、执行应用测试程序 - A、进入demo目录,执行 - # make - 产生DEMO与DEMO_GUI可执行文件。 - B、运行./DEMO,可在终端测试程序 - 运行./DEMO_GUI,可在gtk界面调试 - -English: -Support: Linux kernel 2.6.28 ~ 3.x -1、install driver - A、get into ch34x_pis/driver, execute - # make - # insmod ch341_pis.ko -2、test the validity of driver - A、 enter demo, execute - # make - Then, in this catalogue you can find two executable files, one: DEMO the other: DEMO_GUI. - B、 execute DEMO - # ./DEMO - C、 execute DEMO_GUI - # ./DEMO_GUI - this depens on gtk+-2.0 lib. So ensure your system have this lib. \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" deleted file mode 100644 index efdc09d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/Makefile" +++ /dev/null @@ -1,23 +0,0 @@ -# Makefile for WCH CH34x chips - -CC := gcc -OBJ := DEMO -OBJ_GTK := DEMO_GUI -CFLAGS := -Wall -g -CFLAGS_GUI := -Wall -g `pkg-config --cflags --libs gtk+-2.0` -OBJ_C := ch34x_demo.o ch34x_lib.o -OBJ_C_GUI := ch34x_demo_gui.o ch34x_lib.o - - -$(OBJ):$(OBJ_C) - $(CC) -o $@ $^ $(CFLAGS) - $(CC) -c ch34x_lib.c $(CFLAGS) - $(CC) -c ch34x_demo_gui.c $(CFLAGS_GUI) - $(CC) -o $(OBJ_GTK) $(OBJ_C_GUI) $(CFLAGS_GUI) -%.o:%.c - $(CC) -c $< $(CFLAGS) - -#DEMO:$(OBJ_C) -# $(CC) -o $@ $(OBJ_C) $(CFLAGS) -clean: - rm -rf *.o $(OBJ) $(OBJ_GTK) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" deleted file mode 100644 index 688f6d2..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo.c" +++ /dev/null @@ -1,617 +0,0 @@ -/* - *ch36x_demo.c for ch365/ch367/ch368 pci card of WCH - * - ********************************************************************** - *********** Copyright (C) WCH 2013.10.28 *************** - *********** web: www.wch.cn *************** - *********** AUTHOR: TECH33 (tech@wch.cn) *************** - *********** Used for PCI/PCIe Chip (CH365/7/8) *************** - *********** Nanjing QinHeng Electronics Co.,Ltd *************** - ********************************************************************** - * - * Running Environment: Linux - * This file is used for testing I/O\MEM\Configuration\ (Read and Write) - */ - -#include -#include -#include -#include -#include -#include - -#include "ch34x_lib.h" -#include "flash_sst.h" - -#ifndef CH34x_DEBUG -#define CH34x_DEBUG -#endif - -#ifdef CH34x_DEBUG -#define dbg( format, arg...) printf( format "\n", ##arg ); -#endif -#define err( format, arg... ) \ - printf( "error %d: " format "\n", __LINE__, ##arg ) - -extern int dev_fd; -struct{ - void *DeviceId; - void *Addr; - unsigned char *Byte; -}i2c_device; - -/* - * ******************************************************************** - * InitPara() - * Function : Init Parallel - * ******************************************************************** - */ -int InitPara() -{ - int retval; - unsigned long iMode; - iMode = 0x00; - retval = CH34xSetParaMode( iMode ); - if( retval == false ) - { - err("------>SetPara Error"); - return false; - } - retval = CH34xInitParallel( iMode ); - if( retval == false ) - { - err("------->Init Parallel Error\n"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * CH34x_EppWrite() - * Function : EPP Write,Write 256 bytes into EPP - * ******************************************************************** - */ -int CH34x_EppWrite() -{ - int retval, i; - unsigned long iLength; -// unsigned char iBuffer[64] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42}; - unsigned char iBuffer[255]; - for( i = 0; i <= 255; i++ ) - iBuffer[i] = i; - iLength = 256; - retval = CH34xEppWriteData( iBuffer, iLength ); - if( retval == false ) - { - err("----------------->Write Error"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * CH34x_EppRead() - * Function : EPP Read,Read 255 bytes from EPP - * ******************************************************************** - */ -int CH34x_EppRead() -{ - int retval,i; - unsigned long ioLength; - unsigned char ioBuffer[MAX_BUFFER_LENGTH]; - ioLength = 256; - retval = CH34xEppReadData( ioBuffer, ioLength ); - if( retval != ioLength ) - { - err("------------->Read Error\n"); - return false; - } - for( i = 0; i < ioLength; i++ ) - { - printf(" %d", ioBuffer[i] ); - } - printf("\n"); - return true; -} - -/* - * ******************************************************************** - * InitMEM() - * Function : Init Memory - * ******************************************************************** - */ -int InitMEM() -{ - int retval; - retval = CH34xInitMEM(); - if( retval == false ) - { - err("------->Init Parallel Error\n"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * CH34x_MEMWrite() - * Function : MEM Write,Write 255 bytes into MEM - * ******************************************************************** - */ -int CH34x_MEMWrite() -{ - int retval,i; - unsigned long iLength; -// unsigned char iBuffer[64] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42}; - unsigned char iBuffer[256]; - for(i = 0; i < 256; i++) - iBuffer[i] = i; - iLength = 256; - retval = CH34xMEMWriteData( iBuffer, iLength, 1 ); - if( retval == false ) - { - err("----------------->Write Error"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * CH34x_MEMRead() - * Function : MEM Read,Read 259 bytes from MEM - * ******************************************************************** - */ -int CH34x_MEMRead() -{ - int retval,i; - unsigned long ioLength; - unsigned char ioBuffer[MAX_BUFFER_LENGTH]; - ioLength = 258; - retval = CH34xMEMReadData( ioBuffer, ioLength, 0 ); - printf("ioLength is %d in MEM Read\n"); - if( retval != ioLength ) - { - err("------------->Read Error\n"); - return false; - } - for( i = 0; i <= ioLength; i++ ) - { - printf(" %d", ioBuffer[i] ); - } - printf("\n"); - return true; -} - -/* - * ******************************************************************** - * init_device( void ) - * - * Function : open device, Get Driver Version, Get Chip ID - * ******************************************************************** - */ -int init_device( void ) -{ - int retval = 0; - - system("clear"); - dev_fd = CH34xOpenDevice( 0 ); - if( dev_fd <= 0 ) - { - err("CH34xOpenDevice Open Error"); - return -1; - } - dbg( "Open sucessful" ); - //Get Driver Version - char *drv_version = (char *)malloc( sizeof( char ) * 30 ); - - retval = CH34x_GetDrvVer( drv_version ); - if( retval == false ) - { - err( "CH34x_GetDrvVer Error" ); - return -1; - } - - printf( "drv_version : %s\n", drv_version ); - free( drv_version ); - //Get Chip Version - PULONG VendorId = (char *)malloc( sizeof(unsigned long)); - retval = CH34x_GetVendorId( VendorId ); - if( retval == false ) - { - err( "CH34x_GetVendorId Error" ); - return -1; - } - printf( "VendorId : 0x%04x\n", *VendorId ); - free( VendorId ); - return true; - -} - -/* - * ******************************************************************** - * EEPROM_TEST( void ) - * - * Function : EEPROM Write/Read - * ******************************************************************** - */ -void EEPROM_TEST( void ) -{ -//Write EEPROM - int retval = 0; - UCHAR iBuf; - printf("Please input a byte into EEPROM:\n"); - scanf( "%x", &iBuf ); - printf("You input 0x%x\n", iBuf); - retval = CH34xWriteEEPROM( ID_24C08, 0x0000, 1, &iBuf ); - if( retval == false ) - { - err("I2C Write Error"); - return -1; - } - - sleep(1); -//Read EEPROM - PUCHAR oBuffer ; - oBuffer = (PUCHAR)malloc( sizeof(unsigned char) * 30 ); - retval = CH34xReadEEPROM( ID_24C08, 0x0000, 20, oBuffer ); - if( retval == false ) - { - err("I2C Read Error"); - return -1; - } - printf("Output is 0x%x\n", oBuffer[0]); - free( oBuffer ); -} - -/* - * ******************************************************************** - * EPP_TEST() - * - * Function : EPP Write/Read - * ******************************************************************** - */ -void EPP_TEST() -{ -//EPP Write/Read - int retval = 0; - if((retval = InitPara()) == false) - { - err("Init Para Error\n"); - } - if((retval = CH34x_EppWrite()) == false ) - { - err("Epp Write Error\n"); - } - if((retval = CH34x_EppRead()) == false ) - { - err("Read Error"); - } -} - -/* - * ******************************************************************** - * MEM_TEST() - * - * Function : MEM Write/Read - * ******************************************************************** - */ -void MEM_TEST() -{ -//MEM Write/Read - int retval = 0; - if((retval = InitMEM()) == false) - { - err("Init MEM Error\n"); - } - if((retval = CH34x_MEMWrite()) == false ) - { - err("MEM Write Error\n"); - } - if((retval = CH34x_MEMRead()) == false ) - { - err("MEM Read Error"); - } -} - -/* - * ******************************************************************** - * SPI_FLASH_TEST() - * - * Function : FLASH Write/Read - * Note: this function does not include save unused data - * ******************************************************************** - */ -int SPI_FLASH_TEST() -{ -//Read Block SPI ( MAX 1024 Every one ) -/* UCHAR oBuffer[MAX_BUFFER_LENGTH]; - if( CH34x_Flash_ReadBlock(NULL,0x00) == false ) - { - printf("Read block Error\n"); - } -*/ - - if( CH34xWriteSPI() == false ) - { - printf("Write SPI Error\n"); - return false; - } - if( CH34xReadSPI() == false ) - { - printf("Read SPI Error\n"); - return false; - } - -} - -void ShowMainMenu( void ) -{ - printf("This is main menu listed\n"); - printf("-->1: EEPROM TEST\n"); - printf("-->2: EPP TEST\n"); - printf("-->3: MEM TEST\n"); - printf("-->4: SPI FLASH TEST( SST25VF512 )\n"); - printf("Please enter your selection:\n"); - -} - -int main( int argc, char **argv ) -{ - int ch; - char button = '\0'; - int retval = 0; - retval = init_device(); - if( retval == -1 ) - { - printf("Init device error\n"); - return false; - } - while(1) - { - ShowMainMenu(); - scanf("%d",&ch); - printf("You choose %d \n",ch); - switch(ch) - { - case 1: - EEPROM_TEST(); - break; - case 2: - EPP_TEST(); - break; - case 3: - MEM_TEST(); - break; - case 4: - SPI_FLASH_TEST(); - break; - default: - break; - } - do - { - printf("\nenter 'q' to exit or 'b' to come back\n"); - scanf(" %c", &button); - }while( button != 'q' && button != 'b' ); - if( button == 'q' ) - break; - } - - CH34xCloseDevice(); - return 0; -} - -int ReadFlashId() -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[6]; - mWrBuf[0] = ReadID; - mWrBuf[1] = 0x00; - mWrBuf[2] = 0x00; - mWrBuf[3] = 0x00; - iChipselect = 0x80; - mLen = 6; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - else - return mWrBuf[5]; -} - -BOOL CH34xWriteEnable() -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[2]; - mWrBuf[0] = WREN; - mLen = 2; - iChipselect = 0x80; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - else - return true; -} - -BOOL CH34xSectorErase( ULONG StartAddr ) -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[4]; - if( CH34xWriteEnable() == false ) - return false; - mWrBuf[0] = Sector_Erase; - mWrBuf[1] = (UCHAR)( StartAddr >> 16 & 0xff ); - mWrBuf[2] = (UCHAR)( StartAddr >> 8 & 0xf0 ); - mWrBuf[3] = 0x00; - mLen = 4; - iChipselect = 0x80; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - - if( CH34xFlash_Wait() == false ) - return false; - return true; -} - -int CH34x_Flash_ReadByte( PVOID oBuffer, ULONG iAddr ) -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[16]; - mLen = 16; - iChipselect = 0x80; - mWrBuf[0] = ReadByte; - mWrBuf[1] = (UCHAR)( iAddr >> 16 & 0xff ); - mWrBuf[2] = (UCHAR)( iAddr >> 8 & 0xff ); - mWrBuf[3] = (UCHAR)( iAddr & 0xff ); - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - printf("Read SPI Data,First is %x,Second is %x\n",mWrBuf[4],mWrBuf[5]); -} - -int CH34x_Flash_ReadBlock( PVOID oBuffer, ULONG iAddr) -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[MAX_BUFFER_LENGTH]; - ULONG i; - mLen = 33; - iChipselect = 0x80; -// iAddr = iAddr - iAddr % 0x1000; - mWrBuf[0] = ReadByte; - mWrBuf[1] = (UCHAR)( iAddr >> 16 & 0xff ); - mWrBuf[2] = (UCHAR)( iAddr >> 8 & 0xff ); - mWrBuf[3] = (UCHAR)( iAddr & 0xff ); - if( CH34xStreamSPI4( iChipselect, mLen+4, mWrBuf ) == false ) - return false; - - for( i = 0; i < mLen; i++ ) - printf("index is %d, Value is %x\n",i,mWrBuf[i + 4]); - return true; -} - -BOOL CH34xFlash_Wait() -{ - ULONG mLen, iChipselect; - ULONG i = 0; - UCHAR mWrBuf[3]; - UCHAR status; - mLen = 3; - iChipselect = 0x80; - mWrBuf[0] = RDSR; - do{ - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - }while( status & 1 ); - return true; -} - -BOOL CH34xFlashReadStatus() -{ - ULONG mLen, iChipselect; - UCHAR status; - UCHAR mWrBuf[3]; - iChipselect = 0x80; - mLen = 3; - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - if( status & 0x0c ) - { - mWrBuf[0] = EWSR; - mLen = 1; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - mLen = 2; - memset( mWrBuf, 0, sizeof( UCHAR ) * mLen ); - mWrBuf[0] = WRSR; - mWrBuf[1] = status & (~0x0c); - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - } - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - - return true; -} - -BOOL CH34x_Flash_Write( PVOID iBuffer, ULONG iAddr ) -{ - ULONG i; - ULONG iChipselect = 0x80; - UCHAR mWrBuf[5]; - ULONG mLen = 5; - for( i = 0; i < 2; i++ ) - { - if( !CH34xWriteEnable() ) - return false; - mWrBuf[0] = Byte_Program; - mWrBuf[1] = (UCHAR)(iAddr >> 16 & 0xff); - mWrBuf[2] = (UCHAR)(iAddr >> 8 & 0xff); - mWrBuf[3] = (UCHAR)(iAddr & 0xff); - iAddr++; - mWrBuf[4] = *((PUCHAR)iBuffer + i); - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - memset( mWrBuf, 0, sizeof( UCHAR ) * mLen ); - if( !CH34xFlash_Wait() ) - return false; - } - return true; -} - -BOOL CH34xReadSPI() -{ - ULONG mLen; - CH34x_Flash_ReadByte( NULL, 0x0000 ); - return true; -} - -BOOL CH34xWriteSPI() -{ - int retval; - int i; - PUCHAR BufData; - BufData = malloc( sizeof( UCHAR ) * 4096 ); - if( BufData == NULL ) - { - printf("malloc error\n"); - } - retval = CH34xFlashReadStatus(); - if( retval == false ) - { - printf("error in flash status\n"); - return false; - } -/* retval = CH34x_Flash_ReadByte( BufData, 0x0000 ); - if( retval == false ) - { - printf("error in flash ReadByte\n"); - return false; - } -*/ - retval = CH34xSectorErase( 0x0000 ); - if( retval == false ) - { - printf("error in flash Sector Erase\n"); - return false; - } - -// BufData[0] = 0xaa; -// BufData[1] = 0x55; - printf("Please input 2 number:\n"); - for( i = 0; i < 2; i++ ) - scanf("%x", &BufData[i]); - retval = CH34x_Flash_Write( BufData, 0x0000 ); - if( retval == false ) - { - printf("error in flash Write\n"); - return false; - } - free( BufData ); - return true; - -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" deleted file mode 100644 index 168d135..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_demo_gui.c" +++ /dev/null @@ -1,1206 +0,0 @@ -// Created on: Dec 2, 2013 -/* - * File : ch34x_demo_gui.c - * - ********************************************************************** - *********** Copyright (C) WCH 2013.12.2 *************** - *********** web: http://www.wch.cn *************** - *********** AUTHOR: TECH33 (tech@wch.cn) *************** - *********** Used for USB Interface Chip (CH341) *************** - *********** Nanjing QinHeng Electronics Co.,Ltd *************** - ********************************************************************** - * - * Running Environment: Linux - * This file is used for CH34x in Epp/MEM/I2C/SPI - * - */ -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "ch34x_lib.h" -#include "flash.h" - -#define MAX_LENGTH 255 //Input Max Length - -// GtkWidget -GtkWidget *window_main; -GtkWidget *window_sub; -GtkWidget *entryEpp1; -GtkWidget *entry_data_Epp1; -GtkWidget *entryEpp2; -GtkWidget *entry_data_Epp2; -GtkWidget *entryMem; -GtkWidget *entry_data_Mem; -GtkWidget *entry_addr_I2c1; -GtkWidget *entry_len_I2c1; -GtkWidget *entry_data_I2c1; -GtkWidget *entry_addr_I2c2; -GtkWidget *entry_len_I2c2; -GtkWidget *entry_data_I2c2; -GtkWidget *entry_addr_Flash1; -GtkWidget *entry_len_Flash1; -GtkWidget *entry_data_Flash1; -GtkWidget *entry_addr_Flash2; -GtkWidget *entry_len_Flash2; -GtkWidget *entry_data_Flash2; - -extern unsigned long retual_mem_length = 0; - -static int DEV_NUM = 4; -static char gtk_dev_list[100]; -static char *gtk_dev_path = "/dev/ch34x_pis"; -char bufferframe[4][20] = {"EPP MODE", - "MEM MODE", - "EEPROM MODE", - "FLASH MODE"}; -char buffer[4][10] = {"EPP", "MEM", "EEPROM", "FLASH"}; - -extern int dev_fd; -EEPROM_TYPE Eeprom_ID; //EEPROM Type -unsigned long MemMode; //Mem Pipe -// CHar -> Hex, Used for reading length -unsigned long char_to_hex(const char *str) -{ - int strlength = strlen(str); - int i = 0; - unsigned long dst = 0; - for( i = 0; i < strlength; i++ ) - { - if(*(str + i) >= '0' && *(str + i) <= '9') - { - if(0 != i ) - dst = (dst << 4); - dst += *(str + i) - '0'; - } - else if(*(str + i) >= 'a' && *(str + i) <= 'f') - { - if(0 != i ) - dst = (dst << 4); - dst += *(str + i) - 'a' + 10; - } - else if(*(str + i) >= 'A' && *(str + i) <= 'F') - { - if(0 != i ) - dst = (dst << 4); - dst += *(str + i) - 'A' + 10; - } - } - return dst; -} -// Hex -> Char, Used for gtk_entry_set_text Display -void hex_to_char(unsigned char *dst, unsigned int src) -{ - UCHAR temp[10]; - int i = 0,j = 0; - memset(temp, 0, sizeof(UCHAR) *10); - while(1) - { - if( 0 == src ) - break; - if((src & 0x0f) >= 0 && (src & 0x0f) <= 9) - temp[i++] = (src & 0xf) + '0'; - else - temp[i++] = ((src & 0xf) - 10) + 'a'; - src = src >> 4; - } - for(j = 0; j < i; j++) - { - *(dst + j) = *(temp + (i-1-j)); - } - return; -} -//String -> Char -void string_to_char(const unsigned char *str, unsigned char *dst) -{ - int strlength = strlen(str); - unsigned char temp[MAX_LENGTH]; - int i, j = 0; - memset(temp, 0, sizeof(unsigned char) * MAX_LENGTH); - for(i = 0; i < strlength; i++) - { - if(*(str + i) >= '0' && *(str + i) <= '9') - { - temp[i] = *(str + i) -'0'; - } - else if(*(str + i) >= 'a' && *(str + i) <= 'f') - { - temp[i] = *(str + i) -'a' + 10; - } - else if(*(str + i) >= 'A' && *(str + i) <= 'F') - { - temp[i] = *(str + i) -'A' + 10; - } - } - for(i= 0; i < strlength; i++) - { - dst[j++] = temp[i] * 16 + temp[++i]; - } - return; -} -//Char -> String, Used for gtk_entry_set_text display -void char_to_string(unsigned char *str, char *dst, unsigned long mLen) -{ - int strlength = mLen; - unsigned char temp[MAX_LENGTH * 3]; - int i, j = 0; - memset(temp, 0,MAX_LENGTH * 3); - memset(dst, 0,MAX_LENGTH * 3); - for( i = 0; i < strlength; i++ ) - { - temp[j++] = str[i] / 16; - temp[j++] = str[i] % 16; - temp[j++] = ' '; - } - strlength = j - 1; - for( j = 0; j < strlength; j++ ) - { - if( temp[j] == 0x20 ) - { - dst[j] = temp[j]; - continue; - } - if(temp[j] >= 0 && temp[j] <= 9) - dst[j] = temp[j] + '0'; - else - dst[j] = temp[j] - 10 + 'a'; - } - return; -} - -static int get_ch34x_dev_list() -{ - char dev_path[20] = {'\0'}; - int i; - memset(gtk_dev_list, '\0', sizeof(gtk_dev_list)); - /* driver enumeration */ - for( i = 0; i < DEV_NUM; i++ ) - { - sprintf(dev_path, "%s%c", gtk_dev_path, '0'+i); - dev_fd = open(dev_path, O_RDWR); - if( dev_fd == -1 ) - break; - CH34xCloseDevice(); - } - sprintf(gtk_dev_list, "Current devices number : %d", i); - return 0; -} - -void gtk_destroy_sub_window(GtkButton *button, gpointer data) -{ - gtk_widget_destroy(window_sub); - CH34xCloseDevice(); -} - -// Radio event,Used for EEPROM Type Selection -void On_Eeprom_Radio_Mode(GtkWidget *radio, gint data) -{ - switch((int)data) - { - case 1: - Eeprom_ID = ID_24C01; - break; - case 2: - Eeprom_ID = ID_24C02; - break; - case 3: - Eeprom_ID = ID_24C04; - break; - case 4: - Eeprom_ID = ID_24C08; - break; - case 5: - Eeprom_ID = ID_24C16; - break; - case 6: - Eeprom_ID = ID_24C32; - break; - case 7: - Eeprom_ID = ID_24C64; - break; - case 8: - Eeprom_ID = ID_24C128; - break; - case 9: - Eeprom_ID = ID_24C256; - break; - case 10: - Eeprom_ID = ID_24C512; - break; - case 11: - Eeprom_ID = ID_24C1024; - break; - case 12: - Eeprom_ID = ID_24C2048; - break; - case 13: - Eeprom_ID = ID_24C4096; - break; - } -} - -// Radio event,Used for MEM Pipe Selection -void On_MemAddr_Radio_Mode(GtkWidget *radio, gint data) -{ - switch((int)data) - { - case 1: - MemMode = 0x00; -// printf("PipeMode is %d\n",MemMode); - break; - case 2: - MemMode = 0x01; -// printf("PipeMode is %d\n",MemMode); - break; - } -} - -//Epp Mode: Date Write -// gtk_entry_get_text read input data from entry -//gtk_entry_set_text write data to entry -void CH34x_EppWrite(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char oBuffer[MAX_LENGTH]; - unsigned char temp[10]; - unsigned long retual_length; - const char *len; - int retval; - memset(temp, 0, sizeof(temp)); - retval = CH34xSetParaMode( 0 ); - if( retval == false ) - return; - len = gtk_entry_get_text(GTK_ENTRY(entryEpp1)); - iLength = char_to_hex(len); - len = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)Data)); - retual_mem_length = strlen((unsigned char *)len) % 2 == 0 ? strlen((unsigned char *)len) / 2 : (strlen((unsigned char *)len) / 2 + 1); - hex_to_char(temp, retual_mem_length); - gtk_entry_set_text(GTK_ENTRY(entryEpp1), temp); - string_to_char(len, oBuffer); - retval = CH34xEppWriteData( oBuffer, iLength ); - if( retval == false ) - { - printf("------->Write Error\n"); - } -} - -//Epp Mode: Data Read -void CH34x_EppRead(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char iBuffer[MAX_LENGTH] = {'\0'}; - const char *len; - const char *ReadBuffer; - int retval; - memset( iBuffer, 0, sizeof(iBuffer)); - ReadBuffer = (char*)malloc(sizeof(unsigned char) * DEFAULT_BUFFER_LEN); - len = gtk_entry_get_text(GTK_ENTRY(entryEpp1)); - iLength = char_to_hex(len); - retval = CH34xEppReadData( iBuffer, iLength ); - if( retval != iLength ) - { - printf("------>Read Error\n"); - } - char_to_string(iBuffer, ReadBuffer, iLength); - gtk_entry_set_text(GTK_ENTRY((GtkWidget *)Data), ReadBuffer); - free( ReadBuffer ); -} - -//Epp Mode : Addr Write -void CH34x_EppWrite_Addr(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char oBuffer[MAX_LENGTH]; - unsigned char temp[10]; - unsigned long retual_length; - const char *len; - int retval; - memset(temp, 0, sizeof(temp)); - memset(oBuffer, 0, sizeof(oBuffer)); - retval = CH34xSetParaMode( 0 ); - if( retval == false ) - return; - len = gtk_entry_get_text(GTK_ENTRY(entryEpp2)); - iLength = char_to_hex(len); - len = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)Data)); - retual_mem_length = strlen((unsigned char *)len) % 2 == 0 ? strlen((unsigned char *)len) / 2 : (strlen((unsigned char *)len) / 2 + 1); - hex_to_char(temp, retual_mem_length); - gtk_entry_set_text(GTK_ENTRY(entryEpp2), temp); - string_to_char(len, oBuffer); - retval = CH34xEppWriteAddr( oBuffer, iLength ); - if( retval == false ) - { - printf("------->Write Error\n"); - } -} - -//Epp Mode : Addr Read -void CH34x_EppRead_Addr(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char iBuffer[MAX_LENGTH] = {'\0'}; - const char *len; - const char *ReadBuffer; - int retval; - ReadBuffer = (char*)malloc(sizeof(unsigned char) * DEFAULT_BUFFER_LEN); - len = gtk_entry_get_text(GTK_ENTRY(entryEpp2)); - iLength = char_to_hex(len); - retval = CH34xEppReadAddr( iBuffer, iLength ); - if( retval != iLength ) - { - printf("------>Read Error\n"); - } - char_to_string(iBuffer, ReadBuffer, iLength); - gtk_entry_set_text(GTK_ENTRY((GtkWidget *)Data), ReadBuffer); - free( ReadBuffer ); -} - -//MEM Mode: Write data -void CH34x_MEMWrite(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char oBuffer[MAX_LENGTH]; - const char *len; - unsigned char temp[10]; - int retval; - - memset(oBuffer, 0,sizeof(oBuffer)); - memset(temp, 0, sizeof(temp)); - retval = CH34xInitMEM(); - if( retval == false ) - { - printf("CH34xInitMEM Error\n"); - } - len = gtk_entry_get_text(GTK_ENTRY(entryMem)); - iLength = char_to_hex(len); - len = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)Data)); - retual_mem_length = strlen((unsigned char *)len) % 2 == 0 ? strlen((unsigned char *)len) / 2 : (strlen((unsigned char *)len) / 2 + 1); - string_to_char(len, oBuffer); - hex_to_char(temp, retual_mem_length); - gtk_entry_set_text(GTK_ENTRY(entryMem), temp); - retval = CH34xMEMWriteData( oBuffer, iLength, MemMode ); - if( retval == false ) - { - printf("------->Write Error\n"); - } -} - -//MEM Mode: Read Data -void CH34x_MEMRead(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned char iBuffer[MAX_LENGTH] = {'\0'}; - const char *len; - const char *ReadBuffer; - int retval; - ReadBuffer = (char*)malloc(sizeof(unsigned char) * DEFAULT_BUFFER_LEN); - len = gtk_entry_get_text(GTK_ENTRY(entryMem)); - iLength = char_to_hex(len); - retval = CH34xMEMReadData( iBuffer, iLength, MemMode ); - if( retval != iLength ) - { - printf("------>Read Error\n"); - } - char_to_string(iBuffer, ReadBuffer, iLength); - gtk_entry_set_text(GTK_ENTRY((GtkWidget *)Data), ReadBuffer); - free( ReadBuffer ); -} - -//EPP Mode Page -void notebook_add_page1(GtkWidget *notebook, GtkWidget *frame) -{ - GtkWidget *label; - GtkWidget *frame1; - GtkWidget *frame2; - GtkWidget *vbox; - GtkWidget *table; - GtkWidget *RdBtnD; - GtkWidget *WrBtnD; - GtkWidget *RdBtnA; - GtkWidget *WrBtnA; - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(frame), vbox); - frame1 = gtk_frame_new("EPP DATA READ/WRITE"); - gtk_box_pack_start(GTK_BOX(vbox), frame1, FALSE, FALSE, 5); - table = gtk_table_new(6, 6, TRUE); - gtk_container_add(GTK_CONTAINER(frame1), table); - label = gtk_label_new("EPP Mode Read: WR#=1, DS#=0, AS#=1, D0~D7=input\n" \ - "EPP Mode Write: WR#=0, DS#=0, AS#=1, D0~D7=output"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 4, 0, 2); - label = gtk_label_new("Length :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); - entryEpp1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entryEpp1, 1, 2, 2, 3); - label = gtk_label_new("(0 ~ 0xff)"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 2, 3); - label = gtk_label_new("Data :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); - entry_data_Epp1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_Epp1, 1, 6, 3, 4); - RdBtnD = gtk_button_new_with_label(" Read "); - gtk_table_attach_defaults(GTK_TABLE(table), RdBtnD, 3, 4, 6, 7); - WrBtnD = gtk_button_new_with_label(" Write "); - gtk_table_attach_defaults(GTK_TABLE(table), WrBtnD, 4, 5, 6, 7); - g_signal_connect(G_OBJECT(RdBtnD), "clicked", - G_CALLBACK(CH34x_EppRead), (gpointer)entry_data_Epp1); - g_signal_connect(G_OBJECT(WrBtnD), "clicked", - G_CALLBACK(CH34x_EppWrite), (gpointer)entry_data_Epp1); - - frame2 = gtk_frame_new("EPP Addr READ/WRITE"); - gtk_box_pack_start(GTK_BOX(vbox), frame2, FALSE, FALSE, 5); - table = gtk_table_new(6, 6, TRUE); - gtk_container_add(GTK_CONTAINER(frame2), table); - label = gtk_label_new("EPP Mode Read: WR#=1, DS#=0, AS#=0, D0~D7=input\n" \ - "EPP Mode Write: WR#=0, DS#=0, AS#=0, D0~D7=output"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 4, 0, 2); - label = gtk_label_new("Length :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); - entryEpp2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entryEpp2, 1, 2, 2, 3); - label = gtk_label_new("(0 ~ 0xff)"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 2, 3); - label = gtk_label_new("Data :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); - entry_data_Epp2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_Epp2, 1, 6, 3, 4); - RdBtnA = gtk_button_new_with_label(" Read "); - gtk_table_attach_defaults(GTK_TABLE(table), RdBtnA, 3, 4, 6, 7); - WrBtnA = gtk_button_new_with_label(" Write "); - gtk_table_attach_defaults(GTK_TABLE(table), WrBtnA, 4, 5, 6, 7); - g_signal_connect(G_OBJECT(RdBtnA), "clicked", - G_CALLBACK(CH34x_EppRead_Addr), (gpointer)entry_data_Epp2); - g_signal_connect(G_OBJECT(WrBtnA), "clicked", - G_CALLBACK(CH34x_EppWrite_Addr), (gpointer)entry_data_Epp2); - - label = gtk_label_new(buffer[0]); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label); -} - -//MEM Mode Page -void notebook_add_page2(GtkWidget *notebook, GtkWidget *frame) -{ - GtkWidget *label; - GtkWidget *frame1; - GtkWidget *frame2; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *table; - GtkWidget *RdBtn; - GtkWidget *WrBtn; - GtkWidget *radioBtn1; - GtkWidget *radioBtn2; - - MemMode = 0x00; - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(frame), vbox); - frame1 = gtk_frame_new("MEM ADDR MODE CONFIGURE"); - gtk_box_pack_start(GTK_BOX(vbox), frame1, FALSE, FALSE, 20); - hbox = gtk_hbox_new(FALSE, 20); - gtk_container_add(GTK_CONTAINER(frame1), hbox); - radioBtn1 = gtk_radio_button_new_with_label(NULL, "Read/Write MEM Addr0 Mode"); - gtk_box_pack_start(GTK_BOX(hbox), radioBtn1, FALSE, FALSE, 20); - radioBtn2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn1), "Read/Write MEM Addr1 Mode"); - gtk_box_pack_start(GTK_BOX(hbox), radioBtn2, FALSE, FALSE, 20); - g_signal_connect(G_OBJECT(radioBtn1), "released", - G_CALLBACK(On_MemAddr_Radio_Mode), (gpointer)1); - g_signal_connect(G_OBJECT(radioBtn2), "released", - G_CALLBACK(On_MemAddr_Radio_Mode), (gpointer)2); - frame2 = gtk_frame_new("MEM DATA READ/WRITE"); - gtk_box_pack_start(GTK_BOX(vbox), frame2, FALSE, FALSE, 20); - table = gtk_table_new(6, 6, TRUE); - gtk_container_add(GTK_CONTAINER(frame2), table); - label = gtk_label_new("MEM Mode Read: WR#=1, DS#/RD#=0, AS#=0, D0~D7=input\n" \ - "MEM Mode Write: WR#=0, DS#/RD#=1, AS#=0, D0~D7=output"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 5, 0, 2); - label = gtk_label_new("Length :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); - entryMem = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entryMem, 1, 3, 2, 3); - label = gtk_label_new("(0 ~ 0xff)"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, 2, 3); - label = gtk_label_new("Data :"); - gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); - entry_data_Mem = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_Mem, 1, 6, 3, 4); - RdBtn = gtk_button_new_with_label(" Read "); - gtk_table_attach_defaults(GTK_TABLE(table), RdBtn, 3, 4, 6, 7); - WrBtn = gtk_button_new_with_label(" Write "); - gtk_table_attach_defaults(GTK_TABLE(table), WrBtn, 4, 5, 6, 7); - g_signal_connect(G_OBJECT(RdBtn), "clicked", - G_CALLBACK(CH34x_MEMRead), (gpointer)entry_data_Mem); - g_signal_connect(G_OBJECT(WrBtn), "clicked", - G_CALLBACK(CH34x_MEMWrite), (gpointer)entry_data_Mem); - - label = gtk_label_new(buffer[1]); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label); -} - -//EEPROM Write -void CH34x_EEPROM_Write(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned long iAddr; - unsigned char oBuffer[MAX_LENGTH]; - const char *len; - unsigned int retual_length; - unsigned char *Addr_tmp; - unsigned char temp[10]; - int retval; - - memset(oBuffer, 0, sizeof(oBuffer)); - memset(temp, 0, sizeof(temp)); - Addr_tmp = gtk_entry_get_text(GTK_ENTRY(entry_addr_I2c1)); - iAddr = char_to_hex(Addr_tmp); - len = gtk_entry_get_text(GTK_ENTRY(entry_len_I2c1)); - iLength = char_to_hex(len); - len = NULL; - len = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)Data)); - retual_length = strlen((unsigned char *)len) % 2 == 0 ? strlen((unsigned char *)len) / 2 : (strlen((unsigned char *)len) / 2 + 1);; - hex_to_char(temp, retual_length); - gtk_entry_set_text(GTK_ENTRY(entry_len_I2c1), temp); - string_to_char(len, oBuffer); - retval = CH34xWriteEEPROM( Eeprom_ID, iAddr, retual_length, oBuffer ); - if( retval == false ) - { - printf("------->Write Error\n"); - } -} - -//EEPROM Mode -> Read -void CH34x_EEPROM_Read(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned long iAddr; - unsigned char iBuffer[MAX_LENGTH] = {'\0'}; - const char *len; - unsigned char *Addr_tmp; - const char *ReadBuffer; - int retval; - int i; - ReadBuffer = (char*)malloc(sizeof(unsigned char) * DEFAULT_BUFFER_LEN); - Addr_tmp = gtk_entry_get_text(GTK_ENTRY(entry_addr_I2c2)); - iAddr = char_to_hex(Addr_tmp); - len = gtk_entry_get_text(GTK_ENTRY(entry_len_I2c2)); - iLength = char_to_hex(len); - retval = CH34xReadEEPROM( Eeprom_ID, iAddr, iLength, iBuffer ); - if( retval == false ) - { - printf("Read EEPROM Error\n"); - } - char_to_string( iBuffer, ReadBuffer, iLength ); - gtk_entry_set_text(GTK_ENTRY((GtkWidget *)Data), ReadBuffer); - free( ReadBuffer ); -} - -//EEPROM Mode Page -void notebook_add_page3(GtkWidget *notebook, GtkWidget *frame) -{ - GtkWidget *label; - GtkWidget *hbox; - GtkWidget *vbox1; - GtkWidget *vbox2; - GtkWidget *WrBtn; - GtkWidget *RdBtn; - GtkWidget *frame1; - GtkWidget *frame2; - GtkWidget *frame3; - GtkWidget *table; - GtkWidget *radioBtn1; - GtkWidget *radioBtn2; - GtkWidget *radioBtn3; - GtkWidget *radioBtn4; - GtkWidget *radioBtn5; - GtkWidget *radioBtn6; - GtkWidget *radioBtn7; - GtkWidget *radioBtn8; - GtkWidget *radioBtn9; - GtkWidget *radioBtn10; - GtkWidget *radioBtn11; - GtkWidget *radioBtn12; - GtkWidget *radioBtn13; - -// GtkWidget *scroll_window; -// GtkWidget *buffer1; - - Eeprom_ID = ID_24C08; - hbox = gtk_hbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(frame), hbox); - frame1 = gtk_frame_new("EEPROM Type"); - gtk_box_pack_start(GTK_BOX(hbox), frame1, FALSE, FALSE, 10); - vbox1 = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(frame1), vbox1); - radioBtn1 = gtk_radio_button_new_with_label(NULL, "24C01"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn1, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn1),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)1); - radioBtn2 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn1), "24C02"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn2, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn2),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)2); - radioBtn3 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn2), "24C04"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn3, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn3),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)3); - radioBtn4 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn3), "24C08"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn4, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn4),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)4); - radioBtn5 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn4), "24C16"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn5, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn5),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)5); - radioBtn6 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn5), "24C32"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn6, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn6),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)6); - radioBtn7 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn6), "24C64"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn7, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn7),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)7); - radioBtn8 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn7), "24C128"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn8, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn8),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)8); - radioBtn9 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn8), "24C256"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn9, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn9),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)9); - radioBtn10 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn9), "24C512"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn10, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn10),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)10); - radioBtn11 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn10), "24C1024"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn11, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn11),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)11); - radioBtn12 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn11), "24C2048"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn12, FALSE, FALSE, 5); - g_signal_connect(G_OBJECT(radioBtn12),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)12); - radioBtn13 = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON(radioBtn12), "24C4096"); - gtk_box_pack_start(GTK_BOX(vbox1), radioBtn13, FALSE, FALSE, 5); - - gtk_toggle_button_set_active(radioBtn4, TRUE); - g_signal_connect(G_OBJECT(radioBtn13),"released", - G_CALLBACK(On_Eeprom_Radio_Mode), (gpointer)13); - vbox2 = gtk_vbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 5); - frame2 = gtk_frame_new("Write Data"); - gtk_container_add(GTK_CONTAINER(vbox2), frame2); - table = gtk_table_new(8, 6, TRUE); - gtk_container_add(GTK_CONTAINER(frame2), table); - label = gtk_label_new("Start Addr Of Data Unit:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 0, 1); - entry_addr_I2c1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_addr_I2c1, 0, 2, 1, 2); - label = gtk_label_new("Write Length:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); - entry_len_I2c1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_len_I2c1, 0, 2, 3, 4); - WrBtn = gtk_button_new_with_label(" Write "); - gtk_table_attach_defaults(GTK_TABLE(table), WrBtn, 3, 4, 3, 4); - label = gtk_label_new("Data Of Write:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 4, 5); - entry_data_I2c1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_I2c1, 0, 5, 5, 6); - g_signal_connect(G_OBJECT(WrBtn), "clicked", - G_CALLBACK(CH34x_EEPROM_Write), (gpointer)entry_data_I2c1); - - frame3 = gtk_frame_new("Read Data"); - gtk_container_add(GTK_CONTAINER(vbox2), frame3); - table = gtk_table_new(8, 6, TRUE); - gtk_container_add(GTK_CONTAINER(frame3), table); - label = gtk_label_new("Start Addr Of Data Unit:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 0, 1); - entry_addr_I2c2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_addr_I2c2, 0, 2, 1, 2); - label = gtk_label_new("Read Length:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); - entry_len_I2c2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_len_I2c2, 0, 2, 3, 4); - RdBtn = gtk_button_new_with_label(" Read "); - gtk_table_attach_defaults(GTK_TABLE(table), RdBtn, 3, 4, 3, 4); - label = gtk_label_new("Data Of Read:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 4, 5); - entry_data_I2c2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_I2c2, 0, 5, 5, 6); - g_signal_connect(G_OBJECT(RdBtn), "clicked", - G_CALLBACK(CH34x_EEPROM_Read), (gpointer)entry_data_I2c2); - -// entry_data = gtk_text_view_new(); -// buffer1 = gtk_text_view_get_buffer(GTK_TEXT_VIEW(entry_data)); -// scroll_window = gtk_scrolled_window_new(NULL, NULL); -// gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), -// GTK_POLICY_NEVER, -// GTK_POLICY_AUTOMATIC); -// gtk_container_add(GTK_CONTAINER(scroll_window), entry_data); -// gtk_table_attach_defaults(GTK_TABLE(table), scroll_window, 0, 6, 5, 8); -// -// insert_text(buffer1); - - - label = gtk_label_new(buffer[2]); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label); -} - -//Falsh ReadByte -BOOL CH34x_Flash_ReadByte( PUCHAR oBuffer, ULONG iAddr, ULONG iLength ) -{ - ULONG mLen, iChipselect; - mLen = iLength; - iChipselect = 0x80; - oBuffer[0] = ReadByte; - oBuffer[1] = (UCHAR)( iAddr >> 16 & 0xff ); - oBuffer[2] = (UCHAR)( iAddr >> 8 & 0xff ); - oBuffer[3] = (UCHAR)( iAddr & 0xff ); - if( CH34xStreamSPI4( iChipselect, mLen, oBuffer ) == false ) - return false; - return true; -} - -//Write Enable -BOOL CH34xWriteEnable() -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[2]; - mWrBuf[0] = WREN; - mLen = 2; - iChipselect = 0x80; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - else - return true; -} - -//Write wait -BOOL CH34xFlash_Wait() -{ - ULONG mLen, iChipselect; - ULONG i = 0; - UCHAR mWrBuf[3]; - UCHAR status; - mLen = 3; - iChipselect = 0x80; - mWrBuf[0] = RDSR; - do{ - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - }while( status & 1 ); - return true; -} - -//Sector Erase: Every 4K -BOOL CH34xSectorErase( ULONG StartAddr ) -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[4]; - if( CH34xWriteEnable() == false ) - return false; - mWrBuf[0] = Sector_Erase; - mWrBuf[1] = (UCHAR)( StartAddr >> 16 & 0xff ); - mWrBuf[2] = (UCHAR)( StartAddr >> 8 & 0xf0 ); - mWrBuf[3] = 0x00; - mLen = 4; - iChipselect = 0x80; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - - if( CH34xFlash_Wait() == false ) - return false; - return true; -} - -//Read Block Data -BOOL CH34x_Flash_ReadBlock( PUCHAR oBuffer, ULONG iAddr, ULONG iLength ) -{ - ULONG mLen, iChipselect; - UCHAR mWrBuf[1028]; - ULONG i; - mLen = 1024; //Read length Once - iChipselect = 0x80; - iAddr = iAddr - iAddr % MAX_BUFFER_LENGTH; - for( i=0; i < iLength;) - { - memset(mWrBuf, 0, sizeof(mWrBuf)); - mWrBuf[0] = ReadByte; - mWrBuf[1] = (UCHAR)( iAddr >> 16 & 0xff ); - mWrBuf[2] = (UCHAR)( iAddr >> 8 & 0xff ); - mWrBuf[3] = (UCHAR)( iAddr & 0xff ); - if( CH34xStreamSPI4( iChipselect, mLen+4, mWrBuf ) == false ) - return false; - memcpy(oBuffer + i, &mWrBuf[4], 1024 * sizeof(unsigned char)); - i = i + 1024; - iAddr += 1024; - } - - return true; -} - -//Flash Read Status -BOOL CH34xFlashReadStatus() -{ - ULONG mLen, iChipselect; - UCHAR status; - UCHAR mWrBuf[3]; - iChipselect = 0x80; - mLen = 3; - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - if( status & 0x0c ) - { - mWrBuf[0] = EWSR; - mLen = 1; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - mLen = 2; - memset( mWrBuf, 0, sizeof( UCHAR ) * mLen ); - mWrBuf[0] = WRSR; - mWrBuf[1] = status & (~0x0c); - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - } - mWrBuf[0] = RDSR; - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - status = mWrBuf[1]; - return true; -} - -// One Byte Write -BOOL CH34x_Flash_Write( PVOID iBuffer, ULONG iAddr, ULONG iLength ) -{ - ULONG i; - ULONG iChipselect = 0x80; - UCHAR mWrBuf[5]; - ULONG mLen = 5; - for( i = 0; i < iLength; i++ ) - { - if( !CH34xWriteEnable() ) - return false; - mWrBuf[0] = Byte_Program; - mWrBuf[1] = (UCHAR)(iAddr >> 16 & 0xff); - mWrBuf[2] = (UCHAR)(iAddr >> 8 & 0xff); - mWrBuf[3] = (UCHAR)(iAddr & 0xff); - iAddr++; - mWrBuf[4] = *((PUCHAR)iBuffer + i); - if( CH34xStreamSPI4( iChipselect, mLen, mWrBuf ) == false ) - return false; - memset( mWrBuf, 0, sizeof( UCHAR ) * mLen ); - if( !CH34xFlash_Wait() ) - return false; - } - return true; -} - -//FLASH Mode: Write Block Data -void CH34xWriteSPI(GtkWidget *Button, gpointer Data) -{ - GtkWidget *label; - int retval; - unsigned char iBuffer[MAX_BUFFER_LENGTH]; - unsigned char oBuffer[MAX_LENGTH]; - unsigned long iLength = 0; - unsigned int retual_length; - unsigned long iAddr = 0; - unsigned long Cur_state = 0; - const unsigned char *len; - unsigned char *Addr_tmp; - unsigned char temp[10]; - int i; - - memset(iBuffer, 0, sizeof(iBuffer)); - memset(oBuffer, 0, sizeof(iBuffer)); - memset(temp, 0, sizeof(temp)); - Addr_tmp = gtk_entry_get_text(GTK_ENTRY(entry_addr_Flash1)); - iAddr = char_to_hex(Addr_tmp); - len = gtk_entry_get_text(GTK_ENTRY(entry_len_Flash1)); - iLength = char_to_hex(len); - retval = CH34xFlashReadStatus(); - if( retval == false ) - { - printf("error in flash status\n"); - goto error; - } - retval = CH34x_Flash_ReadBlock( iBuffer, iAddr, MAX_BUFFER_LENGTH ); - if( retval == false ) - { - printf("error in flash ReadBlock\n"); - goto error; - } - retval = CH34xSectorErase( iAddr ); - if( retval == false ) - { - printf("error in flash Sector Erase\n"); - goto error; - } - len = NULL; - len = gtk_entry_get_text(GTK_ENTRY((GtkWidget *)Data)); - retual_length = strlen((unsigned char *)len) % 2 == 0 ? strlen((unsigned char *)len) / 2 : (strlen((unsigned char *)len) / 2 + 1); - hex_to_char(temp, retual_length); - gtk_entry_set_text(GTK_ENTRY(entry_len_Flash1), temp); - Cur_state = iAddr % MAX_BUFFER_LENGTH; - string_to_char(len, oBuffer); - for( i = 0; i < retual_length; i++ ) - iBuffer[Cur_state + i] = oBuffer[i]; - retval = CH34x_Flash_Write( iBuffer, (iAddr - iAddr % MAX_BUFFER_LENGTH), MAX_BUFFER_LENGTH ); - if( retval == false ) - { - printf("error in flash Write\n"); - goto error; - } - - g_message("Success\n"); - return; - -error: - g_message("failed\n"); - return; -} - -//FLASH MODE: Read Block Data -void CH34xReadSPI(GtkWidget *Button, gpointer Data) -{ - unsigned long iLength = 0; - unsigned long iAddr; - unsigned char iBuffer[MAX_LENGTH] = {'\0'}; - const unsigned char *len; - unsigned char *Addr_tmp; - const char *ReadBuffer; - int retval; - int i; - ReadBuffer = (char*)malloc(sizeof(unsigned char) * DEFAULT_BUFFER_LEN); - Addr_tmp = gtk_entry_get_text(GTK_ENTRY(entry_addr_Flash2)); - iAddr = char_to_hex(Addr_tmp); - len = gtk_entry_get_text(GTK_ENTRY(entry_len_Flash2)); - iLength = char_to_hex(len); - retval = CH34x_Flash_ReadByte( iBuffer, iAddr, iLength + 4 ); - if( retval == false ) - { - printf("Read Flash Error\n"); - } - char_to_string(&iBuffer[4], ReadBuffer, iLength); - gtk_entry_set_text(GTK_ENTRY((GtkWidget *)Data), ReadBuffer); - free( ReadBuffer ); -} - -//FLASH MODE PAGE -void notebook_add_page4(GtkWidget *notebook, GtkWidget *frame) -{ - GtkWidget *label; - GtkWidget *vbox; - GtkWidget *frame1; - GtkWidget *frame2; - GtkWidget *table; - GtkWidget *WrBtn; - GtkWidget *RdBtn; - - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(frame), vbox); - frame1 = gtk_frame_new("Flash Write Data"); - gtk_container_add(GTK_CONTAINER(vbox), frame1); - table = gtk_table_new(8, 8, TRUE); - gtk_container_add(GTK_CONTAINER(frame1), table); - label = gtk_label_new("Start Addr Of Data Unit:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 0, 1); - entry_addr_Flash1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_addr_Flash1, 0, 2, 1, 2); - label = gtk_label_new("Write Length:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); - entry_len_Flash1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_len_Flash1, 0, 2, 3, 4); - WrBtn = gtk_button_new_with_label(" Write "); - gtk_table_attach_defaults(GTK_TABLE(table), WrBtn, 3, 4, 3, 4); - label = gtk_label_new("Data Of Write:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 4, 5); - entry_data_Flash1 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_Flash1, 0, 6, 5, 6); - g_signal_connect(G_OBJECT(WrBtn), "clicked", - G_CALLBACK(CH34xWriteSPI), (gpointer)entry_data_Flash1); - - frame2 = gtk_frame_new("Flash Read Data"); - gtk_container_add(GTK_CONTAINER(vbox), frame2); - table = gtk_table_new(8, 8, TRUE); - gtk_container_add(GTK_CONTAINER(frame2), table); - label = gtk_label_new("Start Addr Of Data Unit:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 3, 0, 1); - entry_addr_Flash2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_addr_Flash2, 0, 2, 1, 2); - label = gtk_label_new("Read Length:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 2, 3); - entry_len_Flash2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_len_Flash2, 0, 2, 3, 4); - RdBtn = gtk_button_new_with_label(" Read "); - gtk_table_attach_defaults(GTK_TABLE(table), RdBtn, 3, 4, 3, 4); - label = gtk_label_new("Data Of Read:"); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 2, 4, 5); - entry_data_Flash2 = gtk_entry_new(); - gtk_table_attach_defaults(GTK_TABLE(table), entry_data_Flash2, 0, 6, 5, 6); - g_signal_connect(G_OBJECT(RdBtn), "clicked", - G_CALLBACK(CH34xReadSPI), (gpointer)entry_data_Flash2); - - label = gtk_label_new(buffer[3]); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), frame, label); -} - -//Second Window -GtkWidget *create_sub_window(GtkWidget *entry) -{ - GtkWidget *sub_window; - GtkWidget *frame; - GtkWidget *label; - GtkWidget *notebook; - int retval, index; - - sub_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - g_signal_connect(G_OBJECT(sub_window), "delete_event", - G_CALLBACK(gtk_widget_destroy), sub_window); - gtk_window_set_title(GTK_WINDOW(sub_window), "WCH CH34x Debug"); - gtk_window_set_position(GTK_WINDOW(sub_window), GTK_WIN_POS_CENTER); - gtk_window_set_default_size(GTK_WINDOW(sub_window), 600, 600); - gtk_container_set_border_width(GTK_CONTAINER(sub_window), 10); - index = *(gtk_entry_get_text(GTK_ENTRY(entry))) - '1'; - retval = CH34xOpenDevice( index ); - if(!retval) - { - printf("Function Open Error\n"); - return NULL; - } - char *drv_version = (char *)malloc( sizeof( char ) * 30 ); - retval = CH34x_GetDrvVer( drv_version ); - if( retval == false ) - { - err( "CH34x_GetDrvVer Error" ); - return -1; - } - printf( "drv_version : %s\n", drv_version ); - free( drv_version ); - PUCHAR VendorId = (char *)malloc( sizeof(unsigned char)); - retval = CH34x_GetVendorId( VendorId ); - if( retval == false ) - { - err( "CH34x_GetVendorId Error" ); - return -1; - } - printf( "VendorId : 0x%02x\n", *VendorId ); - free( VendorId ); - notebook = gtk_notebook_new(); - gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook),GTK_POS_TOP); - gtk_container_add(GTK_CONTAINER(sub_window), notebook); - - frame = gtk_frame_new(bufferframe[0]); - gtk_widget_set_size_request(frame, 600, 500); - notebook_add_page1(notebook, frame); - frame = gtk_frame_new(bufferframe[1]); - gtk_widget_set_size_request(frame, 600, 500); - notebook_add_page2(notebook, frame); - frame = gtk_frame_new(bufferframe[2]); - gtk_widget_set_size_request(frame, 600, 500); - notebook_add_page3(notebook, frame); - frame = gtk_frame_new(bufferframe[3]); - gtk_widget_set_size_request(frame, 600, 500); - notebook_add_page4(notebook, frame); - g_signal_connect(G_OBJECT(sub_window), "destroy", - G_CALLBACK(gtk_destroy_sub_window), NULL); - gtk_widget_show_all(sub_window); - return sub_window; -} - -void gtk_show_sub(GtkWidget *button, gpointer data) -{ - window_sub = create_sub_window((GtkWidget *)data); -} - -//Main Window -GtkWidget *create_main_window() -{ - GtkWidget *window; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *label_dev_list; - GtkWidget *label_input; - GtkWidget *frame; - GtkWidget *entry_main; - GtkWidget *button_next; - GtkWidget *button_quit; - - int retval; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); - gtk_window_set_default_size(GTK_WINDOW(window), 300, 100); - gtk_window_set_title(GTK_WINDOW(window), "WCH CH34x Chips Debug"); - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(window), vbox); - frame = gtk_frame_new("Current CH34x Device List"); - - retval = get_ch34x_dev_list(); - if(retval == 0) - label_dev_list = gtk_label_new(gtk_dev_list); - else - label_dev_list = gtk_label_new("Can't find any devices"); - gtk_container_add(GTK_CONTAINER(frame), label_dev_list); - gtk_label_set_justify(GTK_LABEL(label_dev_list), GTK_JUSTIFY_LEFT); - gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5); - - hbox = gtk_hbox_new(FALSE, 10); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 10); - gtk_container_add(GTK_CONTAINER(vbox), hbox); - - label_input = gtk_label_new("Input Dev Num:"); - gtk_box_pack_start(GTK_BOX(hbox), label_input, FALSE, FALSE, 10); - - entry_main = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), entry_main, FALSE, FALSE, 10); - - button_next = gtk_button_new_with_label("Next"); - gtk_box_pack_start(GTK_BOX(hbox), button_next, FALSE, FALSE, 10); - - button_quit = gtk_button_new_with_label("Quit"); - gtk_box_pack_start(GTK_BOX(hbox), button_quit, TRUE, TRUE, 10); - - gtk_widget_show_all(window); - g_signal_connect(G_OBJECT(button_next), "clicked", - G_CALLBACK(gtk_show_sub), entry_main); - g_signal_connect(G_OBJECT(button_quit), "clicked", - G_CALLBACK(gtk_main_quit), NULL); - g_signal_connect(G_OBJECT(window), "destroy", - G_CALLBACK(gtk_main_quit), NULL); - return window; -} - -int main(int argc, char *argv[]) -{ - gtk_init(&argc, &argv); - window_main = create_main_window(); - gtk_widget_show(window_main); - gtk_main(); - return 0; -} - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" deleted file mode 100644 index 7e9c523..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.c" +++ /dev/null @@ -1,1077 +0,0 @@ -// Created on: Nov 28, 2013 -/* - * File : ch34x_lib.c ch34x_lib.h - * - ********************************************************************** - *********** Copyright (C) WCH 2013.11.28 *************** - *********** web: http://www.wch.cn *************** - *********** AUTHOR: TECH33 (tech@wch.cn) *************** - *********** Used for USB Interface Chip (CH341) *************** - *********** Nanjing QinHeng Electronics Co.,Ltd *************** - ********************************************************************** - * - * Running Environment: Linux - * This file is used for CH34x in Epp/MEM/I2C/SPI - * - */ - -#include -#include -#include -#include -#include //for 'ioctl' -#include -#include -#include - -#include "ch34x_lib.h" - -#define CH34x_GET_DRV_VERSION 0x00000001 -#define CH34x_CHIP_VERSION 0x00000003 -#define CH34x_FUNCTION_SETPARA_MODE 0x00000004 -#define CH34x_FUNCTION_READ_MODE 0x00000005 -#define CH34x_FUNCTION_WRITE_MODE 0x00000006 -#define CH34x_I2C_READ_MODE 0x00000007 -#define CH34x_I2C_WRITE_MODE 0x00000008 -#define CH34x_PIPE_DATA_DOWN 0x00000009 -#define CH34x_PIPE_WRITE_READ 0x0000000a -#define CH34x_PIPE_DEVICE_CTRL 0x0000000b - -int dev_fd; -unsigned char VenIC; -unsigned char StreamMode = 1; - -/* - * ******************************************************************** - * FUNCTION : Open Device - * arg: - * index : the number of device - * ******************************************************************** - */ -int CH34xOpenDevice( UCHAR index ) -{ - int retval = 0; - char dev_path[20] = {'\0'}; - memset( dev_path, 0, sizeof(dev_path)); - sprintf( dev_path, "%s%c", "/dev/ch34x_pis", '0' + index); - - dev_fd = open( dev_path, O_RDWR ); - if( dev_fd == -1 ) - { - printf("open /dev/ch34x_pis error, LINE : %d\n",__LINE__ ); - return false; - } -// printf("Open successful\n"); - - return dev_fd; -} - -/* - * ******************************************************************** - * FUNCTION : Close Device - * ******************************************************************** - */ -void CH34xCloseDevice() -{ - close( dev_fd ); -} - -/* - * ******************************************************************** - * FUNCTION : Get Driver Version - * arg: - * drv_version : output buffer of driver version - * ******************************************************************** - */ -BOOL CH34x_GetDrvVer( char *drv_version ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_GET_DRV_VERSION, (unsigned long)drv_version ); - if( retval == -1 ) - { - printf( "CH34x_GET_DRV_VERSION function error line:%d\n", __LINE__ ); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Get Chip ID - * arg: - * VendorId : output data of chip version(CH341A : 0x0030) - * ******************************************************************** - */ -BOOL CH34x_GetVendorId( PULONG VendorId ) -{ - int retval = 0; - retval = ioctl( dev_fd, CH34x_CHIP_VERSION, (unsigned long)VendorId); - if( retval == -1 ) - { - printf("Get Chip Version Error,line:%d\n",__LINE__); - return false; - } - - VenIC = (UCHAR)*VendorId; -// printf("VenIc is 0x%x\n",VenIC); - return true; -} - -//Mode = 0 ------>EPP Mode -//Mode = 1 ------>EPP Mode -//Mode = 2 ------>MEM Mode -/* - * ******************************************************************** - * FUNCTION : Set Para Mode - * arg: - * Mode : set Para Mode( EPP or MEM ) - * ******************************************************************** - */ -BOOL CH34xSetParaMode( ULONG Mode ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_FUNCTION_SETPARA_MODE, Mode); - if( retval < 0 ) - { - printf("SetPara Error\n"); - return false; - } - - return true; -} - -//Mode = 0 ------>EPP Mode -//Mode = 1 ------>EPP Mode -//Mode = 2 ------>MEM Mode -/* - * ******************************************************************** - * FUNCTION : Init Para - * arg: - * Mode : first reset ,then set Para Mode( EPP or MEM ) - * ******************************************************************** - */ -BOOL CH34xInitParallel( ULONG Mode ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_PIPE_DEVICE_CTRL, Mode); - if( retval < 0 ) - { - printf("Init Parallel Error,LINE : %d\n", __LINE__); - return false; - } - return true; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : EPP READ - * arg: - * oBuffer : Output buffer - * ioLength: should read the length of Data/Addr - * PipeMode: Read Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Addr - * ******************************************************************** - */ -int CH34xEppRead( PUCHAR oBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval = 0; - ULONG mReturnlen; - retval = ioctl( dev_fd, CH34x_FUNCTION_READ_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Pipe Error\n"); - return false; - } - mReturnlen = read( dev_fd, oBuffer, ioLength ); - if( mReturnlen != ioLength ) - { - printf("Numbers of wanted output is not equal to input\n"); - return false; - } - - return mReturnlen; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : EPP Write - * arg: - * iBuffer : Iutput buffer - * ioLength: should Write the length of Data/Addr - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Addr - * ******************************************************************** - */ -int CH34xEppWrite( PUCHAR iBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval =0; - retval = ioctl( dev_fd, CH34x_FUNCTION_WRITE_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Write Pipe Error\n"); - return false; - } - retval = write( dev_fd, iBuffer, ioLength ); - if( retval < 0 ) - { - printf("Write Epp Error\n"); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Write Data - * arg: - * iBuffer : Output buffer - * ioLength: should Write the length of Data - * ******************************************************************** - */ -int CH34xEppWriteData( PUCHAR iBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppWrite( iBuffer, ioLength, 0); - if( !retval ) - return false; - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Read Data - * arg: - * oBuffer : Iutput buffer - * ioLength: should read the length of Data - * ******************************************************************** - */ -int CH34xEppReadData( PUCHAR oBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppRead( oBuffer, ioLength, 0 ); // set Pipe0,then Read Data from pipe0 - if( !retval ) - return false; - return retval; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Write Addr - * arg: - * iBuffer : Output buffer Data - * ioLength: should write the length of Addr - * ******************************************************************** - */ -int CH34xEppWriteAddr( PUCHAR iBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppWrite( iBuffer, ioLength, 1 ); // set Pipe1,then Write Data from pipe1 - if( !retval ) - return false; - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Read Addr - * arg: - * oBuffer : Iutput buffer Data - * ioLength: should read the length of Addr - * ******************************************************************** - */ -int CH34xEppReadAddr( PUCHAR oBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppRead( oBuffer, ioLength, 1 ); // set Pipe1,then Read Data from pipe1 - if( !retval ) - return false; - return retval; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Set Addr - * arg: - * iAddr: Need set the iAddr - * ******************************************************************** - */ -int CH34xEppSetAddr( ULONG iAddr ) -{ - int retval; - UCHAR iBuffer[4]; - ULONG mLength; - iBuffer[0] = iAddr; - mLength = 1; - retval = CH34xEppWriteAddr( iBuffer, mLength ); - if( !retval ) - return false; - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Init MEM - * ******************************************************************** - */ -BOOL CH34xInitMEM(void) -{ - int retval = 0; - ULONG iMode; - iMode = 0x02; - retval = CH34xInitParallel( iMode ); - if( retval == false ) - { - printf("Init MEM Mode Error\n"); - return false; - } - return true; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : MEM Read - * arg: - * oBuffer : Output buffer - * ioLength: should Read the length of Data - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Data - * ******************************************************************** - */ -int CH34xMEMReadData( PUCHAR oBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval = 0; - ULONG mReturnlen; - retval = ioctl( dev_fd, CH34x_FUNCTION_READ_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Pipe Error\n"); - return false; - } - mReturnlen = read( dev_fd, oBuffer, ioLength ); - if( mReturnlen != ioLength ) - { - printf("Numbers of wanted output is not equal to input\n"); - return false; - } - - return mReturnlen; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : MEM Write - * arg: - * iBuffer : Iutput buffer - * ioLength: should Write the length of Data - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Data - * ******************************************************************** - */ -int CH34xMEMWriteData( PUCHAR iBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval =0; - retval = ioctl( dev_fd, CH34x_FUNCTION_WRITE_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Write Pipe Error\n"); - return false; - } - retval = write( dev_fd, iBuffer, ioLength ); - if( retval < 0 ) - { - printf("Write Epp Error\n"); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Set Stream Mode - * arg: - * Mode : Set Stream Mode - * -> bit0~1 : set I2C SCL rate - * --> 00 : Low Rate /20KHz - * --> 01 : Default Rate /100KHz - * --> 10 : Fast Rate /400KHz - * --> 11 : Full Rate /750KHz - * -> bit2 : set spi mode - * --> 0 : one in one out(D3 :clk/ D5 :out/ D7 :in) - * --> 1 : two in two out(D3 :clk/ D4,D5 :out/ D6,D7 :in) - * -> bit7 : set spi data mode - * --> 0 : low bit first - * --> 1 : high bit first - * other bits must keep 0 - * ******************************************************************** - */ -BOOL CH34xSetStream( ULONG Mode ) -{ - UCHAR mBuffer[CH341_PACKET_LENGTH]; - ULONG mLength; - if( VenIC < 0x20 ) - return false; - StreamMode = (UCHAR)( Mode & 0x8F ); - mBuffer[0] = CH341A_CMD_I2C_STREAM; - mBuffer[1] = CH341A_CMD_I2C_STM_SET; - mBuffer[2] = CH341A_CMD_I2C_STM_END; - mLength = 3; - if( CH34xWriteData( mBuffer, &mLength )) - { - if( mLength >= 2 ) - return true; - } - return false; -} - -/* - * ******************************************************************** - * FUNCTION : Set Delay - * arg: - * iDelay : set delay time(ms) - * ******************************************************************** - */ -BOOL CH34xSetDelaymS( ULONG iDelay ) -{ - UCHAR mBuffer[CH341_PACKET_LENGTH]; - ULONG mLength; - if( VenIC < 0x20 ) - return false; - while( iDelay ) - { - mLength = iDelay >= CH341A_CMD_I2C_STM_DLY ? CH341A_CMD_I2C_STM_DLY : iDelay; - iDelay -= mLength; - mBuffer[0] = CH341A_CMD_I2C_STREAM; - mBuffer[1] = (UCHAR)( CH341A_CMD_I2C_STM_MS | mLength ); - mBuffer[2] = CH341A_CMD_I2C_STM_END; - mLength = 3; - if(( CH34xWriteData( mBuffer, &mLength )) == false ) - return false; - } - return true; -} - -//This is needless for the moment -BOOL CH34xReadData( PVOID oBuffer, PULONG ioLength ) -{ - UCHAR mBuffer[MAX_BUFFER_LENGTH]; - ULONG mLength; -} - -/* - * ******************************************************************** - * FUNCTION : Write Data ( for i2c/flash ) - * arg: - * iBuffer : should Input data buffer - * ioLength : write length of data - * ******************************************************************** - */ -BOOL CH34xWriteData( PVOID iBuffer, PULONG ioLength ) -{ - int retval = 0; - unsigned long mLen; - struct{ - ULONG length; - PUCHAR ByteBuffer; - }Write; - if( *ioLength > MAX_BUFFER_LENGTH ) - *ioLength = MAX_BUFFER_LENGTH; - mLen = *ioLength; - Write.length = ioLength; - Write.ByteBuffer = (PUCHAR)malloc( sizeof( unsigned char ) * mLen ); - memcpy( Write.ByteBuffer, (PUCHAR)iBuffer, mLen ); -// printf("Write.ByteBuffer[0] :%x\n",Write.ByteBuffer[0]); - retval = ioctl( dev_fd, CH34x_PIPE_DATA_DOWN, (unsigned long)&Write ); - if ( retval == -1 ) - { - printf("error in pipe down\n"); - return false; - } - - free( Write.ByteBuffer ); - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read Data ( for i2c/flash ) - * arg: - * iWriteLength : should write the length of data - * iWriteBuffer : input buffer - * oReadLength : should read the length of data - * oReadBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xWriteRead( ULONG iWriteLength, PVOID iWriteBuffer, - /* ULONG iReadStep, ULONG iReadTimes,*/ - PULONG oReadLength, PVOID oReadBuffer) -{ - int retval = 0; - ULONG mLength, mReadlen; - ULONG iReadStep,iReadTimes; - struct{ - ULONG oReadlen; - PUCHAR iBuf; - PUCHAR oBuffer; - ULONG oReturnlen; - }Read; - iReadStep =*(PUCHAR)(iWriteBuffer+iWriteLength-8); - iReadTimes = *(PUCHAR)(iWriteBuffer+iWriteLength-4); - mReadlen = iReadStep * iReadTimes; - if( mReadlen == 0 ) - return false; - mLength = max( iWriteLength, mReadlen ); -#if 0 - printf("iWriteLength : %d\n",iWriteLength); - printf("iReadTimes : %d\n",iReadTimes); - printf("iReadStep : %d\n",iReadStep); -#endif - Read.iBuf = (PUCHAR)iWriteBuffer; - Read.oBuffer = (PUCHAR)oReadBuffer; - Read.oReturnlen = oReadLength; -// printf("iBuffer Addr is ------>:%p\n",Read.iBuf); - Read.oReadlen = iWriteLength; - retval = ioctl( dev_fd, CH34x_PIPE_WRITE_READ, (unsigned long)&Read ); - if( retval == -1 ) - { - printf("Error in pipe write/read\n"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read I2C Data Stream - * This function issue a set of packets of iWriteBuffer data - * arg: - * iWriteLength : should write the length of data - * iWriteBuffer : input buffer - * oReadLength : should read the length of data - * oReadBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer, - ULONG iReadLength, PVOID oReadBuffer ) -{ - UCHAR mBuffer[MAX_BUFFER_LENGTH]; - ULONG i, j, mLength; - PUCHAR mWrBuf; - - if( VenIC < 0x20 ) - return false; - mLength = max( iWriteLength, iReadLength ); - if( mLength > MAX_BUFFER_LENGTH ) - return false; - if( mLength <= DEFAULT_BUFFER_LEN ) - mWrBuf = (PVOID)mBuffer; - else - { - mWrBuf = (PVOID)malloc( sizeof( UCHAR ) * MAX_BUFFER_LENGTH ); - if( mWrBuf == NULL) - return false; - } - i = 0; - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - if(( StreamMode & 0x03 ) == 0 ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10; - mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10; - } - mWrBuf[i++] = CH341A_CMD_I2C_STM_STA; - if( iWriteLength ) - { - for( j = 0; j < iWriteLength; j++) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 2 ) - { - while( mLength-- ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mLength = CH341_PACKET_LENGTH - 1; - - } - mLength--; - mLength--; - if( mLength > iWriteLength - j) - mLength = iWriteLength - j; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_OUT | mLength); - while( mLength-- ) - mWrBuf[i++] = *((PUCHAR)iWriteBuffer + j++ ); - } - - } - if( iReadLength ) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 3 ) - { - while( mLength-- ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - if( iWriteLength > 1 ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STM_STA; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_OUT | 1); - mWrBuf[i++] = *(PUCHAR)iWriteBuffer | 0x01; - } - else if( iWriteLength ) - { - i--; - mWrBuf[i++] = *(PUCHAR)iWriteBuffer | 0x01; - } - for( j = 1; j < iReadLength; ) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1) - { - if( mLength ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mLength = iReadLength - j >= CH341_PACKET_LENGTH ? CH341_PACKET_LENGTH : iReadLength - j; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_IN | mLength); - j += mLength; - if( mLength >= CH341_PACKET_LENGTH ) - { - mWrBuf[i] = CH341A_CMD_I2C_STM_END; - i += CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - } - } - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1 ) - { - if( mLength) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mWrBuf[i++] = CH341A_CMD_I2C_STM_IN; - } - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1 ) - { - if( mLength ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mWrBuf[i++] = CH341A_CMD_I2C_STM_STO; - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = 0; - if( iReadLength ) - { - mWrBuf[i] = CH341_PACKET_LENGTH; - mWrBuf[i+4] = (iReadLength + CH341_PACKET_LENGTH -1)/CH341_PACKET_LENGTH; - i = i + 8; - } - if( iReadLength ) - { - j = CH34xWriteRead( i, mWrBuf, &mLength, oReadBuffer ); - if( mLength != iReadLength ) - { - printf("Return length is not equal to input length\n"); - j = false; - } - } - else - j = CH34xWriteData( mWrBuf, &i); - -// printf("Return mLength is %d\n", mLength); - if( max( iWriteLength, iReadLength ) >= DEFAULT_BUFFER_LEN ) - free( mWrBuf ); - - return ( j ); -} - -/* - * ******************************************************************** - * FUNCTION : Read EEPROM Data (For I2C) - * arg: - * iEepromID : EEPROM TYPE - * iAddr : the start addr for read - * iLength : should read the length of data - * oBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xReadEEPROM( EEPROM_TYPE iEepromID, ULONG iAddr, - ULONG iLength, PUCHAR oBuffer ) -{ - ULONG mLen; - UCHAR mWrBuf[4]; - - if( iEepromID >= ID_24C01 && iEepromID <= ID_24C16 ) - { - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | (iAddr >> 7) & 0x0E ); - mWrBuf[1] = (UCHAR)iAddr; - mLen = min( iLength, DEFAULT_BUFFER_LEN ); - if( !CH34xStreamI2C( 2, mWrBuf, mLen, oBuffer )) - return false; - iAddr += mLen; - iLength -= mLen; - oBuffer += mLen; - } - } - else if( iEepromID >= ID_24C32 && iEepromID <= ID_24C4096 ) - { - - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | (iAddr >> 15 ) & 0x0E ); - mWrBuf[1] = (UCHAR)( iAddr >> 8 ); - mWrBuf[2] = (UCHAR)iAddr; - mLen = min( iLength, DEFAULT_BUFFER_LEN ); - if( !CH34xStreamI2C( 3, mWrBuf, mLen, oBuffer )) - return false; - iAddr += mLen; - iLength -= mLen; - oBuffer += mLen; - } - } - else - return false; - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write EEPROM Data (For I2C) - * arg: - * iEepromID : EEPROM TYPE - * iAddr : the start addr for read - * iLength : should write the length of data - * iBuffer : Iutput buffer - * ******************************************************************** - */ - -//Note : Sometimes you should set Delay time( CH34xSetDelaymS()) after -// CH34xStreamI2C() -BOOL CH34xWriteEEPROM( EEPROM_TYPE iEepromID, ULONG iAddr, - ULONG iLength, PUCHAR iBuffer ) -{ - ULONG mLen; - UCHAR mWrBuf[256]; - if( iEepromID >= ID_24C01 && iEepromID <= ID_24C16 ) - { - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | ( iAddr >>7 ) & 0x0E); - mWrBuf[1] = (UCHAR)iAddr; - mLen = iEepromID >= ID_24C04 ? 16 - ( iAddr & 15 ) : 8 - (iAddr & 7 ); - if( mLen > iLength ) - mLen = iLength; - memcpy( &mWrBuf[2], iBuffer, mLen ); - if( !CH34xStreamI2C( 2 + mLen, mWrBuf, 0, NULL )) - return false; - iAddr += mLen; - iLength -= mLen; - iBuffer += mLen; - } - } - else if( iEepromID >= ID_24C32 && iEepromID <= ID_24C4096 ) - { - printf("Addr is %d\n",iAddr); - printf("iLength is %d\n",iLength); - printf("iBuffer is %x\n",*iBuffer); - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | ( iAddr >>15 ) & 0x0E ); - mWrBuf[1] = (UCHAR)( iAddr >> 8 ); - mWrBuf[2] = (UCHAR)iAddr; - mLen = iEepromID >= ID_24C512 ? 128 - ( iAddr & 127) : (iEepromID >= ID_24C128 ? 64 - ( iAddr & 63 ) : 32 - ( iAddr & 31)); - if( mLen > iLength ) - mLen = iLength; - memcpy( &mWrBuf[3], iBuffer, mLen ); - printf("mWrBuf[3] is %x\n",mWrBuf[3]); - if( !CH34xStreamI2C( 3 + mLen, mWrBuf, 0, NULL )) - return false; - iAddr += mLen; - iLength -= mLen; - iBuffer += mLen; - - } - } - else - return false; - - return true; - -} - -//Used for high bit transform -const UCHAR mMsbTable[256] = { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, - 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, // 0XH - 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, - 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, // 1XH - 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, - 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, // 2XH - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, - 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, // 3XH - 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, - 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, // 4XH - 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, - 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, // 5XH - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, - 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, // 6XH - 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, - 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, // 7XH - 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, - 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, // 8XH - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, - 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, // 9XH - 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, - 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, // AXH - 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, - 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, // BXH - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, - 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, // CXH - 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, - 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, // DXH - 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, - 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, // EXH - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, - 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF }; // FXH - -/* - * ******************************************************************** - * FUNCTION : Write/Read Flash Data (For SPI) - * arg: - * iChipselect : Flash cs enable - * iLength : the length of data - * ioBuffer : one in one out buffer - * ioBuffer2 : two in two out buffer - * ******************************************************************** - */ -BOOL CH34xStreamSPIx( ULONG iChipselect, ULONG iLength, - PVOID ioBuffer, PVOID ioBuffer2 ) -{ - UCHAR mBuffer[DEFAULT_BUFFER_LEN]; - ULONG i, j, mLength, mSelect, mCount,mReturn; - PUCHAR mWrBuf; - UCHAR c1, c2; - mReturn = iLength; - if( VenIC < 0x20 ) - { - printf("Not support this device\n"); - return false; - } - if( iLength <= DEFAULT_BUFFER_LEN/2 ) - { - mWrBuf = (PVOID)mBuffer; - i = DEFAULT_BUFFER_LEN; - } - else - { - mWrBuf = (PVOID)malloc( sizeof( UCHAR ) * MAX_BUFFER_LENGTH ); - if( mWrBuf == NULL ) - return false; - i = MAX_BUFFER_LENGTH; - } - memset( mWrBuf, 0, sizeof( UCHAR ) * i ); - i = 0; - if( iChipselect & 0x80 ) - { - mWrBuf[i++] = CH341A_CMD_UIO_STREAM; - switch( iChipselect & 0x03 ) - { - case 0x00: //DCK/D3->0, D0 ->0 - mSelect = 0x36; - break; - case 0x01: //DCK/D3->0, D1 ->0 - mSelect = 0x35; - break; - case 0x02: //DCK/D3->0, D2 ->0 - mSelect = 0x33; - break; - default: //DCK/D3->0, D4 ->0 - mSelect = 0x27; - break; - } - - mWrBuf[i++] = (UCHAR)( CH341A_CMD_UIO_STM_OUT | mSelect );// Output data - mWrBuf[i++] = (UCHAR)( CH341A_CMD_UIO_STM_DIR | 0x3F ); // set D5~D0 direct - mWrBuf[i++] = CH341A_CMD_UIO_STM_END; - i = CH341_PACKET_LENGTH; - } - if( iLength ) - { - if( (ULONG)ioBuffer2 < 4 ) - { - for( j = 0; j < iLength; ) - { - mLength = CH341_PACKET_LENGTH - 1; - if( mLength > iLength - j ) - mLength = iLength - j; - mWrBuf[i++] = CH341A_CMD_SPI_STREAM; - if( StreamMode & 0x80 ) - { - while( mLength-- ) - mWrBuf[i++] = mMsbTable[*((PUCHAR)ioBuffer + j++)]; - } - else - while( mLength-- ) - mWrBuf[i++] = *((PUCHAR)ioBuffer + j++); - if( VenIC == 0x20 && i % CH341_PACKET_LENGTH == 0 ) - { - mWrBuf[i] = mWrBuf[i+1] = 0; - i += CH341_PACKET_LENGTH; - } - } - } - else - { - for( j = 0; j < iLength; ) - { - mLength = CH341_PACKET_LENGTH - 1; - if( mLength > iLength - j ) - mLength = iLength - j; - mWrBuf[i++] = CH341A_CMD_SPI_STREAM; - if( StreamMode & 0x80 ) - { - while( mLength-- ) - { - c1 = mMsbTable[*((PUCHAR)ioBuffer + (j >> 1))]; - c2 = mMsbTable[*((PUCHAR)ioBuffer2 + (j >> 1))]; - mWrBuf[i++] = (UCHAR)((j & 0x01)?(c1 & 0xF0 | c2 >> 4 & 0x0F ):(c1 << 4 & 0xF0 | c2 & 0x0F)); - j++; - } - } - else - { - while( mLength-- ) - { - c1 = *((PUCHAR)ioBuffer + (j >> 1)); - c2 = *((PUCHAR)ioBuffer + (j >> 1)); - mWrBuf[i++] = (UCHAR)((j & 0x01)?(c1 & 0xF0 | c2 >> 4 & 0x0F ):(c1 << 4 & 0xF0 | c2 & 0x0F)); - j++; - } - } - if( VenIC == 0x20 && i % CH341_PACKET_LENGTH == 0 ) - { - mWrBuf[i] = mWrBuf[i+1] = 0; - i += CH341_PACKET_LENGTH; - } - } - } - } - - mLength = 0; - mWrBuf[i] = CH341_PACKET_LENGTH - 1; - mWrBuf[i+4] = (iLength + CH341_PACKET_LENGTH -1 - 1)/(CH341_PACKET_LENGTH - 1); - i = i + 8; - j = CH34xWriteRead( i, mWrBuf, &mLength,((ULONG)ioBuffer2 < 4?ioBuffer:mWrBuf)); -// if( j && mLength != iLength ) -// j = false; - -// high bit mode transform normal display mode - if( iChipselect & 0x80 ) - { - mBuffer[0] = CH341A_CMD_UIO_STREAM; - mBuffer[1] = (UCHAR)(CH341A_CMD_UIO_STM_OUT | 0x37); - mBuffer[2] = CH341A_CMD_UIO_STM_END; - mLength = 3; - if( CH34xWriteData( mBuffer, &mLength )) - { - if( mLength < 2 ) - { - printf("Error in SPI......"); - return false; - } - } - else - return false; - } - if( j ) - { - if((ULONG)ioBuffer2 < 4 ) - { - if( StreamMode & 0x80 ) - { - for( i = 0; i < iLength; i++ ) - *((PUCHAR)ioBuffer + i) = mMsbTable[*((PUCHAR)ioBuffer + i)]; - } - } - else - { - for( i = 0; i < iLength; i += 2 ) - { - c1 = mWrBuf[i]; - c2 = mWrBuf[i+1]; - if( StreamMode & 0x80 ) - { - *((PUCHAR)ioBuffer + (i >> 1)) = mMsbTable[c1 >> 4 & 0xF0 | c2 & 0xF0]; - *((PUCHAR)ioBuffer2 + (i >> 1)) = mMsbTable[c1 & 0x0F | c2 << 4 & 0xF0]; - } - else - { - *((PUCHAR)ioBuffer + (i >> 1)) = (UCHAR)(c1 >> 4 & 0x0F | c2 & 0xF0 ); - *((PUCHAR)ioBuffer + (i >> 1)) = (UCHAR)(c1 & 0x0F | c2 << 4 & 0xF0); - } - } - } - } - if( mReturn > DEFAULT_BUFFER_LEN ) - free( mWrBuf ); - return ( j ); -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read Flash Data (For one in one out SPI) - * arg: - * iChipselect : Flash cs enable - * iLength : the length of data - * ioBuffer : one in one out buffer - * ******************************************************************** - */ -// Note : StreamMode must set first -BOOL CH34xStreamSPI4( ULONG iChipSelect, ULONG iLength, PVOID ioBuffer ) -{ - int retval = 0; - if( VenIC >= 0x25 && VenIC < 0x30 ) - return false; - StreamMode = 0x81; - if( StreamMode & 0x04 ) - { - if( CH34xSetStream( StreamMode & 0xFB ) == false ) - return false; - } - retval = CH34xStreamSPIx( iChipSelect, iLength, ioBuffer, (PVOID)1 ); - - return retval; -} - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" deleted file mode 100644 index f1c0d65..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/ch34x_lib.h" +++ /dev/null @@ -1,269 +0,0 @@ -// -// -//**************************************** -//** Copyright (C) W.ch 2013 ** -//** Web: http://www.wch.cn ** -//**************************************** -//** LIB for USB interface chip CH341 ** -//** C, LINUX ** -//**************************************** -// -// -#ifndef _CH34X_LIB_H -#define _CH34X_LIB_H - -#ifndef UCHAR -#define UCHAR unsigned char -#endif - -#ifndef USHORT -#define USHORT unsigned short -#endif - -#ifndef ULONG -#define ULONG unsigned long -#endif - -#ifndef PUCHAR -#define PUCHAR unsigned char * -#endif - -#ifndef PCHAR -#define PCHAR char * -#endif - -#ifndef PUSHORT -#define PUSHORT unsigned short * -#endif - -#ifndef PULONG -#define PULONG unsigned long * -#endif - -#ifndef VOID -#define VOID void -#endif - -#ifndef PVOID -#define PVOID void * -#endif - -#define true 1 -#define false 0 - -#ifndef min -#define min( x, y ) (((x) < (y)) ? (x) : (y)) -#endif - -#ifndef max -#define max( x, y ) (((x) < (y)) ? (y) : (x)) -#endif - -typedef enum -{ - FALSE_H = 0, - TRUE_H = !FALSE_H -}BOOL; - -#define CH341_PACKET_LENGTH 32 -#define CH341_PKT_LEN_SHORT 8 - -#define CH341_MAX_NUMBER 16 -#define MAX_BUFFER_LENGTH 0x1000 -#define DEFAULT_BUFFER_LEN 0x0400 - - -//CH341 endpointer addr -#define CH341_ENDP_INTER_UP 0x81 // Interrupt up endpoint -#define CH341_ENDP_INTER_DOWN 0x01 // Interrupt down endpoint -#define CH341_ENDP_DATA_UP 0x82 // Data up endpoint -#define CH341_ENDP_DATA_DOWN 0x02 // Data down endpoint - - - -#define PipeDeviceCtrl 0x00000004 -#define PipeInterUp 0x00000005 -#define PipeDataUp 0x00000006 -#define PipeDataDown 0x00000007 - -#define CH341_VENDOR_READ 0xC0 //CH341 Read Command -#define CH341_VENDOR_WRITE 0x40 //CH341 Write Command - - - - -#define CH341_PARA_INIT 0xB1 // Init para -#define CH341_I2C_STATUS 0x52 // Get I2C Interface State -#define CH341_I2C_COMMAND 0x53 // Send I2C Command - -#define CH341_PARA_CMD_R0 0xAC // Read Data0 From Para -#define CH341_PARA_CMD_R1 0xAD // Read Data1 From Para -#define CH341_PARA_CMD_W0 0xA6 // Write Data0 From Para -#define CH341_PARA_CMD_W1 0xA7 // Write Data1 From Para -#define CH341_PARA_CMD_STS 0xA0 // Get Para State - - -#define CH341A_CMD_SET_OUTPUT 0xA1 // Set Para Output -#define CH341A_CMD_IO_ADDR 0xA2 //MEM Addr write/read -#define CH341A_CMD_PRINT_OUT 0xA3 // Print output -#define CH341A_CMD_PWM_OUT 0xA4 // PWM Out Command -#define CH341A_CMD_SHORT_PKT 0xA5 //short package -#define CH341A_CMD_SPI_STREAM 0xA8 //SPI Interface Command -//#define mCH341A_CMD_SIO_STREAM 0xA9 -#define CH341A_CMD_I2C_STREAM 0xAA // I2C Interface Command -#define CH341A_CMD_UIO_STREAM 0xAB // UIO Interface Command -#define CH341A_CMD_PIO_STREAM 0xAE // PIO Interface Command - - -#define CH341A_BUF_CLEAR 0xB2 // clear uncompleted data -#define CH341A_I2C_CMD_X 0x54 // Send I2C Interface command -#define CH341A_DELAY_MS 0x5E // Set Delay(ms) -#define CH341A_GET_VER 0x5F // Get Chip Version - -// CH341 Write/Read Max Length Once in EPP/MEM Mode -#define CH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) -#define CH341A_EPP_IO_MAX 0xFF // CH341A Write/Read Max Length Once in EPP/MEM Mode - -#define CH341A_CMD_IO_ADDR_W 0x00 //Mem Write -#define CH341A_CMD_IO_ADDR_R 0x80 //MEM Read - -#define CH341A_CMD_I2C_STM_STA 0x74 //I2C Stream Start Command -#define CH341A_CMD_I2C_STM_STO 0x75 //I2C Stream Stop byte Command -#define CH341A_CMD_I2C_STM_OUT 0x80 //I2C Stream Out Command -#define CH341A_CMD_I2C_STM_IN 0xC0 //I2C Stream In Command -#define CH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) //I2C Stream Max Length -#define CH341A_CMD_I2C_STM_SET 0x60 //I2C Stream Set Mode -//-->bit2 spi io (0: one in one out ; 1: two in two out) -//-->bit1~0 I2C SCL Rate -#define CH341A_CMD_I2C_STM_US 0x40 //I2C Stream Delay(us) -#define CH341A_CMD_I2C_STM_MS 0x50 //I2C Stream Delay(ms) -#define CH341A_CMD_I2C_STM_DLY 0x0F //I2C Stream Set Max Delay -#define CH341A_CMD_I2C_STM_END 0x00 //I2C Stream End Command - -#define CH341A_CMD_UIO_STM_IN 0x00 // UIO Interface In ( D0 ~ D7 ) -#define CH341A_CMD_UIO_STM_DIR 0x40 // UIO interface Dir( set dir of D0~D5 ) -#define CH341A_CMD_UIO_STM_OUT 0x80 // UIO Interface Output(D0~D5) -#define CH341A_CMD_UIO_STM_US 0xC0 // UIO Interface Delay Command( us ) -#define CH341A_CMD_UIO_STM_END 0x20 // UIO Interface End Command - - -#define CH341_PARA_MODE_EPP 0x00 -#define CH341_PARA_MODE_EPP17 0x00 -#define CH341_PARA_MODE_EPP19 0x01 -#define CH341_PARA_MODE_MEM 0x02 -#define CH341_PARA_MODE_ECP 0x03 - -#define StateBitERR 0x00000100 -#define StateBitPEMP 0x00000200 -#define StateBitINT 0x00000400 -#define StateBitSLCT 0x00000800 -#define StateBitWAIT 0x00002000 -#define StateBitDATAS 0x00004000 -#define StateBitADDRS 0x00008000 -#define StateBitRESET 0x00010000 -#define StateBitWRITE 0x00020000 -#define StateBitSCL 0x00400000 -#define StateBitSDA 0x00800000 - -typedef enum _EEPROM_TYPE { - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - -int CH34xOpenDevice(UCHAR index); - -void CH34xCloseDevice(); -BOOL CH34x_GetDrvVer( char *drv_version ); - -BOOL CH34x_GetVendorId( PULONG VendorId ); - -BOOL CH34xSetParaMode( ULONG Mode ); - -BOOL CH34xInitParallel( ULONG Mode ); - -int CH34xEppRead( PUCHAR oBuffer, - ULONG ioLength, - ULONG PipeMode ); // PipiMode->0 : read data - // PipeMode->1 : read Addr - -int CH34xEppWrite( PUCHAR iBuffer, - ULONG ioLength, - ULONG PipeMode ); // PipeMode->0 : write data - // PipeMode->1 : write data - -int CH34xEppReadData( PUCHAR oBuffer, // input buffer - ULONG ioLength ); //wanted length of read - -int CH34xEppWriteData( PUCHAR iBuffer, - ULONG ioLength ); - -int CH34xEppWriteAddr( PUCHAR iBuffer, - ULONG ioLength ); - -int CH34xEppReadAddr( PUCHAR oBuffer, - ULONG ioLength ); - -int CH34xEppSetAddr( ULONG iAddr ); //EPP: WR#=0,DS#=1,AS#=0,D0~D7 output - -BOOL CH34xInitMEM(void); - -int CH34xMEMReadData( PUCHAR oBuffer, - ULONG ioLength, - ULONG PipeMode ); - -int CH34xMEMWriteData( PUCHAR iBuffer, - ULONG ioLength, - ULONG PipeMode ); - -BOOL CH34xSetStream( ULONG Mode ); - -BOOL CH34xSetDelaymS( ULONG iDelay ); - -BOOL CH34xReadData( PVOID oBuffer, - PULONG ioLength ); - -BOOL CH34xWriteData( PVOID iBuffer, - PULONG ioLength ); - -BOOL CH34xWriteRead( ULONG iWriteLength, - PVOID iWriteBuffer, - /* ULONG iReadStep, - ULONG iReadTimes,*/ - PULONG oReadLength, - PVOID oReadBuffer ); - -BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer, - ULONG iReadLength, PVOID oReadBuffer); - -BOOL CH34xReadEEPROM( EEPROM_TYPE iEepromID, - ULONG iAddr, - ULONG iLength, - PUCHAR oBuffer ); - -BOOL CH34xWriteEEPROM( EEPROM_TYPE iEepromID, - ULONG iAddr, - ULONG iLength, - PUCHAR iBuffer ); - -BOOL CH34xStreamSPIx( ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer, - PVOID ioBuffer2 ); - -BOOL CH34xStreamSPI4( ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -#endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" deleted file mode 100644 index bea19a2..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash.h" +++ /dev/null @@ -1,24 +0,0 @@ -/* - * flash.h - * - * Created on: Dec 2, 2013 - * Author: root - */ - -#ifndef FLASH_H_ -#define FLASH_H_ - -#define ReadByte 0x03 -#define Sector_Erase 0x20 -#define Block_Erase 0x52 -#define Chip_Erase 0x60 -#define Byte_Program 0x02 -#define AAI 0xAF -#define RDSR 0x05 -#define EWSR 0x50 -#define WRSR 0x01 -#define WREN 0x06 -#define WRDI 0x04 -#define ReadID 0x90 - -#endif /* FLASH_H_ */ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" deleted file mode 100644 index 6d7b9f2..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/demo/flash_sst.h" +++ /dev/null @@ -1,56 +0,0 @@ -// -// -//**************************************** -// -//** Copyright (C) W.ch 2013 ** -// -//** Web: http://www.wch.cn ** -// -//**************************************** -// -//** LIB for USB interface chip CH341 ** -// -//** C, LINUX ** -// -//**************************************** -// -// - -#ifndef _FLASH_SST_H -#define _FLASH_SST_H - -#define ReadByte 0x03 -#define Sector_Erase 0x20 -#define Block_Erase 0x52 -#define Chip_Erase 0x60 -#define Byte_Program 0x02 -#define AAI 0xAF -#define RDSR 0x05 -#define EWSR 0x50 -#define WRSR 0x01 -#define WREN 0x06 -#define WRDI 0x04 -#define ReadID 0x90 - -int ReadFlashId(); - -BOOL CH34xWriteEnable(); - -BOOL CH34xSectorErase( ULONG StartAddr ); - -int CH34x_Flash_ReadByte( PVOID oBuffer, - ULONG iAddr); - -int CH34x_Flash_ReadBlock( PVOID oBuffer, - ULONG iAddr); - -BOOL CH34xFlash_Wait(); - -BOOL CH34x_Flash_Write( PVOID iBuffer, - ULONG iAddr ); - -BOOL CH34xReadSPI(); - -BOOL CH34xWriteSPI(); - -#endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" deleted file mode 100644 index e684c99..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/Makefile" +++ /dev/null @@ -1,15 +0,0 @@ -ifeq ($(KERNELRELEASE), ) -KERNELDIR := /lib/modules/$(shell uname -r)/build -PWD :=$(shell pwd) -default: - $(MAKE) -C $(KERNELDIR) M=$(PWD) -clean: - rm -rf .tmp_versions Module.symvers *.mod.c *.o *.ko .*.cmd Module.markers modules.order -load: - modprobe usbserial - insmod ch34x_pis.ko -unload: - rmmod ch34x_pis -else - obj-m := ch34x_pis.o -endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" deleted file mode 100644 index 3ac8a60..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/driver/ch34x_pis.c" +++ /dev/null @@ -1,1170 +0,0 @@ -// Created on: Nov 28, 2013 -/* - * File : ch34x_pis.c - * - ********************************************************************** - *********** Copyright (C) WCH 2013.11.28 *************** - *********** web: www.wch.cn *************** - *********** AUTHOR: TECH33 (tech@wch.cn) *************** - *********** Used for USB Interface Chip (CH341) *************** - *********** Nanjing QinHeng Electronics Co.,Ltd *************** - ********************************************************************** - * - * Running Environment: Linux - * This file is used for CH34x in Epp/MEM/I2C/SPI - * - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#ifndef KERNEL_VERSION -#define KERNEL_VERSION(ver, rel, seq) ((ver << 16) | (rel <<8) | (seq)) -#endif - -#define DEBUG -//#undef DEBUG - -#ifdef DEBUG -#define dbg( format, arg... ) \ - printk( KERN_DEBUG "%s %d: " format "\n", __FILE__, __LINE__, ##arg ) -#else -#define dbg( format, arg... ) do{} while(0) -#endif - -#define err( format, arg... ) \ - printk( KERN_ERR KBUILD_MODNAME ":" format "\n", __FILE__, __LINE__, ##arg) - - -#define CH34x_VENDOR_ID 0x1A86 //Vendor Id -#define CH34x_PRODUCT_ID 0x5512 //Product Id -#define DRV_NAME "ch34x_pis" -#define DRV_VERSION "WCH CH34x Driver Version V0.1" - - -#define CH34x_MINOR_BASE 200 // -#define WRITES_IN_FLIGHT 8 -#define CH34x_READ_SHORT 8 -#define CH34x_PACKET_LENGTH 32 -#define MAX_BUFFER_LENGTH 0x1000 - - -//Vendor define -#define VENDOR_WRITE_TYPE 0x40 //vendor write command -#define VENDOR_READ_TYPE 0XC0 //vendor read command - -// -#define CH34x_PARA_INIT 0xB1 // Init Parallel -#define CH34x_I2C_STATUS 0x52 //get I2C status -#define CH34x_I2C_COMMAND 0x53 //send I2C command - -#define CH34x_BUF_CLEAR 0xB2 //clear uncompleted data -#define CH34x_I2C_CMD_X 0x54 //send I2C command -#define CH34x_DELAY_MS 0x5E -#define VENDOR_VERSION 0x5F //get version of chip - -#define CH34x_PARA_CMD_R0 0xAC //read data0 from Para -#define CH34x_PARA_CMD_R1 0xAD //read data1 from Para -#define CH34x_PARA_CMD_W0 0xA6 //write data0 to Para -#define CH34x_PARA_CMD_W1 0xA7 //write data1 to Para -#define CH34x_PARA_CMD_STS 0xA0 //get status of Para - - -//CH341 COMMAND -#define CH34x_CMD_SET_OUTPUT 0xA1 //set Para output -#define CH34x_CMD_IO_ADDR 0xA2 //MEM IO Addr -#define CH34x_CMD_PRINT_OUT 0xA3 //print output -#define CH34X_CMD_SPI_STREAM 0xA8 //SPI command -#define CH34x_CMD_SIO_STREAM 0xA9 //SIO command -#define CH34x_CMD_I2C_STREAM 0xAA //I2C command -#define CH34x_CMD_UIO_STREAM 0xAB //UIO command - -//Single read/write the MAX number of blocks in EPP/MEM -#define CH34x_EPP_IO_MAX ( CH34x_PACKET_LENGTH - 1 ) -//CH341A -#define CH34xA_EPP_IO_MAX 0xFF - -//request -#define CH34x_DEBUG_READ 0x95 //read two regs -#define CH34x_DEBUG_WRITE 0x9A //write two regs - -#define REQUEST_TYPE_READ ( USB_DIR_IN |USB_TYPE_VENDOR | USB_RECIP_OTHER ) -#define REQUEST_TYPE_WRITE ( USB_DIR_OUT | USB_TYPE_VENDOR |USB_RECIP_OTHER) - -//Ioctl cmd Codes -#define CH34x_GET_DRV_VERSION 0x00000001 -#define CH34x_CHIP_VERSION 0x00000003 -#define CH34x_FUNCTION_SETPARA_MODE 0x00000004 -#define CH34x_FUNCTION_READ_MODE 0x00000005 -#define CH34x_FUNCTION_WRITE_MODE 0x00000006 -#define CH34x_I2C_READ_MODE 0x00000007 -#define CH34x_I2C_WRITE_MODE 0x00000008 -#define CH34x_PIPE_DATA_DOWN 0x00000009 -#define CH34x_PIPE_WRITE_READ 0x0000000a -#define CH34x_PIPE_DEVICE_CTRL 0x0000000b - -static unsigned char Read_Mode; //Read Data Pipe Mode From Para -static unsigned char Write_Mode; //Write Data Pipe Mode From Para - -struct ch34x_pis{ - struct usb_device *udev; /*the usb device for this device*/ - struct usb_interface *interface; /*the interface for this device*/ - struct usb_endpoint_descriptor *interrupt_in_endpoint; - - size_t interrupt_in_size; /*the size of rec data (interrupt)*/ - unsigned char *interrupt_in_buffer; /*the buffer of rec data (interface)*/ - struct urb *interrupt_in_urb; - - size_t bulk_in_size; /*the size of rec data (bulk)*/ - unsigned char *bulk_in_buffer; /*the buffer of rec data (bulk)*/ - struct urb *read_urb; /*the urb of bulk_in*/ - __u8 bulk_in_endpointAddr; /*bulk input endpoint*/ - __u8 bulk_out_endpointAddr; /*bulk output endpoint*/ - unsigned char *bulk_out_buffer; - - struct semaphore limit_sem; /*semaphore*/ - struct usb_anchor submitted; /*usb anchor */ - - unsigned long VenIc; /*Chip Version(CH341A : 0x0030)*/ - int errors; - int open_count; /*count the number of openers*/ - spinlock_t err_lock; - struct kref kref; -}; - -static struct usb_driver ch34x_pis_driver; -static void skel_delete( struct kref *kref ); - - -static DEFINE_MUTEX( io_mutex ); - -/*usb VID/PID Register Into System*/ -static struct usb_device_id ch34x_usb_ids[] = -{ - { USB_DEVICE(CH34x_VENDOR_ID, CH34x_PRODUCT_ID) }, - { } -}; - -MODULE_DEVICE_TABLE(usb, ch34x_usb_ids); - -static int ch34x_fops_release(struct inode *inode, struct file *file) -{ - struct ch34x_pis *dev; - - dev = (struct ch34x_pis *)file->private_data; - if( dev == NULL ) - return -ENODEV; - - mutex_lock( &io_mutex ); - - if( !--dev->open_count && dev->interface ) - usb_autopm_put_interface( dev->interface ); - mutex_unlock( &io_mutex ); - - kref_put( &dev->kref, skel_delete ); - return 0; - -} - -//Control Endpoint Read -static int ch34x_func_read( __u8 request, __u16 value, __u16 index, - struct ch34x_pis *dev, unsigned char *buf, __u16 len) -{ - int retval; - /*Control Transform -->usb_control_msg */ - retval = usb_control_msg( dev->udev, usb_rcvctrlpipe( dev->udev, 0 ), - request, VENDOR_READ_TYPE, value, index, buf, len, 1000); - - dbg( "VENDOR_READ_TYPE: 0x%x : 0x%x : 0x%x %d - %d", request, - value, index, retval, len ); - - return retval; -} - -//Control Endpoint Write -//In order to set chip register -static int ch34x_func_write( __u8 request, __u16 value, __u16 index, - struct ch34x_pis *dev, unsigned char *buf, - __u16 len ) -{ - int retval; - - retval = usb_control_msg( dev->udev, - usb_sndctrlpipe(dev->udev, 0), request, - VENDOR_WRITE_TYPE, value, index, buf, len, 1000); - - dbg( "VENDOR_READ_TYPE: 0x%x : 0x%x : 0x%x %d - %d", request, - value, index, retval, len ); - - return retval; -} - -//Init Parallel Mode -//iMode-> 00/01 EPP -//iMode-> 02 MEM -static int CH34xInitParallel( unsigned char iMode, struct ch34x_pis *dev ) -{ - int retval; - __u8 RequestType = VENDOR_WRITE_TYPE; - __u8 Request = CH34x_PARA_INIT; - __u16 Value = ( iMode << 8 )|( iMode < 0x00000100 ? 0x02 : 0x00 ); - __u16 Index = 0; - __u16 len = 0; - retval = usb_control_msg( dev->udev, - usb_sndctrlpipe(dev->udev, 0), Request, - RequestType, Value, Index, NULL, len, 1000); - - return retval; -} - -//usb_fill_bulk_urb cpmplete callback -static void ch34x_write_bulk_callback( struct urb *urb ) -{ - struct ch34x_pis *dev; - - dev = urb->context; - - if( urb->status ) - { - if( !( urb->status == -ENOENT || urb->status == -ECONNRESET || - urb->status == -ESHUTDOWN)) - err("%s - nonzero write bulk status received: %d", - __func__, urb->status ); - spin_lock( &dev->err_lock ); - dev->errors = urb->status; - spin_unlock( &dev->err_lock ); - } -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - usb_buffer_free( urb->dev, urb->transfer_buffer_length, - urb->transfer_buffer, urb->transfer_dma ); -#else - usb_free_coherent( urb->dev, urb->transfer_buffer_length, - urb->transfer_buffer, urb->transfer_dma ); -#endif - up( &dev->limit_sem ); -} - -//EPP/MEM Read -ssize_t ch34x_fops_read(struct file *file, char __user *to_user, - size_t count, loff_t *file_pos) -{ - struct ch34x_pis *dev; - unsigned char mBuffer[4]; - int retval, i; - int j = 0; - unsigned long bytes_read, mNewlen, Returnlen; - unsigned long Bytes, totallen = 0; - - dev = (struct ch34x_pis *)file->private_data; - if( count == 0 || count > MAX_BUFFER_LENGTH ) - { - return count; - } - bytes_read = ( dev->VenIc >= 0x20 )?( CH34xA_EPP_IO_MAX - - (CH34xA_EPP_IO_MAX & ( CH34x_PACKET_LENGTH - 1 ))): CH34x_EPP_IO_MAX; - - mNewlen = count / bytes_read; - mBuffer[0] = mBuffer[2] = Read_Mode; - mBuffer[1] = ( unsigned char )bytes_read; - mBuffer[3] = ( unsigned char )( count - mNewlen * bytes_read ); - dbg("count %d,->bytes_read %d,->mNewlen %d,->mBuffer[0] %d,->[1] %d,->[2]%d,->[3]%d",count,bytes_read,mNewlen,mBuffer[0],mBuffer[1],mBuffer[2],mBuffer[3]); - - if( mBuffer[3] ) - mNewlen++; - mutex_lock( &io_mutex ); - if( !dev->interface ) - { - retval = -ENODEV; - goto exit; - } - mutex_unlock( &io_mutex ); - - - dev->bulk_in_buffer = kmalloc( sizeof( unsigned char ) * count, GFP_KERNEL ); - if( dev->bulk_in_buffer == NULL ) - { - err("bulk_in_buffer malloc error"); - retval = -ENOMEM; - goto exit; - } - for( i = 0; i < mNewlen; i++ ) - { - if( (i + 1) == mNewlen && mBuffer[3] ) - { - j = 2; - Bytes = mBuffer[3]; - } - else - { - j = 0; - Bytes = bytes_read; - } - mutex_lock( &io_mutex ); - retval = usb_bulk_msg( dev->udev, usb_sndbulkpipe( dev->udev, - dev->bulk_out_endpointAddr ), mBuffer + j, 0x02, NULL, 10000); - if( retval ) - { - retval = -EFAULT; - mutex_unlock( &io_mutex ); - err("usb_bulk_msg out error"); - goto exit; - } - mutex_unlock( &io_mutex ); - mutex_lock( &io_mutex ); - retval = usb_bulk_msg( dev->udev, usb_rcvbulkpipe( dev->udev, - dev->bulk_in_endpointAddr ), - dev->bulk_in_buffer + i * bytes_read, - Bytes, &Returnlen, 10000 ); - - if( retval ) - { - retval = -EFAULT; - mutex_unlock( &io_mutex ); - err("usb_bulk_msg in error"); - goto exit; - } - mutex_unlock( &io_mutex ); - totallen += Returnlen; - } - - if( copy_to_user( to_user, dev->bulk_in_buffer, totallen )) - retval = -EFAULT; - else - retval = totallen; - kfree( dev->bulk_in_buffer ); -exit: - return retval; -} - -//EPP/MEM Write -ssize_t ch34x_fops_write(struct file *file, const char __user *user_buffer, - size_t count, loff_t *file_pos) -{ - struct ch34x_pis *dev; - int retval = 0; - char *WriteBuf = NULL; - char *buf; - struct urb *urb = NULL; - unsigned int i; - unsigned long mLength, mNewlen, mReturn = 0; - unsigned long write_size; - - dev = (struct ch34x_pis *)file->private_data; - if( count == 0 ) - goto exit; - else if( count > MAX_BUFFER_LENGTH ) - { - err("Data Overlimited,Must Under MAX_BUFFER_LENGTH"); - retval = -EFAULT; - goto exit; - } - spin_lock_irq( &dev->err_lock ); - if(( retval = dev->errors ) < 0 ) - { - dev->errors = 0; - retval = ( retval == -EPIPE ) ? retval : -EIO; - } - spin_unlock_irq( &dev->err_lock ); - if( retval < 0 ) - goto exit; - - mNewlen = count / CH34x_EPP_IO_MAX; - mLength = count - mNewlen * CH34x_EPP_IO_MAX; - mNewlen *= CH34x_PACKET_LENGTH; - buf = (char *)kmalloc( sizeof(unsigned char) * (mNewlen + mLength), GFP_KERNEL ); - mutex_lock( &io_mutex ); - for( i = 0; i < mNewlen; i += CH34x_PACKET_LENGTH ) - { - buf[i] = Write_Mode; - memcpy( buf + i + 1, user_buffer + mReturn, CH34x_EPP_IO_MAX ); - mReturn += CH34x_EPP_IO_MAX; - } - if( mLength ) - { - buf[i] = Write_Mode; - memcpy( buf + i + 1, user_buffer + mReturn, mLength ); - mNewlen += mLength + 1 ; - } - mutex_unlock( &io_mutex ); - if( mNewlen > MAX_BUFFER_LENGTH ) - { - - urb = usb_alloc_urb( 0, GFP_KERNEL ); - if( !urb ) - { - return -ENOMEM; - goto error; - } - write_size = MAX_BUFFER_LENGTH; -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - WriteBuf = usb_buffer_alloc( dev->udev, write_size, - GFP_KERNEL, &urb->transfer_dma ); -#else - WriteBuf = usb_alloc_coherent( dev->udev, write_size, - GFP_KERNEL, &urb->transfer_dma ); -#endif - - if( !WriteBuf ) - { - retval = -ENOMEM; - goto error; - } - - if( copy_from_user( WriteBuf, buf, write_size )) - { - retval = -EFAULT; - goto error; - } - - mutex_lock( &io_mutex ); - if( !dev->interface ) - { - mutex_unlock( &io_mutex ); - retval = -ENOMEM; - goto error; - } - - usb_fill_bulk_urb( urb, dev->udev, usb_sndbulkpipe( dev->udev, - dev->bulk_out_endpointAddr ), WriteBuf, write_size, - ch34x_write_bulk_callback, dev ); - urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - - usb_anchor_urb( urb, &dev->submitted ); - - retval = usb_submit_urb( urb, GFP_KERNEL ); - mutex_unlock( &io_mutex ); - if( retval ) - { - err("%s - failed submitting write urb,line:%d", - __func__, __LINE__ ); - goto error_unanchor; - } - usb_free_urb( urb ); - mLength = mNewlen - MAX_BUFFER_LENGTH; - } - else - mLength = mNewlen; - write_size = mLength; - - urb = usb_alloc_urb( 0, GFP_KERNEL ); - if( !urb ) - { - return -ENOMEM; - goto error; - } - -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - WriteBuf = usb_buffer_alloc( dev->udev, write_size, - GFP_KERNEL, &urb->transfer_dma ); -#else - WriteBuf = usb_alloc_coherent( dev->udev, write_size, - GFP_KERNEL, &urb->transfer_dma ); -#endif - if( !WriteBuf ) - { - retval = -ENOMEM; - goto error; - } - - if( __copy_from_user( WriteBuf + ( mNewlen - mLength), (unsigned char __user*)buf + (mNewlen - mLength), mLength )) - { - retval = -EFAULT; - dbg("copy_from_user error"); - goto error; - } - mutex_lock( &io_mutex ); - if( !dev->interface ) - { - mutex_unlock( &io_mutex ); - retval = -ENOMEM; - goto error; - } - /*initialize urb*/ - usb_fill_bulk_urb( urb, dev->udev, usb_sndbulkpipe( dev->udev, - dev->bulk_out_endpointAddr ), WriteBuf + (mNewlen - mLength), - write_size, ch34x_write_bulk_callback, dev ); - - urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - usb_anchor_urb( urb, &dev->submitted ); - retval = usb_submit_urb( urb, GFP_KERNEL ); - mutex_unlock( &io_mutex ); - if( retval ) - { - err( "%s -failed to write submit urb,line:%d", - __func__, __LINE__ ); - goto error_unanchor; - } - - usb_free_urb( urb ); - kfree( buf ); - return mNewlen; -error_unanchor: - usb_unanchor_urb( urb ); -error: - if( urb ) - { -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - usb_buffer_free( dev->udev, write_size, WriteBuf, - urb->transfer_dma ); -#else - usb_free_coherent( dev->udev, write_size, WriteBuf, - urb->transfer_dma ); -#endif - usb_free_urb( urb ); - } -exit: - return retval; - -} - -//Write Data for I2C/Flash -static int ch34x_WriteData( unsigned long iLength, unsigned long iBuffer, - struct ch34x_pis *dev) -{ - unsigned char *WriteBuf = NULL; - unsigned long length; - struct urb *urb; - int retval = 0; - - length = iLength; - - if( length <= 0 ) - { - goto exit; - } - if( down_interruptible( &dev->limit_sem )) - { - retval = -ERESTARTSYS; - goto exit; - } - - spin_lock_irq( &dev->err_lock ); - if((retval = dev->errors ) < 0) - { - dev->errors = 0; - retval = ( retval == -EPIPE ) ? retval : -EIO; - } - spin_unlock_irq( &dev->err_lock ); - - if( retval < 0 ) goto exit; - urb = usb_alloc_urb( 0, GFP_KERNEL ); - if( !urb ) - { - retval = -ENOMEM; - goto error; - } -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - WriteBuf = usb_buffer_alloc( dev->udev, length, - GFP_KERNEL, &urb->transfer_dma ); -#else - WriteBuf = usb_alloc_coherent( dev->udev, length, - GFP_KERNEL, &urb->transfer_dma ); -#endif - if( !WriteBuf ) - { - retval = -ENOMEM; - goto error; - } - - if( copy_from_user( WriteBuf, (long __user *)iBuffer, length )) - { - retval = -EFAULT; - goto error; - } - - mutex_lock( &io_mutex ); - if( !dev->interface ) - { - mutex_unlock( &io_mutex ); - retval = -ENODEV; - goto error; - } - - /* initialize the urb properly */ - usb_fill_bulk_urb( urb, dev->udev, usb_sndbulkpipe( dev->udev, - dev->bulk_out_endpointAddr ), WriteBuf, length, - ch34x_write_bulk_callback, dev ); - - urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - usb_anchor_urb( urb, &dev->submitted ); - /* send the data out the bulk port */ - retval = usb_submit_urb( urb, GFP_KERNEL ); - mutex_unlock( &io_mutex ); - if( retval ) - { - err("%s - failed to submit writing urb,error %d,line %d", - __func__, retval, __LINE__ ); - goto error_unanchor; - } - - /*release our reference to this urb*/ - usb_free_urb( urb ); - return length; - -error_unanchor: - usb_unanchor_urb( urb ); -error: - if( urb ) - { -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - usb_buffer_free( dev->udev, length, WriteBuf, - urb->transfer_dma ); -#else - usb_free_coherent( dev->udev, length, WriteBuf, - urb->transfer_dma ); -#endif - usb_free_urb( urb ); - } - up( &dev->limit_sem ); -exit: - return retval; -} - - -static int ch34x_data_write_read( unsigned long iLength, unsigned long iBuffer, - unsigned long oBuffer, struct ch34x_pis *dev ) -{ - unsigned long length; // the length of iBuffer - unsigned long totallen; - int bytes_read; - unsigned char *iBuf; // Input data - unsigned char *oBuf; // Output data - struct urb *iUrb; - int i, mSave; // the number of data in a block - int readtimes; - int retval = 0; - dbg("iLength is %d\n",iLength ); - if( iLength < 8 || iLength > MAX_BUFFER_LENGTH + 8 ) - { - err(" The length input error"); - retval = -EFAULT; - goto exit; - } - iBuf = kmalloc( sizeof(unsigned char) * iLength, GFP_KERNEL ); - retval = copy_from_user(iBuf, (char __user*)iBuffer, iLength); - if( retval != 0 ) - { - err("copy error"); - kfree( iBuf ); - goto exit; - } - iLength -= 8; - length = iLength; - mSave = iBuf[iLength]; - readtimes = iBuf[iLength + 4]; - kfree( iBuf ); - dbg("the number of a block %d,should read %d", mSave, readtimes); - if( i * readtimes > MAX_BUFFER_LENGTH || mSave == 0 || readtimes == 0 ) - { - return -EFAULT; - goto exit; - } - - if( down_interruptible( &dev->limit_sem )) - { - return -ERESTARTSYS; - goto exit; - } - spin_lock_irq( &dev->err_lock ); - if((retval = dev->errors) < 0) - { - dev->errors = 0; - retval = (retval == -EPIPE) ? retval : -EIO; - } - spin_unlock_irq( &dev->err_lock ); - if( retval < 0 ) - goto exit; - - iUrb = usb_alloc_urb( 0, GFP_KERNEL ); - if( !iUrb ) - { - retval = -ENOMEM; - goto error; - } -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - iBuf = usb_buffer_alloc( dev->udev, length, - GFP_KERNEL, &iUrb->transfer_dma ); -#else - iBuf = usb_alloc_coherent( dev->udev, length, - GFP_KERNEL, &iUrb->transfer_dma ); -#endif - if( !iBuf ) - { - retval = -ENOMEM; - goto error; - } - - if( copy_from_user( iBuf, (char __user *)iBuffer, length )) - { - retval = -EFAULT; - goto exit; - } - mutex_lock( &io_mutex ); - if( !dev->interface ) - { - mutex_unlock( &io_mutex ); - retval = -ENODEV; - goto error; - } - usb_fill_bulk_urb( iUrb, dev->udev, usb_sndbulkpipe( dev->udev, - dev->bulk_out_endpointAddr ), iBuf, length, - ch34x_write_bulk_callback, dev ); - iUrb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; - usb_anchor_urb( iUrb, &dev->submitted ); - retval = usb_submit_urb( iUrb, GFP_KERNEL ); - mutex_unlock( &io_mutex ); - if( retval ) - { - err("%s-failed submitting write urb in write_read", __func__); - goto error_unanchor; - } - usb_free_urb( iUrb ); -// Read Urb Data - totallen = mSave * readtimes; - dbg("mSave : %d, readtimes : %d, totallen : %d\n", mSave, readtimes, totallen); - oBuf = kmalloc( sizeof( unsigned char ) * totallen, GFP_KERNEL ); - totallen = 0; - for( i = 0; i < readtimes; i++ ) - { - mutex_lock( &io_mutex ); - retval = usb_bulk_msg( dev->udev, - usb_rcvbulkpipe( dev->udev, dev->bulk_in_endpointAddr), - oBuf + i * CH34x_EPP_IO_MAX, CH34x_EPP_IO_MAX, &bytes_read, 10000); - - totallen += bytes_read; - mutex_unlock( &io_mutex ); - } - dbg("The actual length of Read is %d", totallen); - /*if the read is sucessful,copy the data to userspace*/ - if( copy_to_user((char __user *)oBuffer, oBuf, totallen)) - { - retval = -ENOMEM; - kfree( oBuf ); - goto exit; - } - - kfree( oBuf ); - return totallen; -error_unanchor: - if( iUrb ) - usb_unanchor_urb( iUrb ); -error: - if( iUrb ) - { -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - usb_buffer_free( dev->udev, length, iBuf, - iUrb->transfer_dma ); -#else - usb_free_coherent( dev->udev, length, iBuf, - iUrb->transfer_dma ); -#endif - usb_free_urb( iUrb ); - } - up( &dev->limit_sem ); -exit: - return retval; - -} - -static void skel_delete( struct kref *kref ) -{ - struct ch34x_pis *dev = container_of( kref, struct ch34x_pis, kref ); - usb_put_dev( dev->udev ); - - kfree( dev ); -} - -int ch34x_fops_open(struct inode *inode, struct file *file) -{ - struct ch34x_pis *ch34x_p; - struct usb_interface *interface; - int retval = 0; - unsigned int subminor; - -#if( LINUX_VERSION_CODE < KERNEL_VERSION( 2, 6, 35) ) - subminor = iminor( inode ); -#else - subminor = iminor( file->f_path.dentry->d_inode ); -#endif - - interface = usb_find_interface( &ch34x_pis_driver, subminor ); - if ( !interface ) - { - err( "%s-error,cannot find device for minor :%d", - __func__, subminor); - retval = -ENODEV; - goto exit; - } - - ch34x_p = usb_get_intfdata( interface ); - if( !ch34x_p ) - { - err("Get interface data error"); - retval = -ENODEV; - goto exit; - } - - /* add the usage for device*/ - kref_get( &ch34x_p->kref ); - - mutex_lock( &io_mutex ); - if( !ch34x_p->open_count++ ) - { - retval = usb_autopm_get_interface( interface ); - if( retval ) - { - ch34x_p->open_count--; - mutex_unlock( &io_mutex ); - kref_put( &ch34x_p->kref, skel_delete ); - goto exit; - } - } - - file->private_data = ch34x_p; - mutex_unlock( &io_mutex ); - -exit: - return retval; -} - -#if( LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 35) ) -int ch34x_fops_ioctl( struct inode *inode, struct file *file, - unsigned int ch34x_cmd, unsigned long ch34x_arg ) -#else -long ch34x_fops_ioctl( struct file *file, unsigned int ch34x_cmd, - unsigned long ch34x_arg ) -#endif -{ - int retval = 0; - char buf[2]; - unsigned long bytes_read; - unsigned long bytes_write; - char *drv_version_tmp = DRV_VERSION; - struct ch34x_pis *ch34x_pis_tmp; - - ch34x_pis_tmp = ( struct ch34x_pis *)file->private_data; - if( ch34x_pis_tmp == NULL ) - { - return -ENODEV; - } - switch( ch34x_cmd ) - { - case CH34x_GET_DRV_VERSION: - { - retval = copy_to_user( (const __user *)( ch34x_arg ), - ( char * )drv_version_tmp, strlen( DRV_VERSION )); - - dbg("CH34x_GET_DRV_VERSION Successed"); - break; - } - case CH34x_CHIP_VERSION: - { - retval = ch34x_func_read( VENDOR_VERSION, - 0x0000, 0x0000, ch34x_pis_tmp, buf, 0x02 ); - - retval = copy_to_user( (const __user *)( ch34x_arg ), - (char *)buf, 0x02 ); - ch34x_pis_tmp->VenIc = buf[1] << 8 | buf[0]; - dbg("------> 2 Chip Version is sucessful 0x%02x%x", buf[1],buf[0]); - break; - } - case CH34x_FUNCTION_SETPARA_MODE: - { - retval = ch34x_func_write(CH34x_DEBUG_WRITE, 0x2525, - (unsigned short)( ch34x_arg << 8 | ch34x_arg ), - ch34x_pis_tmp, NULL, 0x00 ); - if( retval != 0 ) - err("CH34x_FUNCTION_SETPARA_MODE Error"); - dbg("------>SetParaMode - ch34x_arg %x", ch34x_arg); - break; - } - case CH34x_FUNCTION_READ_MODE: - { - if( ch34x_arg ) - Read_Mode = CH34x_PARA_CMD_R1; - else - Read_Mode = CH34x_PARA_CMD_R0; - - dbg( "---->Read_Mode : 0x%x", Read_Mode ); - break; - } - case CH34x_FUNCTION_WRITE_MODE: - { - if( ch34x_arg ) - Write_Mode = CH34x_PARA_CMD_W1; - else - Write_Mode = CH34x_PARA_CMD_W0; - - dbg( "Write_Mode : 0x%x", Write_Mode ); - break; - } - case CH34x_I2C_READ_MODE: - { - break; - } - case CH34x_I2C_WRITE_MODE: - { - break; - } - case CH34x_PIPE_DATA_DOWN: - { - dbg("------> Use Pipe Data Down"); - retval = get_user( bytes_write, (long __user *)(*((long *)ch34x_arg))); - dbg("------> length :%d",bytes_write); - retval = ch34x_WriteData( bytes_write, - (unsigned long)*(((long *)ch34x_arg) + 1), - ch34x_pis_tmp ); - - break; - } - case CH34x_PIPE_WRITE_READ: - { - unsigned long addr; - dbg("------> Use Pipe Date Write/Read"); - dbg("Input number is %d\n",*((long *)ch34x_arg)); - addr = (unsigned long)*(((long *)ch34x_arg) + 1 ); - bytes_read = ch34x_data_write_read( *((unsigned long *)ch34x_arg), - (unsigned long)*(((long *)ch34x_arg) + 1), - *(((long *)ch34x_arg) + 2),ch34x_pis_tmp ); - if( bytes_read <= 0 ) - { - err("Read Error"); - return -EFAULT; - } - dbg("Read bytes is %d", bytes_read); - retval = put_user( bytes_read, (long __user *)(*(((long *)ch34x_arg) + 3))); - - break; - } - case CH34x_PIPE_DEVICE_CTRL: - { - retval = CH34xInitParallel( (unsigned char)ch34x_arg, ch34x_pis_tmp ); - if( retval < 0 ) - { - err("Init Parallel Error"); - return -EFAULT; - } - break; - } - default: - return -ENOTTY; - break; - } - - - return 0; -} - -static const struct file_operations ch34x_fops_driver = { - .owner = THIS_MODULE, - .open = ch34x_fops_open, - .release = ch34x_fops_release, - .read = ch34x_fops_read, - .write = ch34x_fops_write, -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) - .ioctl = ch34x_fops_ioctl, -#else - .unlocked_ioctl = ch34x_fops_ioctl, -#endif -}; - -/* - *usb class driver info in order to get a minor number from the usb core - *and to have the device registered with the driver core - */ -static struct usb_class_driver ch34x_class = { - .name = "ch34x_pis%d", - .fops = &ch34x_fops_driver, - .minor_base = CH34x_MINOR_BASE, -}; - -static int ch34x_pis_probe( struct usb_interface *intf, const - struct usb_device_id *id ) -{ - struct usb_host_interface *hinterface; - struct usb_endpoint_descriptor *endpoint; - struct ch34x_pis *ch34x_p; - - size_t buffer_size; - int retval = -ENOMEM; - int i; - - /* allocate memory for our device state and initialize it */ - ch34x_p = kzalloc( sizeof( *ch34x_p ), GFP_KERNEL ); - if( !ch34x_p ) - { - err("Out of Memory"); - goto error; - } - - /* init */ - kref_init( &ch34x_p->kref ); - sema_init( &ch34x_p->limit_sem, WRITES_IN_FLIGHT ); - spin_lock_init( &ch34x_p->err_lock ); - init_usb_anchor( &ch34x_p->submitted); - - ch34x_p->udev = usb_get_dev( interface_to_usbdev( intf )); - ch34x_p->interface = intf; - - hinterface = intf->cur_altsetting; - - if( hinterface->desc.bNumEndpoints < 1) - return -ENODEV; - /* Get Endpoint*/ - for( i = 0; i < hinterface->desc.bNumEndpoints; ++i ) - { - endpoint = &hinterface->endpoint[i].desc; - - if(( endpoint->bEndpointAddress & USB_DIR_IN ) && - ( endpoint->bmAttributes & 3 ) == 0x02 ) - { - dbg("Found a bulk in endpoint"); - buffer_size = le16_to_cpu( endpoint->wMaxPacketSize ); - ch34x_p->bulk_in_size = buffer_size; - ch34x_p->bulk_in_endpointAddr = endpoint->bEndpointAddress; - } - - if((( endpoint->bEndpointAddress & USB_DIR_IN ) == 0x00 ) && - ( endpoint->bmAttributes & 3 ) == 0x02 ) - { - dbg("Found a bulk out endpoint"); - ch34x_p->bulk_out_endpointAddr = endpoint->bEndpointAddress; - } - - if(( endpoint->bEndpointAddress & USB_DIR_IN ) && - ( endpoint->bmAttributes & 3 ) == 0x03 ) - { - dbg("Found a interrupt in endpoint"); - ch34x_p->interrupt_in_endpoint = endpoint; - } - } - - /* save our data point in this interface device */ - usb_set_intfdata( intf, ch34x_p ); - - retval = usb_register_dev( intf, &ch34x_class ); - if( retval ) - { - err( "usb_get_dev error,disable to use this device" ); - usb_set_intfdata( intf, NULL ); - goto error; - } - - dbg( "Ch34x_pis device now attached to ch34x_pis-%d", intf->minor ); - - return 0; - -error: - if( ch34x_p ) - kref_put( &ch34x_p->kref, skel_delete); - - return retval; -} - -static int ch34x_pis_suspend(struct usb_interface *intf, pm_message_t message ) -{ - struct ch34x_pis *dev = usb_get_intfdata( intf ); - int time; - - if( !dev ) - return 0; - - time = usb_wait_anchor_empty_timeout( &dev->submitted, 1000 ); - if( !time ) - usb_kill_anchored_urbs( &dev->submitted ); - - return 0; -} - -static int ch34x_pis_resume( struct usb_interface *intf ) -{ - return 0; -} - -static void ch34x_pis_disconnect( struct usb_interface *intf ) -{ - struct ch34x_pis *dev; - int minor = intf->minor; - - dev = usb_get_intfdata( intf ); - usb_set_intfdata( intf, NULL ); - - /* give back our minor */ - usb_deregister_dev( intf, &ch34x_class ); - - mutex_lock( &io_mutex ); - dev->interface = NULL; - mutex_unlock( &io_mutex ); - - usb_kill_anchored_urbs( &dev->submitted ); - /*decrement our usage count*/ - kref_put( &dev->kref, skel_delete ); - - dbg("CH34x_pis-%d now disconnected", minor ); -} - -static int ch34x_pre_reset( struct usb_interface *intf ) -{ - struct ch34x_pis *dev = usb_get_intfdata( intf ); - int time; - - mutex_lock( &io_mutex ); - time = usb_wait_anchor_empty_timeout( &dev->submitted, 1000 ); - if( !time ) - usb_kill_anchored_urbs( &dev->submitted ); - - return 0; -} - -static int ch34x_post_reset( struct usb_interface *intf ) -{ - struct ch34x_pis *dev = usb_get_intfdata( intf ); - - dev->errors = -EPIPE; - mutex_unlock( &io_mutex ); - - return 0; -} - -//usb driver Interface -static struct usb_driver ch34x_pis_driver = { - .name = DRV_NAME, - .probe = ch34x_pis_probe, - .disconnect = ch34x_pis_disconnect, - .suspend = ch34x_pis_suspend, - .resume = ch34x_pis_resume, - .pre_reset = ch34x_pre_reset, - .post_reset = ch34x_post_reset, - .id_table = ch34x_usb_ids, - .supports_autosuspend = 1, -}; - -static int __init ch34x_pis_init(void) -{ - int retval; - retval = usb_register( &ch34x_pis_driver ); - if( retval ) - printk( KERN_INFO "CH34x Device Register Failed.\n" ); - return retval; -} - -static void __exit ch34x_pis_exit(void) -{ - usb_deregister(&ch34x_pis_driver); -} - -module_init(ch34x_pis_init); -module_exit(ch34x_pis_exit); -MODULE_AUTHOR("WCH TECH GRP"); -MODULE_DESCRIPTION("WCH CH34x Chip Driver"); -MODULE_LICENSE("GPL"); diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" deleted file mode 100644 index 7e9c523..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.c" +++ /dev/null @@ -1,1077 +0,0 @@ -// Created on: Nov 28, 2013 -/* - * File : ch34x_lib.c ch34x_lib.h - * - ********************************************************************** - *********** Copyright (C) WCH 2013.11.28 *************** - *********** web: http://www.wch.cn *************** - *********** AUTHOR: TECH33 (tech@wch.cn) *************** - *********** Used for USB Interface Chip (CH341) *************** - *********** Nanjing QinHeng Electronics Co.,Ltd *************** - ********************************************************************** - * - * Running Environment: Linux - * This file is used for CH34x in Epp/MEM/I2C/SPI - * - */ - -#include -#include -#include -#include -#include //for 'ioctl' -#include -#include -#include - -#include "ch34x_lib.h" - -#define CH34x_GET_DRV_VERSION 0x00000001 -#define CH34x_CHIP_VERSION 0x00000003 -#define CH34x_FUNCTION_SETPARA_MODE 0x00000004 -#define CH34x_FUNCTION_READ_MODE 0x00000005 -#define CH34x_FUNCTION_WRITE_MODE 0x00000006 -#define CH34x_I2C_READ_MODE 0x00000007 -#define CH34x_I2C_WRITE_MODE 0x00000008 -#define CH34x_PIPE_DATA_DOWN 0x00000009 -#define CH34x_PIPE_WRITE_READ 0x0000000a -#define CH34x_PIPE_DEVICE_CTRL 0x0000000b - -int dev_fd; -unsigned char VenIC; -unsigned char StreamMode = 1; - -/* - * ******************************************************************** - * FUNCTION : Open Device - * arg: - * index : the number of device - * ******************************************************************** - */ -int CH34xOpenDevice( UCHAR index ) -{ - int retval = 0; - char dev_path[20] = {'\0'}; - memset( dev_path, 0, sizeof(dev_path)); - sprintf( dev_path, "%s%c", "/dev/ch34x_pis", '0' + index); - - dev_fd = open( dev_path, O_RDWR ); - if( dev_fd == -1 ) - { - printf("open /dev/ch34x_pis error, LINE : %d\n",__LINE__ ); - return false; - } -// printf("Open successful\n"); - - return dev_fd; -} - -/* - * ******************************************************************** - * FUNCTION : Close Device - * ******************************************************************** - */ -void CH34xCloseDevice() -{ - close( dev_fd ); -} - -/* - * ******************************************************************** - * FUNCTION : Get Driver Version - * arg: - * drv_version : output buffer of driver version - * ******************************************************************** - */ -BOOL CH34x_GetDrvVer( char *drv_version ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_GET_DRV_VERSION, (unsigned long)drv_version ); - if( retval == -1 ) - { - printf( "CH34x_GET_DRV_VERSION function error line:%d\n", __LINE__ ); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Get Chip ID - * arg: - * VendorId : output data of chip version(CH341A : 0x0030) - * ******************************************************************** - */ -BOOL CH34x_GetVendorId( PULONG VendorId ) -{ - int retval = 0; - retval = ioctl( dev_fd, CH34x_CHIP_VERSION, (unsigned long)VendorId); - if( retval == -1 ) - { - printf("Get Chip Version Error,line:%d\n",__LINE__); - return false; - } - - VenIC = (UCHAR)*VendorId; -// printf("VenIc is 0x%x\n",VenIC); - return true; -} - -//Mode = 0 ------>EPP Mode -//Mode = 1 ------>EPP Mode -//Mode = 2 ------>MEM Mode -/* - * ******************************************************************** - * FUNCTION : Set Para Mode - * arg: - * Mode : set Para Mode( EPP or MEM ) - * ******************************************************************** - */ -BOOL CH34xSetParaMode( ULONG Mode ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_FUNCTION_SETPARA_MODE, Mode); - if( retval < 0 ) - { - printf("SetPara Error\n"); - return false; - } - - return true; -} - -//Mode = 0 ------>EPP Mode -//Mode = 1 ------>EPP Mode -//Mode = 2 ------>MEM Mode -/* - * ******************************************************************** - * FUNCTION : Init Para - * arg: - * Mode : first reset ,then set Para Mode( EPP or MEM ) - * ******************************************************************** - */ -BOOL CH34xInitParallel( ULONG Mode ) -{ - int retval = 0; - - retval = ioctl( dev_fd, CH34x_PIPE_DEVICE_CTRL, Mode); - if( retval < 0 ) - { - printf("Init Parallel Error,LINE : %d\n", __LINE__); - return false; - } - return true; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : EPP READ - * arg: - * oBuffer : Output buffer - * ioLength: should read the length of Data/Addr - * PipeMode: Read Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Addr - * ******************************************************************** - */ -int CH34xEppRead( PUCHAR oBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval = 0; - ULONG mReturnlen; - retval = ioctl( dev_fd, CH34x_FUNCTION_READ_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Pipe Error\n"); - return false; - } - mReturnlen = read( dev_fd, oBuffer, ioLength ); - if( mReturnlen != ioLength ) - { - printf("Numbers of wanted output is not equal to input\n"); - return false; - } - - return mReturnlen; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : EPP Write - * arg: - * iBuffer : Iutput buffer - * ioLength: should Write the length of Data/Addr - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Addr - * ******************************************************************** - */ -int CH34xEppWrite( PUCHAR iBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval =0; - retval = ioctl( dev_fd, CH34x_FUNCTION_WRITE_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Write Pipe Error\n"); - return false; - } - retval = write( dev_fd, iBuffer, ioLength ); - if( retval < 0 ) - { - printf("Write Epp Error\n"); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Write Data - * arg: - * iBuffer : Output buffer - * ioLength: should Write the length of Data - * ******************************************************************** - */ -int CH34xEppWriteData( PUCHAR iBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppWrite( iBuffer, ioLength, 0); - if( !retval ) - return false; - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Read Data - * arg: - * oBuffer : Iutput buffer - * ioLength: should read the length of Data - * ******************************************************************** - */ -int CH34xEppReadData( PUCHAR oBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppRead( oBuffer, ioLength, 0 ); // set Pipe0,then Read Data from pipe0 - if( !retval ) - return false; - return retval; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Write Addr - * arg: - * iBuffer : Output buffer Data - * ioLength: should write the length of Addr - * ******************************************************************** - */ -int CH34xEppWriteAddr( PUCHAR iBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppWrite( iBuffer, ioLength, 1 ); // set Pipe1,then Write Data from pipe1 - if( !retval ) - return false; - return true; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Read Addr - * arg: - * oBuffer : Iutput buffer Data - * ioLength: should read the length of Addr - * ******************************************************************** - */ -int CH34xEppReadAddr( PUCHAR oBuffer, ULONG ioLength ) -{ - int retval; - retval = CH34xEppRead( oBuffer, ioLength, 1 ); // set Pipe1,then Read Data from pipe1 - if( !retval ) - return false; - return retval; -} - -/* - * ******************************************************************** - * FUNCTION : EPP Set Addr - * arg: - * iAddr: Need set the iAddr - * ******************************************************************** - */ -int CH34xEppSetAddr( ULONG iAddr ) -{ - int retval; - UCHAR iBuffer[4]; - ULONG mLength; - iBuffer[0] = iAddr; - mLength = 1; - retval = CH34xEppWriteAddr( iBuffer, mLength ); - if( !retval ) - return false; - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Init MEM - * ******************************************************************** - */ -BOOL CH34xInitMEM(void) -{ - int retval = 0; - ULONG iMode; - iMode = 0x02; - retval = CH34xInitParallel( iMode ); - if( retval == false ) - { - printf("Init MEM Mode Error\n"); - return false; - } - return true; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : MEM Read - * arg: - * oBuffer : Output buffer - * ioLength: should Read the length of Data - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Data - * ******************************************************************** - */ -int CH34xMEMReadData( PUCHAR oBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval = 0; - ULONG mReturnlen; - retval = ioctl( dev_fd, CH34x_FUNCTION_READ_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Pipe Error\n"); - return false; - } - mReturnlen = read( dev_fd, oBuffer, ioLength ); - if( mReturnlen != ioLength ) - { - printf("Numbers of wanted output is not equal to input\n"); - return false; - } - - return mReturnlen; -} - -//PipeMode = 1 ------>Read from Pipe1 -//PipeMode = 0 ------>Read from Pipe0 -/* - * ******************************************************************** - * FUNCTION : MEM Write - * arg: - * iBuffer : Iutput buffer - * ioLength: should Write the length of Data - * PipeMode: Write Pipe - * -->0 Read Pipe0 Data - * -->1 Read Pipe1 Data - * ******************************************************************** - */ -int CH34xMEMWriteData( PUCHAR iBuffer, ULONG ioLength, ULONG PipeMode ) -{ - int retval =0; - retval = ioctl( dev_fd, CH34x_FUNCTION_WRITE_MODE, PipeMode ); - if( retval < 0 ) - { - printf("Set Write Pipe Error\n"); - return false; - } - retval = write( dev_fd, iBuffer, ioLength ); - if( retval < 0 ) - { - printf("Write Epp Error\n"); - return false; - } - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Set Stream Mode - * arg: - * Mode : Set Stream Mode - * -> bit0~1 : set I2C SCL rate - * --> 00 : Low Rate /20KHz - * --> 01 : Default Rate /100KHz - * --> 10 : Fast Rate /400KHz - * --> 11 : Full Rate /750KHz - * -> bit2 : set spi mode - * --> 0 : one in one out(D3 :clk/ D5 :out/ D7 :in) - * --> 1 : two in two out(D3 :clk/ D4,D5 :out/ D6,D7 :in) - * -> bit7 : set spi data mode - * --> 0 : low bit first - * --> 1 : high bit first - * other bits must keep 0 - * ******************************************************************** - */ -BOOL CH34xSetStream( ULONG Mode ) -{ - UCHAR mBuffer[CH341_PACKET_LENGTH]; - ULONG mLength; - if( VenIC < 0x20 ) - return false; - StreamMode = (UCHAR)( Mode & 0x8F ); - mBuffer[0] = CH341A_CMD_I2C_STREAM; - mBuffer[1] = CH341A_CMD_I2C_STM_SET; - mBuffer[2] = CH341A_CMD_I2C_STM_END; - mLength = 3; - if( CH34xWriteData( mBuffer, &mLength )) - { - if( mLength >= 2 ) - return true; - } - return false; -} - -/* - * ******************************************************************** - * FUNCTION : Set Delay - * arg: - * iDelay : set delay time(ms) - * ******************************************************************** - */ -BOOL CH34xSetDelaymS( ULONG iDelay ) -{ - UCHAR mBuffer[CH341_PACKET_LENGTH]; - ULONG mLength; - if( VenIC < 0x20 ) - return false; - while( iDelay ) - { - mLength = iDelay >= CH341A_CMD_I2C_STM_DLY ? CH341A_CMD_I2C_STM_DLY : iDelay; - iDelay -= mLength; - mBuffer[0] = CH341A_CMD_I2C_STREAM; - mBuffer[1] = (UCHAR)( CH341A_CMD_I2C_STM_MS | mLength ); - mBuffer[2] = CH341A_CMD_I2C_STM_END; - mLength = 3; - if(( CH34xWriteData( mBuffer, &mLength )) == false ) - return false; - } - return true; -} - -//This is needless for the moment -BOOL CH34xReadData( PVOID oBuffer, PULONG ioLength ) -{ - UCHAR mBuffer[MAX_BUFFER_LENGTH]; - ULONG mLength; -} - -/* - * ******************************************************************** - * FUNCTION : Write Data ( for i2c/flash ) - * arg: - * iBuffer : should Input data buffer - * ioLength : write length of data - * ******************************************************************** - */ -BOOL CH34xWriteData( PVOID iBuffer, PULONG ioLength ) -{ - int retval = 0; - unsigned long mLen; - struct{ - ULONG length; - PUCHAR ByteBuffer; - }Write; - if( *ioLength > MAX_BUFFER_LENGTH ) - *ioLength = MAX_BUFFER_LENGTH; - mLen = *ioLength; - Write.length = ioLength; - Write.ByteBuffer = (PUCHAR)malloc( sizeof( unsigned char ) * mLen ); - memcpy( Write.ByteBuffer, (PUCHAR)iBuffer, mLen ); -// printf("Write.ByteBuffer[0] :%x\n",Write.ByteBuffer[0]); - retval = ioctl( dev_fd, CH34x_PIPE_DATA_DOWN, (unsigned long)&Write ); - if ( retval == -1 ) - { - printf("error in pipe down\n"); - return false; - } - - free( Write.ByteBuffer ); - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read Data ( for i2c/flash ) - * arg: - * iWriteLength : should write the length of data - * iWriteBuffer : input buffer - * oReadLength : should read the length of data - * oReadBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xWriteRead( ULONG iWriteLength, PVOID iWriteBuffer, - /* ULONG iReadStep, ULONG iReadTimes,*/ - PULONG oReadLength, PVOID oReadBuffer) -{ - int retval = 0; - ULONG mLength, mReadlen; - ULONG iReadStep,iReadTimes; - struct{ - ULONG oReadlen; - PUCHAR iBuf; - PUCHAR oBuffer; - ULONG oReturnlen; - }Read; - iReadStep =*(PUCHAR)(iWriteBuffer+iWriteLength-8); - iReadTimes = *(PUCHAR)(iWriteBuffer+iWriteLength-4); - mReadlen = iReadStep * iReadTimes; - if( mReadlen == 0 ) - return false; - mLength = max( iWriteLength, mReadlen ); -#if 0 - printf("iWriteLength : %d\n",iWriteLength); - printf("iReadTimes : %d\n",iReadTimes); - printf("iReadStep : %d\n",iReadStep); -#endif - Read.iBuf = (PUCHAR)iWriteBuffer; - Read.oBuffer = (PUCHAR)oReadBuffer; - Read.oReturnlen = oReadLength; -// printf("iBuffer Addr is ------>:%p\n",Read.iBuf); - Read.oReadlen = iWriteLength; - retval = ioctl( dev_fd, CH34x_PIPE_WRITE_READ, (unsigned long)&Read ); - if( retval == -1 ) - { - printf("Error in pipe write/read\n"); - return false; - } - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read I2C Data Stream - * This function issue a set of packets of iWriteBuffer data - * arg: - * iWriteLength : should write the length of data - * iWriteBuffer : input buffer - * oReadLength : should read the length of data - * oReadBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer, - ULONG iReadLength, PVOID oReadBuffer ) -{ - UCHAR mBuffer[MAX_BUFFER_LENGTH]; - ULONG i, j, mLength; - PUCHAR mWrBuf; - - if( VenIC < 0x20 ) - return false; - mLength = max( iWriteLength, iReadLength ); - if( mLength > MAX_BUFFER_LENGTH ) - return false; - if( mLength <= DEFAULT_BUFFER_LEN ) - mWrBuf = (PVOID)mBuffer; - else - { - mWrBuf = (PVOID)malloc( sizeof( UCHAR ) * MAX_BUFFER_LENGTH ); - if( mWrBuf == NULL) - return false; - } - i = 0; - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - if(( StreamMode & 0x03 ) == 0 ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10; - mWrBuf[i++] = CH341A_CMD_I2C_STM_US | 10; - } - mWrBuf[i++] = CH341A_CMD_I2C_STM_STA; - if( iWriteLength ) - { - for( j = 0; j < iWriteLength; j++) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 2 ) - { - while( mLength-- ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mLength = CH341_PACKET_LENGTH - 1; - - } - mLength--; - mLength--; - if( mLength > iWriteLength - j) - mLength = iWriteLength - j; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_OUT | mLength); - while( mLength-- ) - mWrBuf[i++] = *((PUCHAR)iWriteBuffer + j++ ); - } - - } - if( iReadLength ) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 3 ) - { - while( mLength-- ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - if( iWriteLength > 1 ) - { - mWrBuf[i++] = CH341A_CMD_I2C_STM_STA; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_OUT | 1); - mWrBuf[i++] = *(PUCHAR)iWriteBuffer | 0x01; - } - else if( iWriteLength ) - { - i--; - mWrBuf[i++] = *(PUCHAR)iWriteBuffer | 0x01; - } - for( j = 1; j < iReadLength; ) - { - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1) - { - if( mLength ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mLength = iReadLength - j >= CH341_PACKET_LENGTH ? CH341_PACKET_LENGTH : iReadLength - j; - mWrBuf[i++] = (UCHAR)(CH341A_CMD_I2C_STM_IN | mLength); - j += mLength; - if( mLength >= CH341_PACKET_LENGTH ) - { - mWrBuf[i] = CH341A_CMD_I2C_STM_END; - i += CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - } - } - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1 ) - { - if( mLength) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mWrBuf[i++] = CH341A_CMD_I2C_STM_IN; - } - mLength = CH341_PACKET_LENGTH - i % CH341_PACKET_LENGTH; - if( mLength <= 1 ) - { - if( mLength ) - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = CH341_PACKET_LENGTH; - } - if( mLength >= CH341_PACKET_LENGTH ) - mWrBuf[i++] = CH341A_CMD_I2C_STREAM; - mWrBuf[i++] = CH341A_CMD_I2C_STM_STO; - mWrBuf[i++] = CH341A_CMD_I2C_STM_END; - mLength = 0; - if( iReadLength ) - { - mWrBuf[i] = CH341_PACKET_LENGTH; - mWrBuf[i+4] = (iReadLength + CH341_PACKET_LENGTH -1)/CH341_PACKET_LENGTH; - i = i + 8; - } - if( iReadLength ) - { - j = CH34xWriteRead( i, mWrBuf, &mLength, oReadBuffer ); - if( mLength != iReadLength ) - { - printf("Return length is not equal to input length\n"); - j = false; - } - } - else - j = CH34xWriteData( mWrBuf, &i); - -// printf("Return mLength is %d\n", mLength); - if( max( iWriteLength, iReadLength ) >= DEFAULT_BUFFER_LEN ) - free( mWrBuf ); - - return ( j ); -} - -/* - * ******************************************************************** - * FUNCTION : Read EEPROM Data (For I2C) - * arg: - * iEepromID : EEPROM TYPE - * iAddr : the start addr for read - * iLength : should read the length of data - * oBuffer : output buffer - * ******************************************************************** - */ -BOOL CH34xReadEEPROM( EEPROM_TYPE iEepromID, ULONG iAddr, - ULONG iLength, PUCHAR oBuffer ) -{ - ULONG mLen; - UCHAR mWrBuf[4]; - - if( iEepromID >= ID_24C01 && iEepromID <= ID_24C16 ) - { - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | (iAddr >> 7) & 0x0E ); - mWrBuf[1] = (UCHAR)iAddr; - mLen = min( iLength, DEFAULT_BUFFER_LEN ); - if( !CH34xStreamI2C( 2, mWrBuf, mLen, oBuffer )) - return false; - iAddr += mLen; - iLength -= mLen; - oBuffer += mLen; - } - } - else if( iEepromID >= ID_24C32 && iEepromID <= ID_24C4096 ) - { - - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | (iAddr >> 15 ) & 0x0E ); - mWrBuf[1] = (UCHAR)( iAddr >> 8 ); - mWrBuf[2] = (UCHAR)iAddr; - mLen = min( iLength, DEFAULT_BUFFER_LEN ); - if( !CH34xStreamI2C( 3, mWrBuf, mLen, oBuffer )) - return false; - iAddr += mLen; - iLength -= mLen; - oBuffer += mLen; - } - } - else - return false; - - return true; -} - -/* - * ******************************************************************** - * FUNCTION : Write EEPROM Data (For I2C) - * arg: - * iEepromID : EEPROM TYPE - * iAddr : the start addr for read - * iLength : should write the length of data - * iBuffer : Iutput buffer - * ******************************************************************** - */ - -//Note : Sometimes you should set Delay time( CH34xSetDelaymS()) after -// CH34xStreamI2C() -BOOL CH34xWriteEEPROM( EEPROM_TYPE iEepromID, ULONG iAddr, - ULONG iLength, PUCHAR iBuffer ) -{ - ULONG mLen; - UCHAR mWrBuf[256]; - if( iEepromID >= ID_24C01 && iEepromID <= ID_24C16 ) - { - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | ( iAddr >>7 ) & 0x0E); - mWrBuf[1] = (UCHAR)iAddr; - mLen = iEepromID >= ID_24C04 ? 16 - ( iAddr & 15 ) : 8 - (iAddr & 7 ); - if( mLen > iLength ) - mLen = iLength; - memcpy( &mWrBuf[2], iBuffer, mLen ); - if( !CH34xStreamI2C( 2 + mLen, mWrBuf, 0, NULL )) - return false; - iAddr += mLen; - iLength -= mLen; - iBuffer += mLen; - } - } - else if( iEepromID >= ID_24C32 && iEepromID <= ID_24C4096 ) - { - printf("Addr is %d\n",iAddr); - printf("iLength is %d\n",iLength); - printf("iBuffer is %x\n",*iBuffer); - while( iLength ) - { - mWrBuf[0] = (UCHAR)( 0xA0 | ( iAddr >>15 ) & 0x0E ); - mWrBuf[1] = (UCHAR)( iAddr >> 8 ); - mWrBuf[2] = (UCHAR)iAddr; - mLen = iEepromID >= ID_24C512 ? 128 - ( iAddr & 127) : (iEepromID >= ID_24C128 ? 64 - ( iAddr & 63 ) : 32 - ( iAddr & 31)); - if( mLen > iLength ) - mLen = iLength; - memcpy( &mWrBuf[3], iBuffer, mLen ); - printf("mWrBuf[3] is %x\n",mWrBuf[3]); - if( !CH34xStreamI2C( 3 + mLen, mWrBuf, 0, NULL )) - return false; - iAddr += mLen; - iLength -= mLen; - iBuffer += mLen; - - } - } - else - return false; - - return true; - -} - -//Used for high bit transform -const UCHAR mMsbTable[256] = { 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, - 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, // 0XH - 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, - 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, // 1XH - 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, - 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, // 2XH - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, - 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, // 3XH - 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, - 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, // 4XH - 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, - 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, // 5XH - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, - 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, // 6XH - 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, - 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, // 7XH - 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, - 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, // 8XH - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, - 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, // 9XH - 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, - 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, // AXH - 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, - 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, // BXH - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, - 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, // CXH - 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, - 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, // DXH - 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, - 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, // EXH - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, - 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF }; // FXH - -/* - * ******************************************************************** - * FUNCTION : Write/Read Flash Data (For SPI) - * arg: - * iChipselect : Flash cs enable - * iLength : the length of data - * ioBuffer : one in one out buffer - * ioBuffer2 : two in two out buffer - * ******************************************************************** - */ -BOOL CH34xStreamSPIx( ULONG iChipselect, ULONG iLength, - PVOID ioBuffer, PVOID ioBuffer2 ) -{ - UCHAR mBuffer[DEFAULT_BUFFER_LEN]; - ULONG i, j, mLength, mSelect, mCount,mReturn; - PUCHAR mWrBuf; - UCHAR c1, c2; - mReturn = iLength; - if( VenIC < 0x20 ) - { - printf("Not support this device\n"); - return false; - } - if( iLength <= DEFAULT_BUFFER_LEN/2 ) - { - mWrBuf = (PVOID)mBuffer; - i = DEFAULT_BUFFER_LEN; - } - else - { - mWrBuf = (PVOID)malloc( sizeof( UCHAR ) * MAX_BUFFER_LENGTH ); - if( mWrBuf == NULL ) - return false; - i = MAX_BUFFER_LENGTH; - } - memset( mWrBuf, 0, sizeof( UCHAR ) * i ); - i = 0; - if( iChipselect & 0x80 ) - { - mWrBuf[i++] = CH341A_CMD_UIO_STREAM; - switch( iChipselect & 0x03 ) - { - case 0x00: //DCK/D3->0, D0 ->0 - mSelect = 0x36; - break; - case 0x01: //DCK/D3->0, D1 ->0 - mSelect = 0x35; - break; - case 0x02: //DCK/D3->0, D2 ->0 - mSelect = 0x33; - break; - default: //DCK/D3->0, D4 ->0 - mSelect = 0x27; - break; - } - - mWrBuf[i++] = (UCHAR)( CH341A_CMD_UIO_STM_OUT | mSelect );// Output data - mWrBuf[i++] = (UCHAR)( CH341A_CMD_UIO_STM_DIR | 0x3F ); // set D5~D0 direct - mWrBuf[i++] = CH341A_CMD_UIO_STM_END; - i = CH341_PACKET_LENGTH; - } - if( iLength ) - { - if( (ULONG)ioBuffer2 < 4 ) - { - for( j = 0; j < iLength; ) - { - mLength = CH341_PACKET_LENGTH - 1; - if( mLength > iLength - j ) - mLength = iLength - j; - mWrBuf[i++] = CH341A_CMD_SPI_STREAM; - if( StreamMode & 0x80 ) - { - while( mLength-- ) - mWrBuf[i++] = mMsbTable[*((PUCHAR)ioBuffer + j++)]; - } - else - while( mLength-- ) - mWrBuf[i++] = *((PUCHAR)ioBuffer + j++); - if( VenIC == 0x20 && i % CH341_PACKET_LENGTH == 0 ) - { - mWrBuf[i] = mWrBuf[i+1] = 0; - i += CH341_PACKET_LENGTH; - } - } - } - else - { - for( j = 0; j < iLength; ) - { - mLength = CH341_PACKET_LENGTH - 1; - if( mLength > iLength - j ) - mLength = iLength - j; - mWrBuf[i++] = CH341A_CMD_SPI_STREAM; - if( StreamMode & 0x80 ) - { - while( mLength-- ) - { - c1 = mMsbTable[*((PUCHAR)ioBuffer + (j >> 1))]; - c2 = mMsbTable[*((PUCHAR)ioBuffer2 + (j >> 1))]; - mWrBuf[i++] = (UCHAR)((j & 0x01)?(c1 & 0xF0 | c2 >> 4 & 0x0F ):(c1 << 4 & 0xF0 | c2 & 0x0F)); - j++; - } - } - else - { - while( mLength-- ) - { - c1 = *((PUCHAR)ioBuffer + (j >> 1)); - c2 = *((PUCHAR)ioBuffer + (j >> 1)); - mWrBuf[i++] = (UCHAR)((j & 0x01)?(c1 & 0xF0 | c2 >> 4 & 0x0F ):(c1 << 4 & 0xF0 | c2 & 0x0F)); - j++; - } - } - if( VenIC == 0x20 && i % CH341_PACKET_LENGTH == 0 ) - { - mWrBuf[i] = mWrBuf[i+1] = 0; - i += CH341_PACKET_LENGTH; - } - } - } - } - - mLength = 0; - mWrBuf[i] = CH341_PACKET_LENGTH - 1; - mWrBuf[i+4] = (iLength + CH341_PACKET_LENGTH -1 - 1)/(CH341_PACKET_LENGTH - 1); - i = i + 8; - j = CH34xWriteRead( i, mWrBuf, &mLength,((ULONG)ioBuffer2 < 4?ioBuffer:mWrBuf)); -// if( j && mLength != iLength ) -// j = false; - -// high bit mode transform normal display mode - if( iChipselect & 0x80 ) - { - mBuffer[0] = CH341A_CMD_UIO_STREAM; - mBuffer[1] = (UCHAR)(CH341A_CMD_UIO_STM_OUT | 0x37); - mBuffer[2] = CH341A_CMD_UIO_STM_END; - mLength = 3; - if( CH34xWriteData( mBuffer, &mLength )) - { - if( mLength < 2 ) - { - printf("Error in SPI......"); - return false; - } - } - else - return false; - } - if( j ) - { - if((ULONG)ioBuffer2 < 4 ) - { - if( StreamMode & 0x80 ) - { - for( i = 0; i < iLength; i++ ) - *((PUCHAR)ioBuffer + i) = mMsbTable[*((PUCHAR)ioBuffer + i)]; - } - } - else - { - for( i = 0; i < iLength; i += 2 ) - { - c1 = mWrBuf[i]; - c2 = mWrBuf[i+1]; - if( StreamMode & 0x80 ) - { - *((PUCHAR)ioBuffer + (i >> 1)) = mMsbTable[c1 >> 4 & 0xF0 | c2 & 0xF0]; - *((PUCHAR)ioBuffer2 + (i >> 1)) = mMsbTable[c1 & 0x0F | c2 << 4 & 0xF0]; - } - else - { - *((PUCHAR)ioBuffer + (i >> 1)) = (UCHAR)(c1 >> 4 & 0x0F | c2 & 0xF0 ); - *((PUCHAR)ioBuffer + (i >> 1)) = (UCHAR)(c1 & 0x0F | c2 << 4 & 0xF0); - } - } - } - } - if( mReturn > DEFAULT_BUFFER_LEN ) - free( mWrBuf ); - return ( j ); -} - -/* - * ******************************************************************** - * FUNCTION : Write/Read Flash Data (For one in one out SPI) - * arg: - * iChipselect : Flash cs enable - * iLength : the length of data - * ioBuffer : one in one out buffer - * ******************************************************************** - */ -// Note : StreamMode must set first -BOOL CH34xStreamSPI4( ULONG iChipSelect, ULONG iLength, PVOID ioBuffer ) -{ - int retval = 0; - if( VenIC >= 0x25 && VenIC < 0x30 ) - return false; - StreamMode = 0x81; - if( StreamMode & 0x04 ) - { - if( CH34xSetStream( StreamMode & 0xFB ) == false ) - return false; - } - retval = CH34xStreamSPIx( iChipSelect, iLength, ioBuffer, (PVOID)1 ); - - return retval; -} - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" deleted file mode 100644 index f1c0d65..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/ch34x_pis/lib/ch34x_lib.h" +++ /dev/null @@ -1,269 +0,0 @@ -// -// -//**************************************** -//** Copyright (C) W.ch 2013 ** -//** Web: http://www.wch.cn ** -//**************************************** -//** LIB for USB interface chip CH341 ** -//** C, LINUX ** -//**************************************** -// -// -#ifndef _CH34X_LIB_H -#define _CH34X_LIB_H - -#ifndef UCHAR -#define UCHAR unsigned char -#endif - -#ifndef USHORT -#define USHORT unsigned short -#endif - -#ifndef ULONG -#define ULONG unsigned long -#endif - -#ifndef PUCHAR -#define PUCHAR unsigned char * -#endif - -#ifndef PCHAR -#define PCHAR char * -#endif - -#ifndef PUSHORT -#define PUSHORT unsigned short * -#endif - -#ifndef PULONG -#define PULONG unsigned long * -#endif - -#ifndef VOID -#define VOID void -#endif - -#ifndef PVOID -#define PVOID void * -#endif - -#define true 1 -#define false 0 - -#ifndef min -#define min( x, y ) (((x) < (y)) ? (x) : (y)) -#endif - -#ifndef max -#define max( x, y ) (((x) < (y)) ? (y) : (x)) -#endif - -typedef enum -{ - FALSE_H = 0, - TRUE_H = !FALSE_H -}BOOL; - -#define CH341_PACKET_LENGTH 32 -#define CH341_PKT_LEN_SHORT 8 - -#define CH341_MAX_NUMBER 16 -#define MAX_BUFFER_LENGTH 0x1000 -#define DEFAULT_BUFFER_LEN 0x0400 - - -//CH341 endpointer addr -#define CH341_ENDP_INTER_UP 0x81 // Interrupt up endpoint -#define CH341_ENDP_INTER_DOWN 0x01 // Interrupt down endpoint -#define CH341_ENDP_DATA_UP 0x82 // Data up endpoint -#define CH341_ENDP_DATA_DOWN 0x02 // Data down endpoint - - - -#define PipeDeviceCtrl 0x00000004 -#define PipeInterUp 0x00000005 -#define PipeDataUp 0x00000006 -#define PipeDataDown 0x00000007 - -#define CH341_VENDOR_READ 0xC0 //CH341 Read Command -#define CH341_VENDOR_WRITE 0x40 //CH341 Write Command - - - - -#define CH341_PARA_INIT 0xB1 // Init para -#define CH341_I2C_STATUS 0x52 // Get I2C Interface State -#define CH341_I2C_COMMAND 0x53 // Send I2C Command - -#define CH341_PARA_CMD_R0 0xAC // Read Data0 From Para -#define CH341_PARA_CMD_R1 0xAD // Read Data1 From Para -#define CH341_PARA_CMD_W0 0xA6 // Write Data0 From Para -#define CH341_PARA_CMD_W1 0xA7 // Write Data1 From Para -#define CH341_PARA_CMD_STS 0xA0 // Get Para State - - -#define CH341A_CMD_SET_OUTPUT 0xA1 // Set Para Output -#define CH341A_CMD_IO_ADDR 0xA2 //MEM Addr write/read -#define CH341A_CMD_PRINT_OUT 0xA3 // Print output -#define CH341A_CMD_PWM_OUT 0xA4 // PWM Out Command -#define CH341A_CMD_SHORT_PKT 0xA5 //short package -#define CH341A_CMD_SPI_STREAM 0xA8 //SPI Interface Command -//#define mCH341A_CMD_SIO_STREAM 0xA9 -#define CH341A_CMD_I2C_STREAM 0xAA // I2C Interface Command -#define CH341A_CMD_UIO_STREAM 0xAB // UIO Interface Command -#define CH341A_CMD_PIO_STREAM 0xAE // PIO Interface Command - - -#define CH341A_BUF_CLEAR 0xB2 // clear uncompleted data -#define CH341A_I2C_CMD_X 0x54 // Send I2C Interface command -#define CH341A_DELAY_MS 0x5E // Set Delay(ms) -#define CH341A_GET_VER 0x5F // Get Chip Version - -// CH341 Write/Read Max Length Once in EPP/MEM Mode -#define CH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) -#define CH341A_EPP_IO_MAX 0xFF // CH341A Write/Read Max Length Once in EPP/MEM Mode - -#define CH341A_CMD_IO_ADDR_W 0x00 //Mem Write -#define CH341A_CMD_IO_ADDR_R 0x80 //MEM Read - -#define CH341A_CMD_I2C_STM_STA 0x74 //I2C Stream Start Command -#define CH341A_CMD_I2C_STM_STO 0x75 //I2C Stream Stop byte Command -#define CH341A_CMD_I2C_STM_OUT 0x80 //I2C Stream Out Command -#define CH341A_CMD_I2C_STM_IN 0xC0 //I2C Stream In Command -#define CH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) //I2C Stream Max Length -#define CH341A_CMD_I2C_STM_SET 0x60 //I2C Stream Set Mode -//-->bit2 spi io (0: one in one out ; 1: two in two out) -//-->bit1~0 I2C SCL Rate -#define CH341A_CMD_I2C_STM_US 0x40 //I2C Stream Delay(us) -#define CH341A_CMD_I2C_STM_MS 0x50 //I2C Stream Delay(ms) -#define CH341A_CMD_I2C_STM_DLY 0x0F //I2C Stream Set Max Delay -#define CH341A_CMD_I2C_STM_END 0x00 //I2C Stream End Command - -#define CH341A_CMD_UIO_STM_IN 0x00 // UIO Interface In ( D0 ~ D7 ) -#define CH341A_CMD_UIO_STM_DIR 0x40 // UIO interface Dir( set dir of D0~D5 ) -#define CH341A_CMD_UIO_STM_OUT 0x80 // UIO Interface Output(D0~D5) -#define CH341A_CMD_UIO_STM_US 0xC0 // UIO Interface Delay Command( us ) -#define CH341A_CMD_UIO_STM_END 0x20 // UIO Interface End Command - - -#define CH341_PARA_MODE_EPP 0x00 -#define CH341_PARA_MODE_EPP17 0x00 -#define CH341_PARA_MODE_EPP19 0x01 -#define CH341_PARA_MODE_MEM 0x02 -#define CH341_PARA_MODE_ECP 0x03 - -#define StateBitERR 0x00000100 -#define StateBitPEMP 0x00000200 -#define StateBitINT 0x00000400 -#define StateBitSLCT 0x00000800 -#define StateBitWAIT 0x00002000 -#define StateBitDATAS 0x00004000 -#define StateBitADDRS 0x00008000 -#define StateBitRESET 0x00010000 -#define StateBitWRITE 0x00020000 -#define StateBitSCL 0x00400000 -#define StateBitSDA 0x00800000 - -typedef enum _EEPROM_TYPE { - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - -int CH34xOpenDevice(UCHAR index); - -void CH34xCloseDevice(); -BOOL CH34x_GetDrvVer( char *drv_version ); - -BOOL CH34x_GetVendorId( PULONG VendorId ); - -BOOL CH34xSetParaMode( ULONG Mode ); - -BOOL CH34xInitParallel( ULONG Mode ); - -int CH34xEppRead( PUCHAR oBuffer, - ULONG ioLength, - ULONG PipeMode ); // PipiMode->0 : read data - // PipeMode->1 : read Addr - -int CH34xEppWrite( PUCHAR iBuffer, - ULONG ioLength, - ULONG PipeMode ); // PipeMode->0 : write data - // PipeMode->1 : write data - -int CH34xEppReadData( PUCHAR oBuffer, // input buffer - ULONG ioLength ); //wanted length of read - -int CH34xEppWriteData( PUCHAR iBuffer, - ULONG ioLength ); - -int CH34xEppWriteAddr( PUCHAR iBuffer, - ULONG ioLength ); - -int CH34xEppReadAddr( PUCHAR oBuffer, - ULONG ioLength ); - -int CH34xEppSetAddr( ULONG iAddr ); //EPP: WR#=0,DS#=1,AS#=0,D0~D7 output - -BOOL CH34xInitMEM(void); - -int CH34xMEMReadData( PUCHAR oBuffer, - ULONG ioLength, - ULONG PipeMode ); - -int CH34xMEMWriteData( PUCHAR iBuffer, - ULONG ioLength, - ULONG PipeMode ); - -BOOL CH34xSetStream( ULONG Mode ); - -BOOL CH34xSetDelaymS( ULONG iDelay ); - -BOOL CH34xReadData( PVOID oBuffer, - PULONG ioLength ); - -BOOL CH34xWriteData( PVOID iBuffer, - PULONG ioLength ); - -BOOL CH34xWriteRead( ULONG iWriteLength, - PVOID iWriteBuffer, - /* ULONG iReadStep, - ULONG iReadTimes,*/ - PULONG oReadLength, - PVOID oReadBuffer ); - -BOOL CH34xStreamI2C( ULONG iWriteLength, PVOID iWriteBuffer, - ULONG iReadLength, PVOID oReadBuffer); - -BOOL CH34xReadEEPROM( EEPROM_TYPE iEepromID, - ULONG iAddr, - ULONG iLength, - PUCHAR oBuffer ); - -BOOL CH34xWriteEEPROM( EEPROM_TYPE iEepromID, - ULONG iAddr, - ULONG iLength, - PUCHAR iBuffer ); - -BOOL CH34xStreamSPIx( ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer, - PVOID ioBuffer2 ); - -BOOL CH34xStreamSPI4( ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -#endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" deleted file mode 100644 index d5c17a9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_LINUX - Linux\351\251\261\345\212\250/\350\257\264\346\230\216.txt" +++ /dev/null @@ -1 +0,0 @@ -CH341在Linux上已经完成了与windows一样的功能的驱动和应用,在Android已经完成了Epp(MEM)、IIC的库以及Demo程序 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" deleted file mode 100644 index 7241072..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PAR.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" deleted file mode 100644 index b93b4ce..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341PRT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" deleted file mode 100644 index d07cfad..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/CH341SER.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" deleted file mode 100644 index 701f21d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/Readme.txt" +++ /dev/null @@ -1,40 +0,0 @@ -最新版驱动下载: - -并口驱动 (I2C/SPI) -http://www.wch.cn/downloads.php?name=pro&proid=64 - -串口驱动(UART) -http://www.wch.cn/downloads.php?name=pro&proid=65 - -请预先安装本目录下的两个驱动程序,然后把USB下载器接入电脑,按提示完成驱动的安装! ------------------------------------------------------------------ -资料名称:CH341SER.EXE -资料类型:应用资料 -资料大小:227KB -资料版本:3.3 -更新时间:2012-02-15 -软件简介:USB转串口CH341/CH340的WINDOWS驱动程序安装包, 支持WINDOWS 98/ME/2000/XP/Server 2003/VISTA/, Server 2008/Win7/Win8 32位/64位,通过微软数字签名认证,, 在计算机端将USB设备仿真为标准Serial串口设备COM?, 包含识别CH34X串口号及监视CH34X设备插拔的库 ------------------------------------------------------------------ -资料名称:CH341PAR.EXE -资料类型:应用资料 -资料大小:185KB -资料版本:2.2 -更新时间:2011-04-29 -软件简介:USB转并口CH341的WINDOWS驱动程序和DLL动态库的安装包, 支持WINDOWS 98/ME/2000/XP/Server 2000/VISTA/Server 2008/, Win7/Win8 32位/64位,通过微软数字签名认证,支持USB转EPP, /MEM并口,支持USB转同步串口:IIC/I2C、SPI等,, 用于随产品发行到最终用户 ------------------------------------------------------------------ -资料名称:USBPRINT.ZIP -资料类型:辅助资料 -资料大小:131KB -资料版本:1.2 -更新时间:2007-09-17 -软件简介:USB转打印口CH341的WINDOWS驱动程序,, 将普通并口打印机转换为USB打印机,支持WINDOWS 98/ME,, 无CH341和原始厂商标识,用于OEM产品制造商,, 支持自动搜索安装和SETUP.EXE安装,支持CH341和CH340 ------------------------------------------------------------------ -资料名称:CH341PRT.ZIP -资料类型:应用资料 -资料大小:110KB -资料版本:1.2 -更新时间:2007-09-17 -软件简介:USB转打印口CH340或CH341的WINDOWS驱动程序, 将普通并口打印机转换为USB打印机,支持WINDOWS 98/ME, (WINDOWS 2000/XP不需要安装驱动程序) - -// Http://usendz.taobao.com -// USB TO I2C\SPI\UART CH341A CH341T CP2102 CH340T PL2303 CP2210方案板 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" deleted file mode 100644 index 46652a1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WINDOWS - Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7/USBPRINT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" deleted file mode 100644 index e648a5a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/ARMV4I/CH341SER.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" deleted file mode 100644 index a3e59bc..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/CH341SER.reg" +++ /dev/null @@ -1,53 +0,0 @@ -REGEDIT4 - -[HKEY_LOCAL_MACHINE\Drivers\USB] - -[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers] - -[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\CH341SER] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_21795] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_21795\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_21795\Default\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_21795\Default\Default\CH341SER] -"DLL"="CH341SER" - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_29987] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_29987\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_29987\Default\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\17224_29987\Default\Default\CH341SER] -"DLL"="CH341SER" - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_21795] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_21795\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_21795\Default\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_21795\Default\Default\CH341SER] -"DLL"="CH341SER" - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_29987] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_29987\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_29987\Default\Default] - -[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\6790_29987\Default\Default\CH341SER] -"DLL"="CH341SER" - -[HKEY_LOCAL_MACHINE\Drivers\WCH.CN] - -[HKEY_LOCAL_MACHINE\Drivers\WCH.CN\CH341SER] -"DeviceArrayIndex"=dword:00000005 -"Prefix"="COM" -"Dll"="CH341SER" - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" deleted file mode 100644 index ecfc30e..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/DRV_WinCE - WinCE\351\251\261\345\212\250/V100_CH341SER_Driver/readme.txt" +++ /dev/null @@ -1,5 +0,0 @@ -说明: - ARMV4I\CH341SER.dll 为CH341转串口的ARM9核驱动. - CH341SER.reg 为CH341驱动加载的注册表文件. - 驱动编译平台为PB5.0.如需要其他处理器或其他平台驱动,可发邮件至tech@wch.cn定制. - \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" deleted file mode 100644 index 05e6dca..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" deleted file mode 100644 index 42ee37f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/SETUP.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" deleted file mode 100644 index c9048ae..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" deleted file mode 100644 index 397b6b9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.INF" +++ /dev/null @@ -1,117 +0,0 @@ -; USBIOX.INF -; Driver for USB=>EPP/I2C/SPI... chip V2.2 -; WDM for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7 -; Copyright (C) W.ch 2001-2009 -; - -[Version] -Signature = "$Chicago$" -Class = WCH -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %WinChipHead% -DriverVer = 06/05/2009, 2.2.2009.06 - -[ControlFlags] -ExcludeFromSelect = USB\VID_1A86&PID_5512 -ExcludeFromSelect = USB\VID_4348&PID_5512 - -[ClassInstall32] -Addreg = WCHReg - -[ClassInstall] -Addreg = WCHReg - -[WCHReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%WinChipHead% = WinChipHead,NT,NTamd64 - -[WinChipHead] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[WinChipHead.NT] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[WinChipHead.NTamd64] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[USBIOX.Install] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.9X.AddReg - -[USBIOX.Install.NT] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS] -USBIOX.SYS, , , 2 - -[USBIOX.CopyFiles.DLL] -USBIOX.DLL, , , 2 - -[USBIOX.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , USBIOX.SYS - -[USBIOX.NT.AddReg] - -[USBIOX.Install.NT.Services] -AddService = USBIOX, 2, USBIOX.Service - -[USBIOX.Service] -DisplayName = "USBIOX" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX.SYS - -;64bit os -[USBIOX.Install.NTamd64] -CopyFiles = USBIOX.CopyFiles.SYS64, USBIOX.CopyFiles.DLL64 -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS64] -USBIOX64.SYS, , , 2 - -[USBIOX.CopyFiles.DLL64] -USBIOX.DLL, , , 2 - -[USBIOX.Install.NTamd64.Services] -AddService = USBIOX64, 2, USBIOX.Service64 - -[USBIOX.Service64] -DisplayName = "USBIOX64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX64.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -USBIOX.CopyFiles.SYS = 10, System32\Drivers -USBIOX.CopyFiles.DLL = 11 -USBIOX.CopyFiles.SYS64 = 10, System32\Drivers -USBIOX.CopyFiles.DLL64 = 10, Syswow64 - -[SourceDisksFiles] -USBIOX.SYS = 1 -USBIOX.DLL = 1 -USBIOX64.SYS = 1 - -[SourceDisksNames] -1 = %DISK_NAME%, USBIOX.SYS, , - -[SourceDisksNames.amd64] -1 = %DISK_NAME%, USBIOX64.SYS, , - -[Strings] -ClassName = "Interface" -WinChipHead = "WCH" -USBIOX.DeviceDesc = "USB-IO" -DISK_NAME = "USB Parallel Installation Disk" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" deleted file mode 100644 index 7d3e2d5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" deleted file mode 100644 index 5f75bb3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/DRIVER/USBIOX64.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" deleted file mode 100644 index f15733b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.H" +++ /dev/null @@ -1,684 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19, 2008.10.15 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.1 -// 南京沁恒电子有限公司 作者: W.ch 2008.10 -// CH341-DLL V2.1 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI USBIO_OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI USBIO_CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI USBIO_GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI USBIO_DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI USBIO_GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI USBIO_ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI USBIO_ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI USBIO_AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI USBIO_InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI USBIO_ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI USBIO_WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI USBIO_EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI USBIO_MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI USBIO_SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI USBIO_ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI USBIO_GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI USBIO_GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI USBIO_FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI USBIO_SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI USBIO_ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI USBIO_WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI USBIO_GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI USBIO_Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI USBIO_StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI USBIO_StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI USBIO_StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI USBIO_BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI USBIO_SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI USBIO_QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI USBIO_QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI USBIO_SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI USBIO_SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - USBIO_OpenDevice - USBIO_CloseDevice - USBIO_SetupSerial - USBIO_ReadData - USBIO_WriteData - USBIO_SetBufUpload - USBIO_QueryBufUpload - USBIO_SetBufDownload - USBIO_QueryBufDownload - USBIO_SetDeviceNotify - USBIO_GetStatus -// 以上是主要API,以下是次要API - USBIO_GetVersion - USBIO_DriverCommand - USBIO_GetDrvVersion - USBIO_ResetDevice - USBIO_GetDeviceDescr - USBIO_GetConfigDescr - USBIO_SetIntRoutine - USBIO_ReadInter - USBIO_AbortInter - USBIO_AbortRead - USBIO_AbortWrite - USBIO_ReadI2C - USBIO_WriteI2C - USBIO_SetExclusive - USBIO_SetTimeout - USBIO_GetDeviceName - USBIO_GetVerIC - USBIO_FlushBuffer - USBIO_WriteRead - USBIO_ResetInter - USBIO_ResetRead - USBIO_ResetWrite -*/ -HANDLE WINAPI USBIO_OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI USBIO_CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI USBIO_GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI USBIO_SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" deleted file mode 100644 index fe39fdc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/PARALLEL/LIB_C/USBIOX.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" deleted file mode 100644 index 438717b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/1. DRIVER - \351\251\261\345\212\250/USBIOX.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" deleted file mode 100644 index 8c453d4..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/How to.txt" +++ /dev/null @@ -1,12 +0,0 @@ -写入数据 - -长度:准备写出数据字节数 -数据:指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - - -读取数据 - -长度:准备读取的数据字节数 -数据:指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - -设置I2C总线时钟频率 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" deleted file mode 100644 index a6c97e8..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/CHIP4.ico" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" deleted file mode 100644 index 960e724..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/MSSCCPRJ.SCC" +++ /dev/null @@ -1,8 +0,0 @@ -[SCC] -SCC=This is a source code control file -[USB2ISP.VBP] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= -[USB2I2C.VBP] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" deleted file mode 100644 index e050855..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.bas" +++ /dev/null @@ -1,95 +0,0 @@ -Attribute VB_Name = "Module1" -Option Explicit - -Type arrRBuffer - buf(mMAX_BUFFER_LENGTH - 1) As Byte -End Type - -Public Const WM_KEYUP = &H101 -Public Const BN_CLICK = &H101 -Public eepromid As EEPROM_TYPE 'eeprom型号 -Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long - -Public mIndex As Long -Public mOpen As Boolean - - -Public Function mCharToBcd(ByVal iChar As String) As Byte ' 输入的ASCII字符 - Dim mBCD As Byte - If iChar >= "0" And iChar <= "9" Then - mBCD = iChar - "0" - ElseIf iChar >= "A" And iChar <= "F" Then - mBCD = Asc(iChar) - Asc("A") + &HA - ElseIf iChar >= "a" And iChar <= "f" Then - mBCD = Asc(iChar) - Asc("a") + &HA - Else - mBCD = &HFF - End If - mCharToBcd = mBCD -End Function - -Sub mStrtoVal(str As String, ByRef strOut As arrRBuffer, strleng As Long) - Dim i, j As Long - Dim mLen As Long - Dim strRev(mMAX_BUFFER_LENGTH - 1) As Byte - mLen = strleng * 2 - j = 0 - For i = 0 To mLen - 1 Step 2 - If (mCharToBcd(Mid(str, i + 1, 1)) = &HFF Or mCharToBcd(Mid(str, i + 2, 1)) = &HFF) Then - GoTo con - End If - ' strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - Debug.Print Hex(strRev(j)) - j = j + 1 -con: Next - j = 0 - While (j < strleng) - strOut.buf(j) = strRev(j) - j = j + 1 - Wend -End Sub - -Function Hex2bit(var As Byte) As String -If var < 16 Then - Hex2bit = "0" & Hex(var) - Else - Hex2bit = Hex(var) -End If -End Function -Function HexToBcd(str As String) As Long '将文本框中输入的十六进制值转换成BCD码 -Dim Length As Integer -Dim X As String -Dim i As Long -str = Trim(str) -Length = Len(str) -For i = 0 To Length - 1 -X = Mid(str, Length - i, 1) -Select Case X - Case "a", "A" - HexToBcd = HexToBcd + 10 * (16 ^ i) - Case "b", "B" - HexToBcd = HexToBcd + 11 * (16 ^ i) - Case "c", "C" - HexToBcd = HexToBcd + 12 * (16 ^ i) - Case "d", "D" - HexToBcd = HexToBcd + 13 * (16 ^ i) - Case "e", "E" - HexToBcd = HexToBcd + 14 * (16 ^ i) - Case "f", "F" - HexToBcd = HexToBcd + 15 * (16 ^ i) - Case "0" To "9" - HexToBcd = HexToBcd + Val(X) * 16 ^ i - Case Else - 'MsgBox "非十六进制数", vbCritical, "信息提示" - HexToBcd = 0 -End Select -Next i -End Function -Public Sub mUSBIO_NOTIFY_ROUTINE(ByVal iEventStatus As Long) - PostMessage frmMain.USBIO_NOTIFY_ROUTINE.hwnd, WM_KEYUP, iEventStatus, 0 '将接收到的插拔事件值发到插拔处理程序中 -End Sub - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" deleted file mode 100644 index 6168b57..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/Module1.basPreview" +++ /dev/null @@ -1,14 +0,0 @@ -[Preview] -LargeImageOriginalSize=708000 -LargeImageWidth=354 -LargeImageHeight=500 -LargeImage=78DAEC9DCD6F1B479AC6DFBF40F71C72CB2197BD78001F06320C1F0C0541C0B161780C660443597A40081ECE040D9B70222B74D616B990E38E08C34A5A43E863DA3304A510C836642E301CBA1540268D380DB90F3688F621027A7C1128F8E2E5C1176DBD45558B9F12E538412C3F107E608BACEAAAFED0C352F55BCFBBB5B5455B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AF2155C715AF359C0B000068235FAD513C12252D9EA0E45773148F85E9782842256B860E8BD7818177E8F6F29C2C934824A8EE3B5DF753130C0D2D513466D3ADF16F3B3E3FFB91466BE658CF7E24F31BA28DBF53246E53ADFC10D70600F0C690B03CAABB59F2EB5B94CE15850E47E994D05FFFDF159A9898A6C4448AE2D339A191A15D7598F9F4824D25FF397DFDD5BD8ECFB26681AA76BE675DCBDBA2CDCA03F1FA823CEB1EAE0D00E08DD3E16A6D8BDC355B68AD4EA69E10E3DBBAD836A4F6D66A55B96D88EDF6B905C7794656719D7CE7295DBAF180F4844D4EE1A17CBF527C24DFDFAD7DAECBE55887793CAC69FFA4ADDA46DFF50100E07587E71302BDADDAFB9FD7B037C8301E5351686FC17CD8F27ED6F85E6AF26E6D735D2E972F3C117DB085D6731F9EF7551F00000000000000000000F48FEB54C917BCD298C0AA87730BC001C4767CB2F22699794B68871DCC216FD5AAA41BF9C667BA4E66C191CFF67C51266F57E533BEE6F276DE683C0FD44DF9BBE735CAF3F66EF113CDE87AA31FDC1EB7A1F6CBFD50EF73BCC7CE33C6C69C376F3797E7BE733F0AA62EE33E1A7D4F747DFED82DDE59B511EC4BB4CFC7BD9FF3BA98B3C82F5A41DBBC1F7E46AAB6FBD987E3D76579751CB9C51CEE59000E20259FE3C8B294A96C0AEDD25BE2D6125997DE3A769EDCACD05551D6CC58B2CEE4D4A42CCFAFF366862CAF4E376E4CC8F7362B19316EAB51C2BA4F35CFA29851A62DCFDAD17DFE4CEC9F69D7B6A56F1AFDC898F374F8CC68A041DC8FF3C7DE92FDD8DAEE4745A0DAE357EE076F733F2E8D5DDEEE872735968F8BFB91B8F069ABEE9B050A874E0A1D8F75C677642AE2D593E7C72F6528FBCD126DF9A5963265B1FF5E63DEECAC495B75777B5F26B942DB3F8967C9DD74A9562EF67D7D543F78FB9BAC857B1680034865734BAEDD0845E252379BE3D63242A78A0593F28641CB62DC6866E669CD75E4D8D3D81EE78E8A71A3A6C5C99A9BEA3A1E1ED626FAD6E1CFD259D90F3D31DAD206F7235F28C97E54C5F89DFBB13029C69BFC5DB1DD5FCBABC9EF10D98F2EE361EE47E6C6A52E3A67063AD73C1E9E8F4F073AEC5942EB17165A7498CB84431A3985B4D05BBF53879716657977CD916DF0D87D2C5BA689C8704779FE6C2496A46A7EBE656C2EE34C1246F0DED26216F72C00071073D5A75C7A9CB4744EE840B267B9A1E18B74323444A98BC32D3A71E26494A2423BB3621FED7558ABB499D5BE757874B4D18FE8C9B33DD7461B627CC8FD3832189663DE9D757A55A9C3B21FB572473DEE879EB8D4D73A6CEEF7C8B111A9C3F218848617739D7ADB3C56ED352FC16B662C3D111C7B5CD3BAC60D1A79BBEB7C45D9AE06FDC3BC040000000000000080D77D3D9DCE73AEBE1FCC0D948A05F9CAEFD7EA7E10FFB09BBF846E7AA4EBF7289FEDF48798BA7E43D42DEE129FF14CAEC9E3757555FB11AE0D00E08DE155F9AD31EF9EFC27BD3B3041C9E85F3B3EDBCB6FCD5C7D46D64C9192B7850EE757706D00006F0CECF3A39E97718C04D1DB746880C8DDF42874F8034AC423942F97C5FB6F891FDA754CCB9E10E3C3DF5229F3727E6947468A747E685AFA4BE0DA0000DEB4F170389620CF4AECBBFE98FE843E38FDBF644D143ADEFFF8F442C7FBED73225C97CB55FD67F4D1A9252ADD2CF65D1F00000ED2FCF04FF55B6BF745DBAFDF1AEBB0A9DBE43B3FF65D1F000000000000000000BF0CCADB85D7EAD6D81BA1298E8CFD66783B6F285F1B43AEDD6DDE662F195E9BC5DBAF2A6E4DADAF2DDB79327503D7090070E075983D1CA2E902C5AF5D6DF1DD61AF1D3D61C9B5B4EC83C39FB1DEB2DF0EAFF175DCB5C027A75BBCC44FC94F777DAE40235A9C9CDBD3B84E0080030DFBCACC68212A960A1DF9E29A75588D81D907A7E0F8D2D7867D1A59BF43274F905330BBEAF0CBE6A763ED8E6963B466CDE13A01000E346B422763D188F41D6BF6C76192799B468E86A997B78C1A4FF3B8F855C6ADF1BCC4C5B351BA33AB53323A82EB040000000000409FF1CAA69EC0F9000080266D74F791338D3DD71BFEBC2FAFC39168ACEF3C40FDF7ABD333B8A30C72B901005E12235FA5AFF5188D26E6C95F35FBAA131A1A22E7F6385D4C65289648D0D0D130E58D1845C66FC979E6E3EF1D975A982DD7649E0895278DFDDBD9333D349A202D16212B9793CFF8F458587A9EEB255FFAF6B46B5E489BA188289F180DD139D186CA0B67147DB266341A9B59A664F20225621A1D0DC7E43CB76A2335394DB9A94699DD7CE79B51F98B0ADBFE41DDBC84547E0C9BF7298E15B92B00003F858123E7287EF2DDCED8B3EDF8E1F6FFF563BA4E56FA2A995F5D697996174BCE4B1D8C7DF4BE2C97CDBA326F1AC75D10FD86DE1D1820BBBC4CA11327A5CF4FD5ABD2B163C7491B0EEDBAF639C39E419B15B9FD1FE1A4F4059A8A0C4A1D8E86066938728ECCE5458AC5A234188A9291D482362AA28DE1E3BFA3E10F473BF2BD71DC7373CED19DB5D3D5ED9C16BB8F7191CB0D00F02AE0711DC7874D699DE3D05E3A3C387281FEFC873374E32FBF935AA6E2CE58BF783C7CF94FA71A3ABC3D1E0ED67408FDB6CBE5161DE6F7987E75B8398F1CE77E96F539E7D1A62F63E3F877C3305A74782C7A5E94D1BBE675EBEE6D51DDCEF95CDBF5BCA99C72FC3BC6C3008097C5169A5359B5656ECB7EFD78787D1D97659DE618E0C61C703D1863AAB575FB9D1FEE05B723E393FBD4D196E3135ABD5F9F21EE77D52EEF39276C183B5A8DF9610000000000F06B885BFB39E2250000E0679D97D8CE2BCFCFAA9496A9F95EF999F8DFBBFD3916C713709D766F9FBDE616BAC5F65A05879C8215CCCBAAB5D3DDE6A977FC861AFDE5398762C1A47CA1243D81B8AE8A97E03A3C6F6CAF568232EDFBED05CFD1747B7E0700003F071CCB100FFD859CD5B9C01322EBD6E55A64F6F099FC32B567ACC05ECFF5D8C3C22F65282BF6D71EB3C0FE1556A2A1E7EC33C4ED5FBD16EF784EC7FE40EE9A23FD86D47780E56DC978B24CC5A3043FEB13FA1B33CA528733F3A6ACB35474A83875853277DD8E75DBBDE2251AC767EE192F010000AF5287B3D61C79FCECAD693CACC6BDEDBADA885930FA8EAF601DF6AC0C654A7E8B0E3B1CEF109FA679A1C3BEB3D6733CFC4BC74BB0DE43870100BF14ECC7133E3A44E158AC6F3F1E9EBF28DBD5BE759863BC346D82C6B4588B16EA624C3D74F8080D89F62B9954EF7523DA0C39F9D4BEE2259C35579637577D715CFABECE097BBDF5133F0C0000000000000000805F68FE627BEED6776C9C0F0000F819E2D618F59C8EB7390657D74D19F3C5CFE4F276B9F1D98591209E8DD7B83597D96BFD1953E779645187DB709D42D0DE26E7C3DBCEF1C1B941B86CB9B6457ED10AD64ECB6773A26D7E2EC76DABDC7AFC3BCF05E7167354F78BB8AE0080D70E15E315FBA2355FDCD584DE880B33E783B8B0C4854F65FC02D7A9AC3A742D9569C485B5E5A86BD6F7F631B46A2FF2F95C4B7BE67C865C4BECCFBAD3F0A7C8F2B336578EC5D9AB2D9B1E0F62D8B86D2E73E55A4A687523EE8CBD765CF8ED00005E531DE6B8308E9D207A4BFA99F1B8F2D8FB9AF433CBFCF705E969C97E66D1C16314D292322E8CC7AE7FBC9C917E665C663F3ADCDEDEA668EFE4598DCE854364DDFCAC4587FF90B0A4575B76ECB48C9DE078346E9BFD349BFDDAA0C30080D7755E625868AA8C0BEB37264CD49171613CC77049EB1A17D64B87795E62E2BFAE51DDDB5B2FD5BC447BDBBDE2D7302F01000000000000000080FDB0EF1C763C2FD1475C060000BC2EF4CA1DE7AF5A349CCACBFC71D283BD9FF5C0058752C361391FCC31652AF79CE379140E4564CEB7E8F84D1A0F7F441FFCE745CA27E341CE0EAEAF7C77382E42B73CD997E9CB9AEC87DC8FE8879C332E21F70500E0608D47398657E9B08A29F31D47FAAD715C587B9D5E3E12EC1954C9EC3C576B8E29637F36F6CEE17DCEFEF963FAF873437AFFA81C76CD6B45547C9A8A8DE33A6A3FDC0662220000075187DB73C7F13A0E1E9FF2FBECFBDB8F0E2F3B2E2D4C5AB4E63A729CAD72CFF1FA1063DB478DBD7D75514FE5A46B1E0F2B1D768A59199FA662E39AFB81F1300000F446AD93EBE60F5F96B937CB981F060000000000A00FE02B04007863D6D36DE77B631F1DBBEA056BE0DC359B0CCE6D9169CC1D37D7E9959F4EE5C5E039E0AA576DF1E0E9B6CE4EF90AA979E65EBE42B84E0080830CE778DBAC64829C74CDF9E262427FE72F8DD1D4E4A5CE7A5DF2D369A9591A8EC4E9E667A33207C7C4C434252652D2C3A7DD5F82633226178AB26D8E87E0D75EBE42B84E0080374187F975793E412347C342872F481D3D3C749A4E0C1EA18B67073BE60CB4D078870E8F19651A193A44C5298D5C513F74F88320F6A25D87D9E7A7E8D7291E89CA98B9DD7C85709D00000719235F95DE93AC85B56A5EC62E70CECEBD62DDBAE5A7D3666CE989C671C83DE7415EC25708000000000000000000E0D740C1F1498B46A8388B790D00C0C19B1FCE5B333474344CE1A343326EEDC4E9D3341A3E43BF3FF57ECBDCF099C1307DADC7483B7EA6655FA7DE3B4E96EBD1E8673765DCDAE150840606DE69F17CE7D808D51E3F9B8B26A628110BCB980ABDE453E8FCB85CCB1C33F2B22FA61193793A8AF7D728B7745B3EBF3B25F69BB9FC275C3F00C01B1BB7767DAE40235A9C9CDBD3FB8E5B631F36F69F88A60B5477B38DBC76DB3ACD1A3DF965639CEBC978644BC66470DE3A6BD59779EB389E6D3253A1CCE414AE1F00E0C0E930C7ADA9BCC8ACA309A1C7BCDEA2DDE7279D2B524C1BA3356BAEE57DF6EC99BBFA21D5CAD9C03F48E57E56654AFE16CD6821999399C7CCCA1B93D77AA8F521BCAEC3C817645FEA5B35E95BC1EFF94E41AE1151EB4EE03301003868EBE958D7F68A5B637D3575832AABB6D067BD6D8EC3961ABE9B3E727E3AE507D41E57DCDE4EC3FFA78EEB040000000000000000807DA1E68723D1D8AEF30F6F4A3F0000A09FF9E17EFDD6543E0E7E7EA7FC2939D68CFDD2F28592F44BABF1F335F17A341C93F1105C87BDD7ECD58AF454E3728DB9E49DFDF2E79C838E9FC51946E3195F7B6E3CF59C8EDBB31DBF655FAA8D5ADD0F9E11D66AD5967EE4B78F57F6D72C046DE25E0000BC4E716B2A779CBBE6D0E133A3321E983D30D92F2D53F11A7E69A20CFBA5C58CB2D43FE5B1B65474A83875853277DD205EAD39EE8D7D7F38EE2D27F496E3DEBAE5F6E03C771CCFC67D97FE6CA2CDE636229FE7649F586FE3D3B9967E707F95676773DE3B0000789DE2D6940EF3B61A0F731D3D6305E34B559FC7D23CB65579EF2A5E95C6A2E74539BDC59758C5BD7D78754EC6BD358FB37BE9308F87650E3C1EDFAEB9411B6A0CCCC7E2D76B413FB88FBC5F758CBDF2EF0100C0AF396E4DCD4BB4FBBBF7DD9ED04ECE0FDA7D6D9FBD675C70F3BC04AE1F000000000000AF27EC57C4F321BDFE37F8B9E24690EF0F805FE1BCC476BE38FE3FBF792DB2E714E4BA377E9FD720ABF95A7EBE55AD35E61078BB3D7642CDBDB2CE705DC75D6BD11A9E97B0F22699798B5CC76E59FBAC8B7DC9CF747D7BFE4197BAC1FBE575CDCDE5D5BC845A9BE7794E309FCDED97451F177396EC6BF3BC0B1FAF9AC3EE152FD14F9E3DF6C9506DF17ED5F9602F8DE673AACE8F29CE0FF795CF079F4FDE77B35F516E31D765CEC86E8A1FC9EEC48FB4CD07B55F033E578DB9F39D581215BF22F3FDB53D1F3D88ACBB35719E3CBA77BB40F75213F29CFD28AE8B2DCED58AF8DD13E7F1913837F6448A36C435FE5E5C3F7E2D5C18A575716FBEA83572CD3CDDACD3BA7D979EB83EAD4C7C21EA7E41EBCBB3413B4FD6443B35B7A5EDE782C7CB25CAFEFE132A6AE7E8872F67C5DF934BE589097A5A685CE767F52D7A28AEEB33DF15FB5CA09544925E886DEEDFC374B2651DE9BA57179FEDE4565899CDD3866D05F3774FC5B5DE10FB7F2AEEC9070B37E9C1EC2C15B4187D1B89D01DC10B714F3EF17C7A7CFF2E7966961E897BE4416A56D67F2AFE3E0A9A464BA2DCF57706E9EF87DFA11F6F8FD3FFD56AF4E46E491CDB1ADD13E7663D9B16E537E5B115C7E705E3F4D84836DA344BF4E39A4BEBE565FA9FD1CFE9BB4FA2F4306BD203FD1A3D13EFF131D9E2FEFC51FC3DC86B20B61FF23D2ADEFF5E6C6F6CC74D3DBAEF91576AFC2DF2F5787A37F752739FAF2379715ED85FCDCE27652EA373E1281D17FAE0ADCE489FB37C322A7DCE542C036B0D3FD3639F34DE56BE68792346B1E43C69B104CD276334B3EACBBAEC93565BDB894F338A3EE5D21A69E91CA56F25E53E950E87A2693A34F81EA586439416F7E8C95054EA30B7AD69719A9E9EA01327A3148927283D1E955A1817F710D79F592E52221695F16955712CFCCC2FBBB418E830FBBB719E10DDF2441F23347D59A3E1545E7A5BB4EBF07E7CE366535AE01BA774987DE3D8434EF9C6F1F9DDCB376E6931DB716DF87B62754693FD981A8FCB7E4C7C78A8A51F4C489BA18838A6C4682838575373169D1DD1686C66599E8F3CC724C6B437428759675692063DF72A425B3D5AF77D7AE15582CF593B0A427F8BDA98FC3BDFA835FEEE57F4A4D097317A90BC410FE6FF26F5E1F1AA47E51B7F13BAEED1C3DB7342336FD1E3F9097A21F6F3A25EA70DF137F3AC7C37D04D7EDF13BAB8921AA76F473FA1951B9FD00F0B4B526359775726A6E5BDFE48E877313527DB5FBF7F9F9E0B2DDFA8DCDFD65DD6F69D9C63DCC6466939688335FC41E296E8DFB2FCFD874C899E6416E4F6770B45FAEEBAF8AEB06668BDE2D153B54FD7A527A29D87E92F84F67BF4447CC67D625D5D2F95E8B128C7DF318F6652F2BCF1F74EE14298BE4F6A742FADCBFDA93E71FFB8CFFF9A5EA4E295295AB9322EFAEF935BBA2BF5FDF11D8BFE21EEF5A7CB0BB421F47949DC9F7712315A11F7DFCA6C2ED0E1252D4905A117E5B198DCEF833B152A7F99A2078641CFAAABE27BE0AEECCB9BA0C3EC6BF6DBB74F5066F28F42FBAA94FE628C4E093DAC6F56A46E9C0B87C8BAF9195D9ECE49CDD313A3D22B8DFD7958BF92E2FEE59C761CBF704E680BEBDDADF1735287B9EEE870448E4B547B95CD2DA9BD21F6D95C9E27A2B7C40F492D1B1EBF4DA747CFD38C1696FD32335610CFC6FB65CD1B15635ED699B9EBF14087C3427B679673329FDDA0D06ED6996CD6A5ECAC29F743F41B7A776040EA306B16C754B046F2716842F3DBE325FAC9B3C7F120C9A42EF7A3FC8AD45895F53D163E2AC7A5C97C41E6FBAB8BF3C3E793CF079F4FD661FEBE8B1E7F4F8E4BBEC95A5DE7120E0D9D6FF4438CCFB91FF2FF80F67C7FE2BB85F3FD359FABA9B93999EF6F38728EB6FC1299E2EF5EE5FB635D3E88F732EBE9F3EDFFBD789BC76C4BE25CA48F9CA0F9436FB79CB7A74297BCC5BBF4CC2DB5D4FF6E7A8A9EDC29099D2907BAFA50E8EA0FE39FD30F8BDF50313D43F7F85E60FD147A642753F42FD1CE8AE09ED070BE96AC6DDF4692341FFA90FE21AEAFFB9521F6772768E7DEFC323DFE7FF6CEE7B7892CDBE3E72F60CF7E16BDE90D23B16284B28882D0C82242BC969B08B965FA5951BADEA052F06B08EE9A1EC06901ED8E8502D86D419079CF728225A614BC688F715A4ADBA8192B7841CB7216B454C30619B199F1623679F79CCA75CABF4202818697AF5A1FB589ABEADEBA957CEBD4AD73BF67FE1ABD2CBAD7FC97B243852B2A268EAA18736E56E97A5969E383B6A6B36E152241FA7926229F5FAA675589B997EBA257BF4ADCEA9E1BF7356F4ED30F3371E9D3D2749456EF5CA327EA7E92FF768EFE76F62CD5EE66A53F1CEFF2392F9D99A06785A46AE31A15548CB37A272E6DDF537F2BF7D4EFCFACFAFB9EF9E87794DCB74FDAE67B5641C505B5F46D5A5D5CA055D5D767EAFFBFAABF473D0EABEAF8BF64E6D5F528D32F2A6E2BA9315B0A05E9EF3767379E25EC9A8CD72315B7F0EFE8BDAF93B4341B51EDCFD3928AD396AE4CD3D3726557C5C37EC390FCE1ADECC3FAC7CFD7AFE3C7935EE6783822F1F0667A3032765AC5C323347D7AAC4397381E669DC9C4233DFBB0369AC965D1613D2FD1D3F77AF395CF3A5BA9B3B7A28E6FA8DF2BBE2F717B7A3CFA69A99B7FB2F9F8F49B97E0587EE8806FD37EE87858EAFDED9267B841AC3A4A87C281760CF9CBED45CA5F9FA6F205A501EAB9E0F9FA1C12C7CBAC679A25151B3FB56FB77F5ED0BA1A8DB6E365FE59F9C25FE8A76B375C2D54FAFD6F754D0BEA1990B58BBFD73FE76B9DFFDEA6A5F3D7E9AFE7AFD0D2A5198935B556B2C63D595850BF3795F63CC6E3628DEEABD8F0C72B06FDF86D54B51FEEB89E3C37C131685BCBD5B392F49D51FDE4CFCF3CCF754F54BCCB7DFA51F1E8BBEFD4338043E58502FDEDC2057A9CF89A569516AF721FD47834D4DFC44FB34AFB927372ACBF4E9C55C752F79B7491F29F9DA1270FB274EF6444B494E716F49C8A7DEABF68EED061FADF511F3D9E3AE2BEF7B8728B4A174D752F08AB3E4DC9183E2E54E887A09FEEA978E9E9CA03FA41C54EFF1332A870EABFE598F7D6D7BAF2B8ACAAFBC8BF1A0FD5B9D6D439BBF7BADD343F2C6BCF5EE39DD17675D83B3FDCBD9EAE63CE737DDED7BB8E43CF5F27DAF3B2BD3ACC73A97C4D37FAB5FD31D98E6F5CBFF8F47574B85E6FF4D5E1ADF87BF2FC70BF79E3DD06EBC3B3BC7BEFFD273FCB3B4D89D51E2DE665FEF5799F6BFA5C8D3BC79C4F0B1B71316B62637E5E7DD76C6FCFBAF6F7DB59F56C72CBD53F15B7F0F1FED97C219AFFD8AEC8F8BF741CB9D6AC53A5588C1AEA996FE9EA023DAFD81D7137C79CDE79659E379D5371E7B3951C3D7EB0A2E2E17CC7F5F4B6D1D17F8EED33D99EDFAF5F2B0FE9893A8FD5C5FBEA59FFB63B17ACE2A7C77755DC7AFF263D6F54D5362B12AF6AFD5B52CF9A8529750F9ABA209A2EF33BEAF9EAF1C255BAAFFEEEB87F4F3DB1D38FDFC595B6DBEAFF17E9F9B2FBF728E7AFFAB8AA62E05FCB397A345FA0A7CB1519B39FF53B1AF577F3937A567CA29E01F51C85F7D9E387A0BA6F5E8ED3BD70588D23DE2B030000000000F0FF7E5EA2EAB4E725D2997447AE99CE1D937C863E7952FC3CAEF3D91231CECB4AB4F3B2BC39709C43C0CFFA32CF502CB4DB6BD44BED79065D7743E7C9E1DA0000760B9CBF1035C39448DA74BF5CA29AEDD6825B7B51935A70FC0EEADCC5AF3BF6396FD914F6FD49E681B876DC43B50FD78BF3D691E3BC2EF6ADE0777AACD7DE3A74DA4B88BD80B8469DF618E2FDB97DDE1FD70600B09B747856E9706A719172B6DDAE0FC7F3FE3AD63DF7C5D1BE3ABC584C532E9150FBE568399FEEA823E7AD7FE4AD4357779CF67B36EF7B371D0FF3F6BC3FAE0D0060B7C0796486DF27F9BC1CBFF67B67DFADC323FEA8E4BA4D060E6EB91DC9EB5ACF2BD88A97100000000000000000000000008077333FEC372C3AFD65B0C39B873D10D83B67F8D070C73E05A745C78233E209C19E36BE89086ABC0100C01BE44B0CFDFE08C522A77ABC79D83F8D3DBA8CCF0EF7780371EE197BFBF82277686CF4C8AE5F530B0000EF325FC21B0FDB8D1699DFDC5CCF75C3780200C09BACA7E3756FFD74B8BB6632AFCD606F5CDE5E7BEB4087010000000000F86DD9AED765DDE36B080000EF3B5CEB4CD78ED3EB9DD993C75B538EE72AB467B0BB8D5BD7ADDA6874CC7DB04F5077BDB757B5CD7EC51B6DBBB5DFD83B597B1973FD24AFF73BFB0A896711CFA1703FD4BEEC5DE4AD4967979B32C78DEB0B00F81058B89BA117958CF8F5ECFF645C6AB3499DD04C8DF60E4D502DE3D6A88C7F6D8826DA8D352A270C2A3A4D6AD831B25315859BDB969A4B93F38F8ADAAE733EBA5D53B36BAE99DB66DF20DDB6D71F9EDB9E18DA2B9F752D248E8B17ED45CA2AD8CF82B7377D41C9EFE0E33885443BEFA396B1717D01001F045FC53352578EEB00E97898BD7A522ABE2CE45DBF9FDA4A95CA4A7F8B0F0AA2C317CD31893D9B2DF6F671B7E718D67764B4A7DEDB663ACC6D733E876E5BFB0471AC2B6DE78B12EBEADAA0FCEEB1ACBECF95CAED1ACFFA981C27736CCC35E9387E768A195C5F00C007C1F87844EACA85464F0C9C538D670B52AF391B9FA268AEDE91075756FA592FB975D6AA2BB5BE7312837498DBE67A769BB52D6D0CA8493708CC4B00000000000000000000000040EFDA3AAEB1A13FF33B305D5F8EF3BDF47BBAEE7576000000DE0C6FAD3AC9B55DAF23C7DF65F355BA78F19A68AF376F0DE30600003BABC3DA7B4DD64F78743810CE906FFF1F656DC4C7FE2811EDA599E0018C1B0000EC205EEFB5F2FD14050EFA950E4F626C00000000000000000000DE21ECDBE66CCBBBAD81710300BC554E044CCAC64D320327E8646456BC26F89D9D2F14A77D070ED1F4988F0E0467C8F01F943C0A5ED7CC9F43864585C524F97D41C5A8F8ADF9C62D328D2039CBDBF7D889671B14317FA062F6D1C06DD89BFEE3A100FDE1A38F7BD641F379F01A697D1EDABB8DCFE3D0817D721EBC1DFB54AC3945F71D653449C9688032B516ED21A28FF6ECA142F10EF9468FB875F95A0E2DCCC3A70200F076F92DFDD6BCDCBEFD8832957F51E66E6D531D3E7E3C4081E3C77B7C2C0679B7F179B06F1B9F87E8F04DD6D7DAA6DE6D7FBE30DD3EEE5DF8B60100DE32BFA5DF5AB5FA922A85274AB79FD18D6B8F28557C49A9DB7F97EFECC2AFF25D777FCD6F9294E036BAE2E141DE6D7C1EECDBC6E7E18D870779B771BD28EDDBC6B9D6888701006F1BED039F907CE2FE9E67ACB15AD758E3BCF5EEBC7E6BDB25577A4E99C4CF54CD3FA6AAF36FA57D25A57D4F25564D247E91EFD65A2FB77C1EEC1BBFD979607E1800000000000000007887730EE97CDB2B6250ED389E0F65AF1F9ED3D535DE72998D9A749237D0679E828FE79D9FE077689615937DF858DA3FA87BAE98B7B3F3556AA97E58B134556B2B5428E6DBF5E9B8BFF9AAE3D6A053DFF11C2DAE2500E083D5618F8F04E711AC357ADFFD2FDA65C91B2864E7DBDA69C72CC93DF0E60D6CCCE9D6692E6A287DCCF57CA773276A4A6B33E133547B51A366B9B32E4663BD5F9C97909E4B91BDEC50C1BEDF91E3C07E1835DBFD6EED450DD71200F0C1EB30C7AF639C137B27D2B3CD6428428B8928992726DAF912C5549C42F13C0D0D0D4BDE40B70E9B86A17E6E6CAAC363C39FAAED4C6AAED80375F8F4748AC6C782645FFD4A3C86F61289C75052E9EF49BF4FBE5B6BE13D1900E0C3E5587046E9DAB1F57CAF9B641921C901DE8963B3B677CF4B048602124BF3BFC3976F51D8347BE6150E1CFD8246F6FF81026323648D1FC575020000000000000000C07B4D737DFDC5BB68ABEAB4C43363AD597EC5FA8EE6A6EB45DE162D05E79398A1604FEE0B00E0FD22A774C27F70844AB9A8BC373BE90FD1B0D297C67292464F98948B8628BB7087CCE99BB2AE99F314D8EF2664CDC8672391A391837E791F6744E7C8342CC993E07768BC6FE1E10A35573672261205C7F50B8A67293E1B9563EABCB56ECFA08FF7EEA5B46A6364C42F7E41B391A0E4C9B15F503E3D25C7F37A0665CA4D773DF25A7F6F1ECEDD189BCE51CCF0F7E4D91D3D344C76AD41E35F5DA5994482F6ECF91D5DFC745FC736EC5DC4BE1AC1B045CD7286A2499B56EC5BA2B3DC8F6BE74CE987D73FA8DC5C23A7D8BBE6D9DB5EBD51A7FD6ACCB9BD962757857351B8BD9BD326B59C427BCC79BE3D5674C852E7C16DF035E06B9856D780AF198F797C2E4941D58FA37CAF7851C1EF3A00EF319C9710F6FD89AACBB7240FECA19DA24BA98AFCED72BE18E78571BED8A5994BF4A292925C5DED93D39DD710BE705E74EFFC85F0C09CB2A2B3E6FA05A96358B198E80C6B166B4BB767906146E57DE1D9494BFC826E5C8FADE75BA4A53DD12A8F675046EDCFFE3C9B79F370BB4E21D1EB47A1EE3363C1305DFD6A5C6AF15917A77BEAEFB167068F81DD68B9DE45D979816362EE4765B92AFDF0E6D6F1F8D4FA780079DBE37797BAF69FF79D26C7DC2BB52A5D3C7D825AB54C7BCCB54637CB89F63570F30E3772FCACB9BB32BEFA5AE2771D80F75F87332AAE4BAA3890EB34C778EDC5FAFA09D613A79A97675CFE37C75F9CABA63D1F3997983D253826F4FAE6E4D76B3FBB9E3DAD767BACCF1C03B3D74E53C57E9CFFA6F7EFF60C6AD6ABE219F4E5B7295937A26B45F3F179FB6ECF201D0F0FF2E691785CF557FBF378C781F7BD75FE538973F55A113ED76E1DE6FB8669862586E5EF136AAC12AABFDC0FD95EF5C33B0E83E2616F7B7CDFE03EEAFDBDF7ACA4E9937B1FB7E7F5D9D4EB67F8BC12B9BCB4D55263C2D7887FE6B45A94E6FB89F4036B5C00789F91356FEA6F95799D35691B73B2ADADB5A73492FD82D86BC7D5D34DFAA5348EF5349FCE74B4E7FA053577747E98F559EBFBC0399C757DD6F78DAD1C77D0FCF056DAE3395E7DEFEB5E6FD87DDE4E7565CBD700000000000000000000000000000000000000000000000000000000000000000076E57ABAF5F5C7B2463693EEA8F7E6AE8B5DAF25E7D947AFA9ADCBDA61B73607FF9BD70BC706D4AA030000D09FF4B24386DF477EC3A2D35F063B3CD2D8AF8B6B730C1F1AEED8E7E817E7DA3E60D64C463CDA7CC387E8D8311F9961D7770C6B6C0100606BB0EFCED0EF8F502C72AAA7DE1BFB585A8649C667873BB55BC5C9D1688C722A76B6C64314BF3245A9735F5060D2127FCACB66103A0C0000DB8C87D9FF8C3D1DBBBFAF37D7E8DC179DF5E122B3693242418A59E3ED9FB177E3F4E9098C290000BCC1FCB0D7FBD6ABC3DD3EBC5E0F4CAF0EE7D3298C29000000000000000000DEEEBBBDE52A35AACB545DAEB4F3D672E998CC5570CE5BA19897790A9DF356423D080000D8518E4FCCD085488066263E975A6C9CC3C673C8BA361AD7B3B3EC06AD356CA967D9EFFD1F000080D7E7CCEDBB74C19CA2EFFE1250F1F08AC4C32BA5DC466DB46ABE5D736D501E06000080D7E7F091513A73F2333A347C98D69A2B03B7E35C0BAE290A1D060000000000BB0D8E85FBD59EDF0CAE612C5E16CD3AC610000076408783618BE291D0B67498F769963318430000D889FCB6176B9243B1DD7D1A76EF3E768A3DDC1A1D3FE3DC38BFCF548C2286060080EEF5D2F5A6C4B6D6B8AFE7E77A1DB553EDCC2BB61239D9A76177AEA3669F4DD6DA74CCE8A3CF95758DC6980300403755A5B9D595DA967558EFB3D6727AE739AA7C9C664F3C1C180A901DB330DE0000B0451DDECA3EFD7478E09CB28AA1D98F1EE30D0000000000C006BC9EAF56ADF7E46DD439DEEE9ADF7897709F1C05E786709F746E48BDDEC0750300BC95FCE184D4B66BCA3B38A95DD768B8B5ECF8E72DA7BD169AF7D19E41BC4F49E912EFC3B5EEF8589C87DC6CBADFEB1A787AED341FAF98CF6DD4D253DB95D53EF359BB276FC32E37A9E51476EC3C0AAA1FB97C51FC358AF92AD54B85F5F37073A775DF753E07F7C929B8FDE23EE9DC90EC7C16BF3700801D8F47592343C1B0D2A032A5E6D2E4FCA3A262C12AFDF9C2B4D2A20465EC866862C1699153CCB4752976E33AA5D477BC0F7BBB798F7B765269AED3A41BD763ED1C37F612624F21AFAE653235CADC4CF7E8708363D28CDDD35FD657A995DAF5CEEF55E721DADE58A393411F2D272FCBBD85BD8FF858ACCD8B7699B2F62215B2F36EBFB84FAD5A8F0EDFEDD3270000D8091DE61ACEA572997C4746C90A07A9DEA8BB759D15B397931D3A9CCBA4A95C2E49FCE83393B24FF77ABC2FBF4DB5E361AE25C2DBF333BEE3D469F4C898D478E2BA221915F76616E6DBF919B984ABAF1C27735BDBD5E141E7C1C79D5B2C898746E66A423496E3E1C47A3DEB848AF773A5B23AAE7B1EDCA735A728EDF1BE5C179B7FBE308FB52B0080B79C3BC179135D791055A5BF61D324D30CF7D464EA976BC19A387D3A3CB00DAE1D6DF843A26DDE7909EFB106CD4B0CD2E1579D07F7299AAB8BF767E1E6F42B733DBCF312DE63615E020000000000000000F86D722AB6E3C9B693F03CAEEB5B5FC2F50000BCF7E89A74CBCB15C93563EDE43A747A5E95DF39793F7B73CABAE77E07E594F5F3A8E09C838EF573B952FB1D989ED7EDCE87D39F65EDB46A5BF78373C7623137CF2CC135F54A653AE837C89A0C6C3B9F0D0000DE35DE9A74AC9B353B2575E8380F2C66B1A636E4B36DC5E433D7A7E37757FD7478504E99F7DD976924682E6AF48D6139872C138FC8BFFBE5C3C9FBB875FF9FEE7E9C57FD4B551A944ACFA9FB498C8C4459E9F0D981F96C0000F0BEF0F9770B3475E6145D9FFA0F3A3D9DA293FE31B2AF7E4551159F060EFA7B7438A76259A2BDEA3FEA8933B50E0FF264D33A6C1A463BAFAB7D3F509AFFD19E3D94993A26FB7BF3C8868686C91CF3C93E5A87BBFB3174D8A4B1E0494A7D3349C1C82C1DF08528746048F5BD091D0600BCD7786BD259E3C36D6F4ABD7E786DAD259A6C5B93D4ED13DCCDA09CB27EE48B856DE7C3898EFB22DBF261C3BC040000000000000000F0FE82DA710000F01EE4AE0DA81DD70FAE956198531431C3DBF27507000030C0BB6140EDB841BE0CEC41C6DE37A9CA0BF142C3180200C09BEB30EB6D771ED9201D2E3A6EEC9C624F4AA788310400801D60BBB5E3B8CEB2F69B04000000000000000000E83BF71B4B7778E2E8B95EF6C4E1FA6BEC89536F3625774DD7597B15A5525D3C7A783D9CD76B2767DB94482404A79A9763F6F3A0000080DD02E733705E03D73166FF1B9DE3C0FF674F9C95F49478E26CF7B89C2F11BF7189F69DB844C6D4971D5E3BC3A7AED0F9FFDCEFB6CFC7463E05006037BF7B5BAF4DE4F71B64576CA59721F133D39E3821DF01F1C461AFE0EDC4C3ACC391537E3AFCF9D7F4FDED4B6DAF9D7C314B7FFC6C9C263E1992DA72BED1231433FCC8310600801D5F7F57A5D9489042DF246939690EBE0FD456B6ACED000000000000000000005B81E793791D743C12DAC65C06BC8400006027D9ACF6DC66FBF4F312E2DA1ADDFEF2EC25E4F7998A51CC310300C01675986B19B56B78F6A993DC4F87797D346B6D3A66F4D1E7CABA4663BC0100A09FDE76FB4B6CA6C383BC84368B87E7C2D7A0C30000302827ED15B5E706EDB39D5CE284D2EE7A2987F1060000000000000000C01B912BD55D9FA1D9E86FDE975AB54E4EB5FED68ECB397A9CD3A773F4EAF58DB96FEF670000786D4DAD3729E8F39319B62899BD25BE15FC0E2E9AB4C9F01FA49061D183725A7D0ED141BF41F55C948CE81C598649D664A0C3CFE2A899A4E68AFB2E2E5674D4367E2AE512F2CE6FE4A09FFC074768FA669A72D110151EAEA86D7314B26664BB6E1FB7130193CC7896CCC0093A1999953EF1B17CA1381D3AB08FA6C77CB25D66615EEA88703F781BF6DC586B96C9376E916904C9CE66C51B83FDE8A2778AF4FDF4185D362E533D7FABE3B876B949C96840E9ADDD715CFECCB9243A3764617E2367DAFB1900005E9706E7A0A56CAAB5D668F4F8F9B6DF5AF64195CA09838A4E53E9504C7488B5953DD7AC588C9AFCFFC9B31DC73A97AA502C1CA4AAD23CF6826B96131B396D964DB615937CB79A3A96BDAC8EF5A236D0C76DE16E468EC1DFEFFF645CFAC4FE9C56A64613437BA99671F33BFE8FBDEB796DEBCAFEE72F98FD2CBEFBD974D3C22CBE78285E040FA1E81B13D2418D08EE281D2352B5E59198F4EBA84A268D1C9AE68D45B05B7944ECA0CE08A523681FAE16D5D7510A8E3C2415CE5B240875D182EA4D70C8A678D18DE77E8E749E9F9E9E6C39F1B4CD7C0FE1439E9FEEBBBF3EF79E7BEFB9E79E5B34727D7BCBA54DD8719839BAC8E1FC5281DADFAF99396D83CEBF3FD3B1E5686DD34953BED5852BBCC7E88F77D9A953C959A66AE9664FBC4139FC8FE24E5EFDCF0A8542F1AC72B86EE693B78A39966539239B9CD6265DB262467E9AF9E2EA1AFB5C93796FA1023FC536156DDC45BAE9C5F58191C32BEE1A5DBA60935DF8C4BB0FAFB9B9C571C25EA2D268F7BC1FE4C7EDBD6C912246A6DAE904EB41E4FB3CEE70AAAC503997EB99B78A1CB64D9E6A75331F3E324E693326345B4D7E07BBBCA5E51AFB092D5ECBB18CF5C79BB3CD3CBD5637F9EA8D17367AF8566CF4743EAC5028FE5DF6C390477E990A19B55F9FEF38C721EBFC707DEBFAF07119B958283B265FBDB2FE69F5C39B9E5E3BDCEE79B778D9A6AF3B4EA87E58A15028140A854231D4B98D72AD332F567F120A8542B12BC4CE40F412D0874227DC68B5F83D9EA18FC55E56ABD5A066ADEAD9AD41CE06EFFFB85972A85D75FAF6B74A374B7C77C83079C239E8826D939D2F78FA5ED94F83BE02F9C15D7C76A1F37BB968F37D2592DFF6E336EBAFA18316BDB1DBA8797A09191F6A5D5D35E2EDE8BC77EA41CA21F1E177C907F4C5EE7A8DD3E0F86A35D6AF23BCD467E7ECE026EB7DB83E2B05D6DBC873AEE8F6D507CA20BA9D309D50B3D1EED3D1A0AE900F295358BC5C9FDDF2210C6C43FC61C0CDB0ED25189794376CBC6D36DC505E0B7E5E4D7B135EE58EC546BBDDA92B13A6BA52F1EA4D78F0F3EA7F166E995713DF0EAFB6C7ABF004CEFC6D45CEF087F18AB610EC27ACCF3379175ED33E5E67AF5CED3F7FDA6D9F61DC82D7605DF9F57C284718AFDCC7BA5C882ED0DFCFF6D3E714BF0C393CC8DE0B7B6862EF35BF50F4ECBD60DF26F65E139985A1ECBDDA2BC5A1FB3AECD55EF9E3199A387198AC77535E7B9C3861D1F4C2324D8E27E837E371FACDAF7E4599C9116EE7925FF4ADF1C824CDC4A254C57D5226AFF3F39728952DB23D88D8035F9A2F79F1C64D996097171D1BE37E26E58898BFD7BE6FD399993CCB0DD8DF957349CA96CA944E4ED2A1DF1FE2EF8BA61EFCF673C56C8AEBD3765A5C9FF3E72C8ACD94397FDC7757DA7CA760981C86AFA430390C5F49837CD9D5CA19968561F18AEC147F772C8B569E6EBFD11FD7A6896BA9DCA4643A49DBADFA005F23FDBCA6A2AF7BBCC627931EAFA5598B792DBA6DC3ED14735B5DF9C4AB37F09A3569FB79B5AC29BEDFF6C8F8A4C72D78C51D62C22B78F278EDF204192ADC26A331538634DB550AAFD823165ED11682FD04BCA2AF08AF687BC2EB89D7ADBEF112DC4623F1506E07F9C01A89CFD20BBFFE75679CF278DDEC93C38893F90FF4B3FDF439C5CF6F2F41F412B7F95A7DB9C7CE6074F41059B108DB19A08DCF5A9DF6F54234C3F7D8CDC647E8F4648A967319B24E9CEAB1F7625F40898891C3B667E3E506ECBC06F912427F3DF4FBA3347AF8554A4F8CB20D9AFCF6C6B93CC55E4BF05D7C98DFA662715AC967B99F487EB10F57C83B6C0722FDF5FA8CE9E7B7AA5C8EC52B531C06FD15F7FDCDA612DC5F478CECB613C77BCA913473B2AB7F5DA6C247E7398D092387210B61770D1BEAE4EB873B36184597C34B7D16A78F75C6356B81EB1363D664B6C2F90BFA540AEE253A763A743E857E0C5F7641BF4B61F2390CD2D79147770FFB3B7030164D90732935302ED83ABE75A968C6198B36D79DD0F1248CD7A3A32FEEF0FA786D87D743FFC3BC4A3D805BDC3F2EF506CEC4BE4778953B1A13660E2BDC8A1C165E93491FAF5D9ED2468E0AB7CB66BE90316B3A277DDAE31563B2F08AB6E0EF27C22BFA8AF08AB6378857E1D68AA4FAB8F5CBE730BF86E8236EB53C04AFADBE7E16D6E714CF89CF1F9F6D802063E63C68E3D393F13D7DFBF8F512FEB8C2D6487BF9D614A05FC5CCBCE7EC1B87287DD6DA5B376DE4D278648C7E3712E5BE24FD40CA2173D5E077D6C2AA59AB9EED29C7C84B2F9035B74823A387792EE9B20DC596B79638F7E6514E43D6BBCFEA0F09F96CD6EAE16B97017A8989D1895DE530C2644B554F060CAB971834FFF6C7050E21F3C26C50C2D6DA415EF1ADF02A63F66EBC8EC5CEF4F02A7526F361E636A4FCC2ABF0847982708B734598DB8B3D0F78856C155ED1160EC23756DD8C2D61DC0ED24BA09E93D63495B2D303E3DCE1A2A57A89FF17E798D3BB8EF7C3D97B6D3E9D6D9D69A7B6696BD52274C185A1C20775717EBB35D1DD86E9DA6AE5624F395066D10586C961AC199106E23F88F3D5BBC9E1DD7CD9ED55B72883F8BB6B626CF0851F647F1726F7837101D0C50E630B18CA13F4C25D5EF78A43C20775AC7EFD70984F3FC861E1557882EE57B8C59C362887B1E721BCBA07746E7E901CDED5A6740F3F853B5C6CF6F5B367E9730A8542A150280E061B661EF1C4E05B336657A6D274DFAC191F99B9C69346EDB92CC7B0E17FD8DEDE57F807AD2D7A549E3BF07C0F13AF9F8FE7919B83E0763FBC6E3C15AF9BFF265E3795D7FF403CC1FA2D6DD31DD8E66CB5E94EA162FE4ED386DBE0FF811FCD5AAD66D64A0FCC9AEE8159C77FBBBA4635B3566C153ABABD0DF3B7E822BEBE5EA48D62673DB861E27EB8EC709B78B0383BB45D31DAFE7D3B47779D32DDCDE5E8DB7A9DF371DF4E733EEEE6F274D7E4F9C9D626E71DBF7D57AFF5E6D7E46FA352E07CF53C9BEF11E65BB32EFDD6AC79E5F981593FCAF7C8A794E3BE29EF23B306441C776CDBCBC74603E9E5BCEF51568497FA94F436DA5B1C067575B75CF3F28770D5D844685F923482FDE8D1009D81E47D50BC3F04C2787C74D393E761B909C6551B60C316CCAFF07ABFE8E3D5F081B262DC166EBFA9987795AAC7ABBFDE98876E5B65FEBADCF6F16ADEEFF09AEBC923B805AF6843DF365C8F576EF721BC223CBEC337C22D78455FF1F38A67A9FF278D7228AF4018AF8F4274C5881765457A83E2459D4A7ED167A59FEDB7CF297E7EDC9E2FD19796453F346BF4F00B877E743B7B14D5D922DDB5260DBFEB74DF71E9332B4B5F9E3A469FA76CFA221AA1DBC9A419A7DBF4D5E90BF470A13307FBFA469E9EACECECA77CE3B8DC17EF15EBF4E0FACD816D93E5965FAF962DD2BD1B97C9BD7886D6E63EF0DEDF2FBAF44DCBE57444C67D964CB35D923FBFF7E09FC8BCFBCEA4F15D2E435F5F73E89BFC223D34EF7FD872E99EBD42F56B57CD739BE73B5F5DBD468F90FFBCD3538E6FDADB74E7DDF7E9FFDE79CB8C29057AE86E71BC3C3F71F21CFE3B03849372A33E3166A13EF15EEA137D5AF2B75BFF903482FDED6FD10CD5A6E22C1FFABEF962794F9EFD61C0878C9DFE67FFF8BCB1DE3070778DEB8EA94FB7304DDFD84B7D3257F2EB2F2B78FD2AFDA1C7EB4631DFC7ED831BD758C609AFFE7A03AFF76EDCE0F05F65721EB70F575CC3CF171EAF0FAECDEFF0DAE549D201B7E0056DFDF3D7767845998457B405E115E1993FD3DE845BF95E7845DB6BAD54F6E435C893D4D3DF8E8C87F2FAE5F9796A2D5ED99D575FBCFE7E16D6E7143F1D1EB6207B92438797F11CE3F4A793292363A3FC7C37D799B740460AD775D3CE1FB55DFE06ED91E715984FC0FF8F6983F7CA06998E5DA37FEE72C769D19D8F3E1E3896CBDCDADB8B3069639E82B8EF1497792E8439D3FD5BABF4653CCA69FBE728F85DF2DB32F975AB4DFA6EB9C8B244F22A7211DF57AD243D79DCF6D6021BAD16E7A3025B51C8E96E3990C7CA1B6FD3E7730EDD7BF74F9CAF1FBBFB45901508FF70E13287E3F0CD32A727F3D90766AE83FA94399FD4E76EF614FE347AD6D3DD3977D89AA6FEDED49EEB1E7F18F021B2DEFF2CC0F8555970A8FACA2B7D73707F5C184B175E7C71E8FC32AFA69E85D77B57E6B85EF03D6420B8014FB2AE10DEFDBCBA373BBC226DE116BC562EE73C5ED12E8457E1497CE981DB4786A7DB4E9DBE5E2C7ABC4A1B9435A1C7AB090F5E253D70095ED157767835E5821FAA3D780DB673A927997307E7298F4C5DB8F9955DF511B7CB0D8F0F7F3F0BEB738A9F0E6893F7A7269EEADB474DB4B9FE31FD6ED5B4BB448A2AB1DDEDD8D0766E2F95BD7901DA28CBE790B1793739EC07E2C07CFD6F9349BAFDE7F366DE99DB73EDFCF7588AFE7E244A9513919EDFEEAFB6B9AF7F164D7AFDD2FFDDEDC23ACB2429C79376D3AC014E9A3EBB4E9FBF9A3061367BF4C0087FF772E72C15C23F58CAF4C519569F4FA36B1EF41E32EBF6E9537BCA617F98BDE6C328FF772D23F32EDC0895C3FEB878CE56B0FB64F15E3A73E6F5CA22F38AB504B8D98D5BE1F5D36838AF689F61BC6EFB7895B2DD99CFD067A9397AE2163D5EFD7A60A425BCF21A3F84D7474FC1EBC6005EC3DE23DD2FCCB8721BB6A37BC861E143E7C30A8542A15028140A85E27983FFFC43A15860FBF686BBDEEBFB24B07F20675861F3EEF769A3F5A9502814FB4761153E4F22144DA6E9CCD9B8778F5C766961C7F74976B2E71B9CF33F169FE5F393F045227E6CB43E150A8562FFC0DD71A32F1D213BF50E2D18997CD2C8E444CCC8E3F57FF6F83E09FA09C2DD7338DF1E497D428D4F52FBF2A7A05028148AFEF930E6BD4179EBF77D32683EECB4B678DE5CB0D35A9F0A8542F18CFAE13E5FD53EDF2783F4C3E2935CE5B042A15028140A8542A15028148A9F0215DF5D60F0EF9BEBFA80858EA2517178CF4EFCC3CADD5EFEEFC59F2CEEB691FBC6F0DE7F0F9DD6B342A1500CC6A5BF7C488FDD221D3B16A7A9774F52D1DDA28BEF4FB11D8593B6D98E0277D06C9930F8ADE5ECE88EF36B8F79DF0F7EC9F36B2D7E967717CDB778972F2C693D2B140AC52E987E3F459BF51CDFAB2BF3E175331F2EADAED19291A56E63D9CC87B7869E0F4B183BEFE899108542A11802D695054A4EC629F187DF7AEF1E1B8C1C7D93C65E1EA33331DC93FB58EB4AA15028140A8542A15028140A8542A150287E81C079B84AD7F73AEEE9B6BBF766F8C3D437B7E966C9617BB4826D53215F201B776FD4EBFC0DBEF7DB9AD985CEEFE5A2CD67EEB0178778DB8FDBDE993BB167C3B3DC699FEEDE1D2667FB102FEEB3C7B3ECE1713EAA8E171FDF778F7C74BFEFF10F57AB71DE111E670277EE56DFECF10F873A90E75CD1E573DAC17A9272204F7DE70D07DC172779879FBAB078B93EBB61506EA7BED913A674B3B4EF3391A8A75AC3653E0A658756AA353E0B897CCBB9C84A88AF7DA99F46F78E10F01AF4AF87BC827F3B5FE0BBE8A5DE2B8EE3F15F04F75DFE379B35AFDE106FA7AC36B51BB52EE739721B35EFDE7B494FF86FB51A5EFD086FE01FBC223EF08F7C20AF0853CEA5BD34B84EBB6D17FCA3DC3BF16CEFF0DF6A79FCA3DCB357AEF6F12465083B6B3A887FC429ED057F87C52B6750857FF02D61D016F6CB3FF6BD857FA7BCC3BFE44338963204DB9B3F5FB03BDDDAEAD8A5C2EF22F6E2A5CF725D1BCEC117BF373CAB2C7D46399C76BA3666DB1D3BB196D317A6686448F17AC776E15A6E8EAEBFF50E153E7A8BCEFFF932B5573BEFDF9FC953FE96CB71A0CD5B9138395D7BE0F3EFCF98BED0E96385BC436B0662A386FF970A797E868F8A9663D307B31FB03D5BB3D932EDC0A664CEF4F7D3FFDBC90BF2B1E5F2FB5BDF6F516129DF530ED8C9A10CF0FF8638917784973654CCA64C9BAF53DE846B7FBF466BAB0DCE83E40F7D4EFA7CB01E9CFC1ADBE205FB68D494B5602759BEF47F53E06F768FB75387B0F7738B3BF5FF8F623F17901FEC9BD4D46D30BDEC7587268E1FA795569B3EFD4791CB85BAF0E73BAC0CFCDE86BD778BFEF241CEF033431FFC65A62F0CE203FFEF5CC8D1D9772E30FF780F1F51C27FF39F8EC7BFA403FEA57C85EEFD70E018FCE07FE1FFEAD54B9C86F09F76FEE9F12FED12FC776C214BCC7FCBC9F7F89B4278843D77E982D776C1BFC87DE61F65E9F2DF6EF4F25F34F2536475907BE129286F857FFF7BA497BDB0D3268689177C0BFFAD01FCCB9813F41F00D979FCF884C7FFE3353FFF051FFF3B6508B637FF7BB13B45FF7256DB5475BEE07A9F8A4738FD5B6E835C53F778BFFDD855597A407218FD3B367EA4E3336D801C06D7877E7F948E8EBE48E98951CA2F194E1FAF719837CEE529F65A82F2974F731B4CC5E2B492CFF2183C3A7A88AC5884C74D91C3F01134159FA4C9F814956E55995FCB9AE23097E64B148D26693695A0786A8E46229364278EF7C8E1A4E96F57FFBA6CC683F39CC6C4CB51530E9336FAAFCF3F9CF443B42DA297A8387D8CE570C45AA0F4549CC774F83042FECAB9C1BE3120C7AD48EAA9E5F06E1C1C941CCE997E522D6569EDFB36BD972DB2CF26F4C39CE9EBE5EE3D85FE673FD6583E3E667EE6CF7F4423BFFB6D5F5FB7165699FFD1C3AFD2D93F253AFC77E5B0F0BFD95EF1F8C79823FCA36EFD72D89AB9CEFC5F9FB12861DA1FF85FBC32C5F529FC2F2C973CFE8372D8C95E64FE21873346EE837FD47332B3C4FC275F3FDC23878F9B762EFCA30E85FF66ABE9F13F685E27DC3B21BE5306C9611E17E7CAE456CB7B707F307218C8FCF93D8F7FD4ADF01F8D9DF138C7B3947318397CC68CAFF0BBE85C7B8FFB16D1AFCD3FA26C69917D32E23DC66F95A5CF06F84B9B8D1FEBF48DCBD7D9675AB07F8B5EA2EF1C87E92F53964567DF3844E9B3D69E6941068C47C6E87723D11EDF6D997293FB21643264649F7D9CE9FF76FA2C3F8B5E62E4A517C89A5BA491D1C3BCA6731B4D93EF756F8D2DFEE1645DDAA767C07D79FBF4D159AF3543E7B383F412D952B5DB77C3DB29C6B59D30DB43E9257693C3AC77C06FAB2E251229B2B225721632644D67CD3749FA703A6D9ED3FC1CCC57D17000B974C58A9B35CEC29E7521F23266C64E703F0CFF63460680FF9933B11E1977647C92F997B96A18FF2287C13F64D16226CEFCC34F36E270F95EB72DAF1ECEBD79B4472FF1ACFC83FB66AD1EFA5B18FFE0D54AA6A9949D1E1827F89F189DF0F81F462FB19B1CC63A44F82F6577F88F46C63DFEF12C6BD5417A09B13B9D888D513A7154E5A442A1502814FFE1C09CA49CB3B52E140A85E26794C3A95331AD0B85427120188B6628FAF218EB4B65BF62299364DB81C8A954E83D9FD86380CE28CC1E270CD07B25AD695A29F5EA105D23CF8A53EF76F6D04CDAD08D21EDA09E2F157D9D5EF9E3194A46631439324EF1649C2E7F38CDFB0A62BF7362C2A2E985659A1C4F84EA5DC3646934627139F0BD7F7F1F7A47EC05410F36999EF5ECCE4EA6E63C7B9EB72FDA3469F20BDD688F9E2C3E6BF2F972A89D9742A15084E16CDAA1FFFEAF236CC3003903D936973A49B19972E8FEF7A07D60D90B621F3C81BD20B1310AFA42F3EFB1226DECB921EDA01C86AD05F6DB619F26F616FE7D58C8CBD1C316C5E227D9F622B80F11766FF420BB22C8E74CC6E6F0D8178FC01EA46B1FFB8219B390DEE9D746686C2C122A8787DDF35628140AC1452387A7226F537DA5E0D94BC266516CCAC3E470AE1B665839FCF17C9E6D85F2376EF4BCF7FB582BD7D63D5FC4C17300B6C983D8F88B1C0EFA28DEAFBF35C8DBA5A9F93E39BCD2DEA6052BC276E841392CFEE1562A65B6A50F4BCF5D6F50BD65E2B955D5F6A55028863B4FE33B577410F63883EC9520D783B696E2C3B223EBB7F63EFBE53BCF761065CF99B207E5FE56375F3C7FF6E92B863E9F66F218369E28140A8542A150287E9910FDE9D3CCFD140A85427130C01953E86FF7A3CBD0BBEE150A85E2DF2B87079D85C43E567B254F45F80369AF68FD29140AC501ECD3C5A7D26C13368C1C765ADB9ECFB3303F6B0A8542A1D83FC2FC97ECE62BCFB22ED1B495DCB7CF1B8542A15028140A8542A15028148AE709726E2E3E9954DB3A8542F11F07D6F54E9C603F3A13270E53249A643F3AE944C4F335817365FBF5A123775A898F76DB69512491A6F97316FBAD90B3C29D7B09C6A95298F67CE8F0BD6CD536390B9D343399D3DE5D19C3EE0BAAAF1D8542F13CC17F771CEEDF82FF06F848F8ED1F12EC770CB2EC62DAA6FC5AABCF4FCF209F12328715392CF1CABD6E72F718DB5F74EF00427AE2CB0C3619EB4636234DDC1DB669E4AFFFBE31EF7C75B3456EA3FF7C75F09E2F8542A1F825CF87D95F0DEE3FCED99EBC1459E6F9FC19E043672F390CDF3CD025E05E2FCCB379AE5BAE75EE65EEFAB310392C3E74901EEEDE4518FF7DCDF8DBEFB341FC564EC26F65C06E437DED28148AE7D99658EE02FF29D22BB3BFA0F250BA8E50FD8791D7CD46FFBDAFEA6B47A15028140A8542A15028140AC530E8DC5DBF7F7B34F88717DDF47E7C27FF5CF13E95DE05E71C9F5267D3735EB27B9715F64CB5CD2914BF3C1C199F64BB08DC4794CC9569ECE528D976928E1C3B4689E81FE8D5A38777B549833D9A958C93532AB13D9A9D8C52E69315FAEB4C8CE6178AD4AC2CF6D8C039F54D9AC82CD066BD63FB50FCF426B55B2B6C3F873BE8603F6799F01FCF9CA253E6FF89232F93B390E238A3C7A3F4B1C95B22BD44EDD542CFBE20CA013F19D9D42465E60A645953E42CCE92355D60BB38DC2FE77F866D1CCA1D31E5387D66AA27BF7E3DB3D8F1C1FFC691098BC327DE3CDA490FB676A7DFA6E92B0B7CB75E293B4D5923C7FFC5DEF9BCB671EE6BFCFB17647FF667914D3729749552BC082EA19898905E9C88E05EA70893EA9E30A4260747517352CB2649756D427232BEC256912F839C0E5C064717CEA0E82C7CE4D08370B5E845E82C5AD0E9A6286473AF16DDF8BECF2BBD93D12F5B7692D6891FC2878CA59977DEF71DE9D13BEF7CDFE73B1F99D0CF2D718EDC92A5DB56F7EDA17F0710CB577493526AC053C9E9781FB17E673F3C255EA5268BF11959B46D3976ECF7D20CC592A03F926E55B70FFDD12839925CF664DB5BD5BA6E6208EB9B5E102FC8D86C427E3B4CEEB85B5FCEE87C71A984A7E31762A99464AECDCAE2ED6B7DD75504316999ACD4FFB9A574A7ACE3D1A037883BBBA434C052DA8B677EE118B80DAFA4D8103FB7DED2E195ACCE138AF8B92B37ED207EEEDAF4BFC81F2EC7E5492E2133565CEB5CB5569249A5AFB331ABE75922DAE1D59AF2D55773F2E787291D1F87383BE4A0437B5AB119A1EDB65F11C68AB927E58EFA86CB35717C8D6A599F03FB6F6E6DEAED91E9FB92BA7A416E7FB520134957AE4E8EE93EDC4AB73411DE74CFB69C56BC5F4827CD6FD9A09C1F26860465559CCE583D5F9DDF9A5F9188EAFF5AC5931CC6EF73F33D395B4DFBD01FF80DF1547F0373CD1043886B66E20587CDF94A0879BD3A8C9832C419D49B0D1D2BD6EFDE3C1C93562C955AE3C599299DCB4DC79A41BF378ABA4C07BAA734361C0367A7B2522AC2BFD8EE180F9BD834C4CF61DD47E6FEAC446FAF2A0D49C8EC830D59BF7B45C7AA21EFF3A265F5DCAF4FABE3CD18186D323A6CAB3AB8764C4A4E566D3F0EB6BD5A431695F63AF6B21A5BD63BEADBADC3E17360FFF2F613B9703525B71F66F439A0C39843A8566BB251AEC8D7B7D5D8B352D67EA2B80F4825A6875E8302CD373ADC6F3CACFB4CDD53ACDE3AAFAF45AB6F7BC7B3D061FCF6A13F706D74CCA0BADFB1D5F8D9C410E218132FF82AE63F0821078C5553FA9868C77835DAF3B5C3E48ADB2B1E6DD8F9D57EF3C3B837874660ECE964B3DAF30DF7F928776BB3A8DF0FE7BA0BE70C85C6EB6DBBF5B7EDB67CE3BAB78B4A2FB18D383D375FE85B5F930FCF8C9191B70E7FFBF9ACDAD70E7EB74C5918EF9B9C7BD8461CB4E72AFD4FA4868EA1C3394D2C5FBFF9618CA571DEDDCA0BEBF3CBC405124208218490C3EFFFC3FC4C8490B7695EC278BF639DB39D4A899D6EAF4DEE9A33C8A6D5FD793A1BCC21835AB5189455F40BAD7B7775BFDF7DFF6CD647A31CCC1DECB55EDA940BBDC57DBE29D7CC3FECC7FF871042DE86B8356B7953FBB321C62C3611D1CF7CA66253B27077563F93D2F3AFB942E0975675931DC723E66A53BD377DE35E10733577FE448F0E9B72FFFC604E978B67708BABDE4BF9B01142C8618E97C01838E9166552E970BD5993F746CFC99993EFCBE7174FF6E8F0D991133272FA631D0FA5E3099E6D89ABB453E477EA9F28BD5C95E8D849894C5DEAC9253A6B97E4C4E865F1172D999C7174AC857E76DF552F532EE2B4A0C388930B979BDD5897582C2A27C7A23D5A4F08216FEA7878BFF11218B746D4B8B5ECCE0F7D3E6BB9282327C7765DDB7590720921E428C6AD99B8AEEEF9DDDD30B15EBBC5521DA45C4208218410427E132F1AEDFFDBBBD6C0783DBCEEB835E6AD23841CB5B835AC71333165F02458BCF395FABF37EF05D6F46633E99ED719B74608212FE7F3A3BD0BD25B6D0F841D71B2F9BE6B6C07E9303C6A10FF70EFC674E051D32F9FA7F10FBAFDB5AFEB07BF08D47598BC758410F2A6EAF0B03E3F76DBB367B7E76C83FC25E05173FED6AAF662341E08BBC5AD85BD23E0E3B057DE3A4208390AF112259D576E774FF1B2D2E2F27685F112841042082184BCA134775A5E97618FCD61F6D7E3F85F29E735D95F7CCDEBF485A2F714E9991768C735600EA0B1D308E61FB636F3924AA5F5BC6AF8BE1F1EEB59F59AF6F069FBB99BF98AF03C8129D7F8F222C602DB0D6C873E835EBEACF66F3D3F432E1FEDF3EBA4F4B6F1E7C57BEB394FEABE17CC5798B95E536EB956EB385F3077512CEAFA609EB8E83AFAF87E7319389F29D7E4C130E736F121F0B337F1195927ABE7ABFD425E2ADB459949A4247DFD333D576D3B95BEB121C67318C72107879B8C061EEB9823F754DD4C7C07CE8D38139CBB9F5E87FB21DCEFA60FB13FE246D0CFFD7C86FB956BFAAA15A3E2E8FDBBF7C175D5E750D71D6D37E743FF9B6D5C639C0F6D68E5F14B05ED6E34AAC13C7E36EFEBF7F0BAFE5CB573FE35DA7DA2CF5FD9EE68D3A0BE457F843F87A67DE673643E93E6EFBAEADBE0B9835F50EDD93BBEA63B8627312886A7FD79410C0FCEB1570C4F6E3DD7B74DE4E880F802AC57862FC3D39A2F9726A2726A6C4AB6FC6539772E22B3D1319DA32CACC3C8A3060F1FE4883BFBF1D9563E87E5A4CE8F811C74D81F9F7993870EDF1F939F6E35970BFC78A033571672925BB8A2CB3E3E3E23C74424193DA9BF2FC859893C71FAB9DDA375ED4181EF1BEAEA2CC5F5EBFDF2DE857503E5C02F0879DAF24B33B2A88EEFE71974F6B3EBBADC95794B9C8AFA0D51E5181D1EBB1CD77F4387E16F34F1C1A8CCAF64B58EE61EADC95266596662D140875385BA8ED7E89EDB1EBF68E978E9792B2A2B7E4DECF865A9963664295F95056B4CEEC69292B41774FF181DC6B907E9B0E98770BF47E65DDD07D0C5B90739DDCF4F6B4ADF161DFDBD6F796C74E69EEBEE2BEDAD149F91F754FFA39FC239EDD037B84EC78F1D533ABCD6713EB30D1D46DE3BE4F2B3627764E29215E4C07B527024A63E6313A3AA0F5D5FC6CF44021D9E77CBEABD3171553F9B7C78D061532EFAE045DFF6D761D31FA67D38169F8BB00E23AFDF5AC10FCE01BFA98B937BFB42757B4F99FEE9D6E1316B39F09E42DCCF5EDE538FD69DBEF954C8D1019FFF6432A548C8D29A274B7767E56C7449EBC9E4D584FA5E7C2077ACA98EFD4F7D78567BF8242647F4EF3CC67939F599C3E7CFF8F1604C3932724AAC88FA5E796E9017C957DF2BE3C75353BA5F2B14A450A8E9EF98C98B54482F05716F264F9CC94F7721E1690D7066CFBDC8CFD9CEB764CED79D83037E4193A327F439067906618C833EC0EBD1A57C4B5BDADFDD93EFBFA7FBA1E0E7B5BF9197B82ACB9B75F59BA57E7FEEDD906CE9A9D6E1E8A90FA59A5F1AD8D79FCFA7251A4BC8ADF894AACF846C371AB2E1E565EB59537BD2B999A4D620F8202D4E9D947C212711A521FDE62EC2FD10EE77D41D7D909999D7318388314C5C7BA0B0F47BF8DE9B7EEBCE7B67FA0ADE4A1575FF30F6DE477DF7C1758A47549FABFA9BF3954AC5601BFD6FF22D21E728724B617BF5CE8C2CA9EBB89149E91C50D05DE8307E73C23A0C8D7C6722A9BDA0B62B7E47B983FA16FD21F26ED01FA67D38169F8B704C0EFA057E53E61CF0851A396DEDE90BD5ED3D15F44FF7D846FD0E18EF29E8F05EDE53DF385E4F7E4172B4D8567A198B4EE9FCC2E1DF7FFDBDF8FCB28E55DBED78FCCECF5896C43E39AD631F06CD77EA9888AEF72CF51D413EE5ACD2B4FC92D5F11EBEEBD6583CD061332F314CB9DD6BF6E01784EFE76EED88DFCFEA3E803E407B07ADBD6BE567DA3E505F633C6CC6DCE1D7311E86FEE41E5C5763E0CDCE3E5A5809F23DED1673D2DD076883190FF7CBEDD92F46C5F4D56EDE4AC3CE7F9A3CD0B995799D431BDBFA1E265476457DC6304E371A89BF31561E769E7DBF3138E637C43BE0BCECB0DE53F81DD88FF714E7254833346F19D61EE8703E9BDE333FAF190FF75B63318C970FF40565748F2B5A7929EDE0DEBE5F7EBAA1D653234F5B683E791079B463408CF2ABD261F453BFBA9879CA7A39DF130BA8FDF4F7D0E1DDAECD7E9E0599BE7AD93C75E1F9683347DA2F079ED9CFE8B0797EF5B23ABC57BD0E1A473E6C2C6530F73E6CBF576BC2DC8084104208218410420821841042082184104208218410420821841042082184BC7E8AED7564610F3178AB604D53D82BAB635D58DB4F6A27F0C5B2C54EA93252AD63E1C365D64699FC74C687255FF07B72CA618D52131E60A9171E66BC368490A302F2C325AD19B1973D795C2A4AC54B8BB759979D67159DDB0D9E13D7E76E761C732BE1C9CCD81FB4A70172CB3D55C7A46F2FEA6D1CEB7B8FB58F1BBC298C57433A9B09FC2B90DBCE83BE7B3569561CEDE155F312FA789C1FC7F3DA10428E920EDF573A9CDED810D7F35AE362ED49D00CC6BAD73F3BDB5787370A59716D5BFBA96DE6B37A3CDBF242C877F856C00BCD785256EBF5C063219C53CE8C875FF82CF0DA10428E06F03A83D717BCC6FA79ABC1FBA55B87472792DA83F7EAE407439F07F315C647E865BC7208218410420821841042082184FC3674E7A7B3FE1897A9684CFBC04F5E6CE5DF8A8E4F8B53A9EB5C73268F99794E877C9DE36351998F4CE8BC3126571DF2369E198F0679CC904B02793E50EE54FCBECEE5859C66C3F8655BCB9BBA7E1FFDEBE7323A1AD165222F5CA3E48875672DC8013A1E4D8AA55E5FEDCA8F410821875D87C3F9E9D299ACCEC585F73EBD9E96C8F969492F5C0D62214C1EB370EEB86CDA932D85D161E40A425E98E9442AC863667478313EAD7518B9BC52D3173A639F91FBA01D8B1CCE57011D46FD464E7FACF30AA34C683DCEADEB6B9E51AA3AD4DAFFF3DA1242DE241DC6DA8E542A21AE9D927B0F1FE87CBE587BF1E5FDB4A4D47BC809637418716C88B9801E82929355BA9791AF6F7B7A0C6CE2D630CE353AECAD2E76E45BC27A92883527E9AFAE0DA5C3D81FF5C3F9321BC5408711AF81FA22A619F585FE9654DD1EDEB7796D09216FF67A3CA597BE9312D7C90EB77F5B3BC3B9EFC2EBEFFAE50F83B616DDFDE71637B9D18CD6E3FCD068D417EB0287C95D47082184104208218490C383597F9CB5131DDE3C2D5FA044E001143E2695CDEBB95E7DBCED4A0AFB34EBEC4F42083900FF9E496B6FA0D286DDE1CD035FA054A1DEE30BA475B8EDED83EDB0E70F218490FD333B9F969177CF48B35E90F18B965C9A1813EFDE0D8925333ACE37F6C9E9813A8C1887C8F81929AFC5D99784107240A0BDF006EAF6FF01D1A57CDFD7CF4D2DCAE2D4B9567CEFC28A2462D18E5833420821841042082184104208216F1F837C77FCF515ED1164D6D6C177676A6C6268DF1DACB17E676452DE3FFE8ED87E45724B96584B3929E46C99181B977C7656AFA936DBBC168490A3ACC3FD7C776EDF5D0E3C82F4DAE5B6FF4FB7EF8EC94BDACAD7D45976F24F37C4CF2DC9D63FEBDA3308794510133711F95C5C3BA6F7096F1342C8516490EF4E7ABDA03D82E0BB13F661EBF6DDD94D87AD8565B167A664EB59A3AF0E57CB958E6D5E0F42C851A7DB7707EBF1A0D18D6A39D0DB83F8EEC0BFC773B392753DF5BF1BACEB0B6FD3CF871042082184104208218410425ECDBAE6AB931F48CC7665F48309FD1C6CD12DCAB163BF97B9F327C4ADB69E9B75FBBD1342087979C27E6BC8EF060F9F9D9D9AE4E07B3937AFFD2D135E4DC74550870921E435E8F07C5AEE2B1DDE7C92EBD061130B013F6293E7C8C445B0DF0821E4D5617CE031EEB5DD22B596104208218410420821877A5D73369D95541AF319A98E1C76660D1D9EE599ED723E3BF41A3A5FEDEBE60BC1BAB9F03A3D536EA9B123EBB9966705F2E4993915E40631DBA954AB1C3B61AB7DB27A0DB6EBA4F49A6BEC63F2E9E5D673AA4C7FE8B687CBB5551DEDF6BA3ED4DD9C1BFBA18E75BFD357A35CFF459DB7A8EAF13769547FE878CF2B3506D663D0FA6DF449EBDC95D6DA43D5465C17F421EA572D16F97925E42DE575F9AD6537EBE22DC725B9A6747839A9CB894ECD48B9529019CB0ACA759466398FD6031D36FE6BD69DB5400B272F5A32BBBC21D1F169393E3E25C78F1D9364F4A4D6E1B1F133928A4D681D7EB4EE48BDE00CDDF6E9E956FDAC0B96D661D4CF598ACBDC835C870EA38E3BF542C7B14EE51739265FA87AFC87D2E1EF3BDED3BA3DA01E5EBAF777CC78D31552B117DE74931765FE665CF721EA57756D7E5E09798B75F875F9ADBD3F79432E8F9E909A1A038BBCABF5D3E8F0C4444C8F191DA722CE4A36F0B7F074393549675EE8D5A7D7D312393F2DE985AB7A9F78644A0AE925ED9B3932724AACC898F622FAC6F1A4E274D60FFB983891EE3CD5B657D3F52BD9B37221E1E9FA39B3E7B40EA37E8BF1E996E6AA3AEE343BC7B1AD98936F553DFEA6FEFEDF8EF710A7D25D8FF0EF4CBF9C53F0A62B6F57026FBA54625A7B22A10F513F3E6B25E4689074AB5A87C3E3D688D2E49A970AC6C399646C281D86FE7D7276420AF776CF391A9E9780B6558B25AD39D0429CFBDAA7A724716DB831F87EE725E26BC556FDD4587AAF3A625E02F5FBE8DC7F8B379757C73CEFD0E4F0EB079997406C0BE625B29B180FC7D5D8FFA2BE8F401FEE553F42C8DBC3ABF45B830E439BF7CA370A0DAB94AB3D3A8C395A9CDB7730173CDC9C74B55ADBD7B811DA374C3E54D4ABAEEA88FF6DFB7FA49CFFAE4787C3AF57AB8D038F5F8D379D9D48E979F57EF7198410420821841042C861E5CCA4A5E778AF7F76B6FD5C684AC71FE01EDCC403847D7EEAF5AADAC76A3D3F52DBE36722DA27A8FB9956B82CC4322096623FB10C2FE2BD9A12B362E2669243B7E9F8F85F54B9733A3661600C9AAADFE6B2255EA526E7CF47C44D4625F7684D9632CB928845E5D487A724BF14EDFBDC6CB7F80CA752976322BA4D7E614DB749C7EE75CDD92633AE3E7618BF0EC447CCBB3FA97EFE4FD5CF3FEFBAEF1F671C69362BB2BC590FDAB49C5BD6D70FE77B865816555FFFE9B634B6E9A54FC86120934DCBB3ADB46C6E6DB6E3A4B6027F09A3C3DD3E3FD8C7C453653369A979E9013157ADB2BEF8D382D4375BFB7F399F96F4938AA4B319ADF596D26AAF3DA7F9C597F352F77BE3ADF03B104B6624EBBCC8C7B1DB3CADEDFEA0CAFD2F55EEE06770BED277685344B5F1C9534F2AAA0DBEF75812996F74DCC1F5B99BBA5FFAC791B5DA645E0BB7C9C45B98380EB4A97BEE187D6B9E5F9AB8E7BDE6C6B79EEDA87EFEFBDE31CE6D7F10EC1F6E13AE9FD17D5C334FE9F4CE33E69622E430309D48C9A2FA8E96B79FF4E830E2D2CABED3E3F3637418E334331EEE1ED7E178AC27C0FEF71E3ED0B9EBFC425EBEBC9F565A91D26344EC63F407FA85F301C494859FDF212E0E716446B3FAE970B9FC5CB6FCEFD5EB3FA9727F56E5E299DA0F1DAF77B7FDFCAD5559BD755EF2ED7518F5725EB5B5A9DB8AFB836E1D467D5BCF1D5B6DC258BDBB4DA6AFC26D72ED44479BCC33BFB507B3922FF8037538A87B683CDCACFF14BCDEDD9E329E55CE3C904A79431EF9DB6AFF48479B50F766FB796AEB795E93DF01420E91CF8FD145A39DBBDD239B7574988B68C54CD83D3A033D2A15AB412C03CEB39F5886FDC76EFC2C8EFD6D2B066188D7A191F680780EBCD76FCEE065E3330EDA26C45498F8E35AF5878ED7BB6327F47AC1761ED7EE6B420821841042082184D0E7E768FAFC14CBCF55FBBE53C77CAB8EF99E3E3F8410FAFCFCCA3E3FD9CDE7AA5DBE3A362F55F7AFF4F92184D0E7E757F6F969B5CF57C7FAF4F92184D0E7E737F0F9A9D69FABF63D0A621FE8F34308A1CFCFAFEBF3031D464C337D7E0821841042082184104208218785B7D16F6D7ADA97E4DA3F748C58776C42B87E6F8ADF9AF6D898FD4EEDBFF73345FAAD11F2E6FAFC98E744C6E7271C97051D16F99DFA27FAB9FEB03E3FD658FC454C593BA66DD898B27059B34AFF62316B78BF35EF67B93CFAA01D2336F859DA89D1CB32397A4296FD2DB9A4DAE0DDBB21EEF653A5C396C43E39DDD7E767AF3839E3F3D36A5343B729ECF363FCD6AC584CBF36ACDF9A9DFE5195F378EFB52621BFB54B1391A04DB87E8B5327950EFB5A87A755BFEF346BFC0E10728874F86DF25B2BD47E91F5BB9E1AEF7DFF56F8AD8575B85A86DFDA4FF45B23E42DE26DF45B83FF303C2FBB5FEFBED77F53FCD610F38636251245D5A7DFABD77FA4DF1A218410420821849023C9EBF25B335E68DDC7E73D2FF06173E09D967871CF8DF885D43ECED13327637F1FAC712384903785F4D63359F9B72B72E5A6ADF4B095DBCEAB35E5DA152BC841D7E1F3B3E20CEDF3639EFFA50BF5A02C3CF7F717BFD0F9DFAA4F3D7D2C72DAE9980555977EF9ECF00C2CF0EA19D08E421D1E677F1767EBFF64A7FE0F5E5B42C81B351E36CF81321BC5C06F2DBD5ED0311118D762AC6A74F8E17D7B281DD69E0BED67FAD06153D6E3525166A397753C42A359D7CF04CDB1D05B138F306CFD3DFF471D6B001D46DECD74E1B9D661BCDE2FA68210420E33AFD26F6DA71D5F817804E8AF290BDE6928EF55D4D7F89C5D39F7B5D49F3D57BF1F7F9559EBB1D2F7E71DFE67BCB6841042082184104208218490A3805F6FCAB9A945ED1B912AD465EC72BC270E0CF3B5F0EC81C7CDE6D66690876E39E7496EB1E571733311D7FE36F0A468545D89CCBB2F3C6E763ABD72B4674F972FD06EEBF762962F71EB2FBBCEDD9EFDF094F6EC99BE714FC6CF8C691F1B78DC4CC5EFCBD8D48CF6ED099FB35F9BB086CEB4099E3D553729C7FF9FBDEBFB6DE2DAD6EB2FE87B1FEEDB79382FBC80C4C3552AC4030AAA906F229453394428E79AD68A52DF56A3E04B4F70E772C07615C0B58592767CAD24C8B95821B54447892BD54A9D4AC146502BF14390353C10C9CD4B64C40B270FBCE4ACB5267B32FE112750D27B284BE813E3C9CCDE7BED1FDFECD9B3F6B77A838E1611D9443A44CD36D1FE3BD22252F1E90E6293AEDF87C5D9471D6DAAE07599E017ACD9A3B47948B3E702DA44F54F9A3D6E3D1FD1ED1108DE4E506C34A50DE309CDC0007267B336187DDF22CD1ED2B8499996A3D9433E6503A7FE83356EEAB545F66520DD1EDAF7EB4FE41C8D9B664E67CD9E51ADE3373BC7BFC1DA8667A5479022FF32EBF19ED78D1A45D6EC319143958E0D69DC0422D370C21B60DD9E57B189347B28D6A75B8B886C221D22B74D9C4EC0C07307D7EDE1678B3F07892FEFA16DAB1DDBC6D4635CA68BD114DB449A3D47BC11D65C22CD1EE261A55124BA3D02C11F9B87DF944FD9F5A99C1383B3A32F7107FFB2761A37142399347B6AC58CA363431A37C4A3341F26DD9EFD6C22CD1E6593D2AA746B11ED65939A0F936E4F271E56BE71C4AB64D3EC5C05F37DB2A716D1EC7209A6B16E49B3E762F416A7499A3DB60E88CE9A3D6E8D22D1ED1108DE4E109FD25A01ED61A3791AEF97EBE053C6BE673B71E8B219F350B46454FC36A565134B5BC87D8596F3CD7B3794165ABB7D1DEDD60C9A6DB2357B0ED72615938EF6F2D5AB4FF96F7B6911290D269BFB63D25F05028140201008DED1F9FA7E7B94050281E06D06ADE9AAF8F66ABD96D61C0CD2644F19FC4EECF633F8AD3A3FA4CB537B56E3740CC368ABD3636B1AEFA61B892D425CFBC2D98F47F7A8B55BE1688140F0B6633A6D6BF55CBD166CF8661740FE1D1D4B437CEC12FE7EE65CFF5B757EB4E8240CF88270EBCB2198452ED6C3D196B55BDB47C24E97F6349BB37719DBF522C723AAFD5A825AB90CC73F1A7262C4495B0A0482B79D87690E1CC91660F084176A5B161CEFEE830F4EF5C2C5F35D0DDFE1B5E4329C3D79144E7EF8179E2B2B9D9FB11B49C7F7AB818753665BFFB27C5C83C16006F4A0AF653E4B3CACD22D160B608C0E83313F0F4644034F4F2FDF43F364E5BF4571D7A42D0502C1DB8A9E5E3F73DE78E8027FD3AF94AB07F67F7A1D9D1F2D59E0D8A334B73D48BACDD795572A2D7E75028140201008040281E070B1B5E3CFABF677FCD16DA5FD21AFA2EBFC2ABEEAF25D5520101C64CF45AD5C6DE1265F38CDEBDAEF0A0F6B7E9F636BB56ABD311EA6F5FE3751CE17888D952A3C499BB059C8C346A50C16967B35956E585B7B49A8D761A3867F4B2FE2B559785AAD43C1C81E58E7A413287DCA77B329F637956FB36AA7FF305B80A7F2FC7927B08CFD7CF4FC69A8AFA45923E682D70FA73C3E28E593D0D73700A37E0F4C5CD62060CC40F7092F6B2204B02FAA63F26508FAFC2DFE0759ECB3DE13DD388F8934A41B1A0BB1C60C6BEACCCFF0BDCA6F2D53D902BF1EE7B4DC7990DE8316D0E19B48C0D1AE218D9AC635E4650879FF0A67FEF3228C0E07DAEA0A75D2E049E4CA101DF0F2BE62B289BEF7CD4E849D75675F5087FCDD495ECFE674E7F3A007FCE0EDEEE674698F34694B5059A88C747D54F3C364DE0223340CD5E2BC5D27478EF1F5DE9108D78776F63414AA35C756F7BE3CA52B944B8F36E80A515D0D9EB76D226DA13FF7FA5A6C72F33EF198D234CA258250B5AA701CD30DF71FE5BDD96EBF16B27532AAB186936A0BCA8FF49C744CB7502C72DB50DB4627D34E7B24A693AC8F7496E24FED7C7B9DBB9B69E96F5496E5A4C6DA4A71C370CAD1BCD64FDF20A80EEBC50C14EBDB101FFC98F73DC64C0BFB820F6ACB26D727F59F83CE9515F72D4543706FE80B58BAF905FC727B0E5ED62AF01CFBE852788239766DA50EF9E814D7E1BAB505EB0F1EC07AA9E2F034FDBEE309C16A7018EE0C8420877D62C1EB8547D83F399DC93C14B08FAC2F176015FBD55C7F3F727F01E67C613E7EE16A6377BA04E2FAA5DBD88FEA15D8C4765AFFA9281A20EF009E213C673F05FF05E404E4DBC48D5138EB4FF0581A1CD121E03D01D7351F58D857947F9AF291A0E3CB13B3CC4D317DA84583E2DFFFAD0752631F23C7559D7493E61C6BCC90FECCB255E17B49CB611BF980347194DE9A3B0FD20AA3EF6F3742171AF4789A7958F9645CFA64A8ADAE50270D1E2A6F69C74F837898F2233E72FB6190960495D7EB0D200FCF4200793836748ECB9EC9D0B7C00ADF4FFA3A7E7C6E5C0DF960B0DB0B2B38AF9A3473D0D7ED81F0EC4FD075A61F4EF707E1E87B0066B87FC747DAAEDB76BA421C57CFA52B44F8F8728A6D226DA17636B9F9BCEEF239216EA1E7A2E7F81947B3C3AD251489C4F83C71B5A37D87F710BF535F58CCE7B06D7260EA238EA61BB547BAF88079989E2DD55C8239F3BB8CD9F6BDE168F7B0E3FBE294A3C9F765488F39BE2FDA687AD7F7458B38BE2FC4C300EFB7F57DD944EE7ED166AF39CD37EFF92230EDE9873BA74E43E51B037975C1E1BAFBD3F3F0F8EE043C5F341DEE7E5CACC18FE11014A7AFC3E3E9717882BF376B16DCC3722D0D7F60F327F27B11C7CF06D6E12F4D7E978F17ECB49ED4768FEFD35A0BF9B123EEE1D82BE0B345CD7D898B8BE3412C67087ED403B0E0F30957BD033C9C1A8BC362A584E3F72C644D9C4FD1BB178E3D1A0BC4413416DD7EC2A4BD409A31DB4A3326966E194B747DD0F31964CC2948E2BC47A59B5B2E399A365BC8ED4A0F81C6959B87DD79288D9A15DA37E2D2E371E7E78E81373631D35657A89306CF7CB902B7C74C58C1F754951FED5371F330EF3BD929AF6595794F4AEAE6259B875DF361E261F277BEF2E590AD0B843CEC1F471EEBFE336B8676F9E210F2F535D8B1170FD3FD54076E5D21E2D86BE329B689EAAA9D4DCD7A174AD348A54B7B719A7998F491921AB67765A58587691E4B76130F1BC8C35437AAED39EFAD2D6E03B5BF87CADC6E3E4CE8BF3AC5F35C7B4F8DD19187A91C6413CDC3690F8F9B87951DD542AB76E7634C63DD08B4E5E13B174270A7AB07E7B143B074C380A5AFFE0E4F6726ECF92972E0EAB76178595974EED9404EFF875582EF635350BC3A84EF14597881EF8F6BF81C7A74ED63D8C0365DC2F9C86A3C81E9D7E17EA68873EC32588B79FEFFF1BCCDBDC4D1EAF805E755451E361C1E566D41E9FD8075BAD07F1E7E0C06F9EFC255EFC61E60C585EEB9512E9DE27752A57BA378F120BE6A4A438CF03A1A38AFEA0FD7B2E7EF15758514BFB6ACAFECECBF53B6BBFF467554C8661C4E50EBC39496E1F0D1EE1A27FD56C7B62ED296A3BDD62E7DA52BA4CE2B5DA17A159F1599F481EB82D377348DF6FFAED8CCCFEDD7C257F6CFB7CDFA70275B1BEBDCD8F7BA4EA0F5818D9CD9F66FB45650C06795353F0D4BB7E660B3643AF9D03CFAC94C82D705DCF72CE01C62C9DB0D1B2B5958BB1D8775CB82B5DC22CF618953D7B0CC0F5DE52D603D5AD856EBC532CF79E93A5AEF55C72A2FFAFD73380A4BE1AFF958D5FBA3F902E44783782E083FC774E12A814020100804028140201008040281402010080402814020100804028140201008040281402010080402814020100804028140201008040281402010080402814020100804028140F02F0F8A79938D0E38BAC6028140F0AEE3B0E2D335C78BA378421CF3EDA732C7D7A1B841C9D984139F8EF4AFCF0F6A6026358EB9E6D6FF56B1D5544CB3F7DEFB53DB98662A8EDCEC5DBB4C949F595A768E39CE5A3A075E4F2FC77CA3784B9437E99EBBE3D6513954ECB7D7D521170804828342C5A78B05917B7FADC103330563A912C742A3781696A943F84A0CACED674EEC1E778CA4B1F8183C2BA538968E3B5D8A3939F95F9FC3E7570CB8FAF17F73DC498A09F4CDB71928227F9B561DCE7D728EB953C509BDAAC76005F931959E6EE474E47A8A3374EBCB2198A5D83BE1680BEF532C1D2A87696DC1A5D1CB7C4C6550E5A363FA9FAFE5D8BC161CFF68C889C141F12A347CFE986833952355B25ACA2110080487C5C387119FCE1D2F6EFC7AD2E1E178E80A9F8B51BC24CCC31DFF269632F96F1C13CD95968AADB61BD34C6F1BD34CC591ABD777E3EAD4B7EB2D3176140FBBE3D0B963BC7139F07C7339040281E0307058F1E99AA1E249BE4E197763ABED17D34C3F50ECB3FDD2120804028140201008DE35B8D725A43E0402C1EFBD2E9135ECD8F6B4DE406BA9F47E5F5ACE412C9672D66B7523CBE7E95AF7B18A71DEFCDD8CD687D3A934C410E97406AF89D9EBBAF945C8637AD9DC222CE6B2CE79B5464B69D1DA2FAD519B595ACB88ED59F642A1C065AB3DAB816164381D5AD7A5B56DE79A6ADD5977211B1BD6816376390CCC335B28C2096F00F49141E9170281E00FE7B7960805C1EBD1D85FCC985D64DF34F20B0B8546400FF899FFAAD908FB91515AC4C31E7F028E769D86E88067CFB2930FDA32A6453E6D71CCE338969B7CDAB62CB381873D3DBDE00BF8C032635C5EF69F9B0837F8A7052231E1618140F0FFEAB7E6BFE0030DF936716314CE220792DFDAE088CEBEBED735E4B0ED2DC75F22922DC020F2301D5F9E9865DFE0983ED4C2C3674F1E85931FFE85F9CF4C95D84FC1C8D7C0EFE98201DF0548CFDF8500F27097C70FDBC89D47BC1100781FE23EFC7B6806FA868621A979F72C3BCDDF8F760FC360F751A8E09CD873FC0CE8415FC3F746F6A19B4EB33DCA07CEEF0BC26454C3B2695C8ED45723E0C3670095C3DF7552FA854020F8DDE7C39E53A779BE58CB4F36F84B442F0E3B3EB76EEE7D557F094A4BCD879B3992FE469CBDED9AC31E14D5FA369CECF24066B46FEFB50B9C0F0FE07CB89C8D4A7B0B048277D66F8DD252EBC0ED7898D6929BCF1F948795FF6F271E165F60814020100804028140201008040281402010080402814020100804028140201008040281402010080402412728DDA5F478E4B5F6B908DE2CB2854D6C8F87D81E4BAFDD9EF6FEA7DD73144761B0C703F9B8F687EAABD5720D3A697C6F217CE1B46DB74B97EBCDB759157CFE805DAE7FF1FD7487A1B75670E9B2AB9818F4BB562B3BC7B9C57C83161AEDD9A363D2432B546B9C0F69FE288DF7963C76B4D4E81A77D98D94ADD946B19AAC6AC1394F7B03690F9E4AABD90E2AEB4A21CB9AF5746F7E31D7B27F4FDDABF223DD36755EE9CBAB3D7CA41767E83148E7F2F83BC6DA6EAABC6A7F22DDE3BEBF5CABF1BDD94C6CB7EC238350B74C478BAE9993DD7690F611D7216BDC192DFA73EDC7CF432C4B01CBBB86C7A4B9BF86E75FF0F942F621E6B789E95A985601D37A8EF6BDE0EBCBB5E77C9EEED9AA6DECBDA711C72469EC91AE5D269D76EA5095958EA91FD26FEA6FC562A161FF66A7FD942A6FC591B5F253BCF7A96307955537D6B00FAF623B6C609AF7F17F0BCBB38AEDF1C4BECEDAE47BC8A66AFD059FA3E36DAC0365773673DFC9431FF9CE39A6FA89C556393D037FD33D7B95B788E5BD3B6B727DB8F7B00E87B06F44FC4E7B505FA4F3EEF1A01B69A78DDBD5ADD22FCC66336015CD96F36E5D43F7FDD43F48AF90F6B41A86D176EFA95BB350F5491EA3AE3C8A346E76FA2A691418990AC7E069AE031A5B6A0C2CD6B66DBB77FA33D95DC89ACE78A03CD2995DBB8923DC695199C9D6CA4AB5619C19E974439C9D76FA5D4AABD1B6DBD66A64BB9BC64A33471C160F1F567C3A152F2E53D96A8843776B2E6F5F8FE38EEA9FD231759B5F496B2718F043EAF2A7766CB9AF6D4D08771C39771E548EA0E733282F4F41E9D9B653F6D2931254F0D85CAE416AA1D0901FA5ABB42CE87E3B6F0B82D7AE7259AF5E0B427ADABE376F2EB4D4976748E7BA4AFD54E174C97E0BFFA73E984984308F22A44C0B6ABF623996CBE0BDFA2D7C361C82D8355F831DD4A6A43744F7284EA7E3AA55E46B284E9E6EE66CFE1DF91BF65F3B4615DDDB1CEB5AE55759B1CF939E12D5FFDF4674ECEB75D659DAABFDA9DE2CF311C4BE2D625E8F995B32097C3E4E3FC2FCFE0FF3BBCF3C972AFD036AF9873C46E68B4F21A02D411DF999F828716561DF7DED412D046632C2F5439A4F54E77659ED63DEA3BE1323B0BE13B38AEA87AEEF94B66728CF1C3B16FF19DBE311FFAF3892EC48999B909AFE05DB62838FBD578BD81E79EC9373D81EF798736B3B3CEEF7FD8836ADF3BD74BC8DC78AD3CD18D649EC67BB8E467EE07B55FD24679FA07D79B4AFF33C3983DC94994CEFD4798A79E8F67818F293515859A93007F8235938D5D30B117F6FC378708FB9E6F6CBC7FF87FB63E6BB59E83F730ACE1DA3B8BA153BD663C9E2BE43FD2860145B745C0E12FB91FBD8749AFBD8D8EDBC13EF713A9D6AC983FA2AE541E3AD5DDC1B1A5B64F7D7376270633CC97613A8FDC9EE9E53A721319B74EC661E6A6337A1FFDAA46D6BFC8B8671E61E5B542EB29BCBE5BA9762B491B623D96D554C088727F61D5B34D60F93870F233E9D9B871F98BA13236E8BE6C63BCFC4661EA667133DB76BE5DCEEBC2E46CFA195B63A128A8733E61424F159AECA9E5B2E39F76E6D6F35E4E74F60DA012FDBE48EB7D43C1FB6358A736DFB23F13C713ED944F7ABF97E399FE13C3C5A9275DFA84EFACE0D817F6C0A867A8EB6C4C3E3770DBC47F1301FEFC4D6A379B6D2E5C8D01C7167BED1AE6F535F517A722AEE13D5FFA59BA93DE7C3667E1DF3D8C039CD739C7F3EE5791DF12A715039BFEA1CD39C92E678C447B1D87DEC8F4F717E459C86F7FFBA8EBF37A088796DD52C28635AA5FC5ADB7E363A310FF515B3817BEDFA301CCD12A50DAD8EA97E9AE7FECD7910C7A6F199A1B897CAAB8EC90E8FF6103C3D77EC792BF270DFB97BD81E8FB0FD0A7C1DCD7B69EE4FC7649FB29B8EB7779E336A9E4DF3691DE7D39918CD8DD79DFC16AD9768DF63B46F8DCBA7EAB685878B75C8CCDD65EE0C780798FF6692D777DE89EA90C8CC40A0FB18D48B0674F9E210F2F5611EA3DC0F3BF1F0A87F98E781699C4B52BFA179AA41312077E240D27C97FAD180166EE1E183C47E54FD9EFA98EAABD48F0BE54A4B1ED4573BE9BD5C8CA6D8EE2BC87FD4F664F762BE0047BC21B69BF8F1833F1D73ECDE76E93CB6E8D2605EB6AD696CD7BE8671A6C6961D27D32E57F3B8E9BF3AC5762B9BDABD6B368FADB74D6FCDD889634FCFA57A35BBE77B25A569EA23AFB7F683EF4BDE13DDE00D0478DE7ED0751855D76447ADBC7260BD222A2F69196B58578A53DAE681E522EEA33A0C0CF6E1F8B7E0C333FD87B60E46BCCF7A72983ED9542D14B1BDAAD87EC13DD722CEF4FD006638C7EB0CAF9217D93431B3019A7F0EC7DE739CBB58581F34A7B46034F6043EEFBBDD9226D5DB5FCF7A9DF2699E90D38F8ADCB7EB075E8374E761B7C71D988AE63AB4C50B28AFD89CE88B5BD81E77988FF3F17BAF6CFB5E08CD3C45FBE6383D2A9F53B77BAC4BA4F15D2BE0B5C786FBDDDD139A0123D0CDEF00CCC39E23D83F675AC65FC3FC12D3EAF4BEE36EB776BA865AB260EB157678EF78939A85BDE7354777D63D26DF7FFF08978178F87DFCA7EC561CD16E3EECB6ED55C799D26ADCF77DCB35B6E41B8940201008DEE4F7CB76EB306F1BEC3514BDEDB793C3C6263ECBEFEFF3FD4D201008F602BD2F67A303C2C3BF9187EFF51F7C9DE339BEB7AD62795F629D6FD6B760D3B2607DB9DCB01EF310DF7B1FEEE39F2010080E6F7DF830E2D3D1DA2D9D679E2A169D63F34195632DF9033AE4E793E0E9EDE1EF66C4292AAD9B37C3A00D9EE7F87683E73FE475768AE5914B8FF23764F243F176773770C64162D5117A0635F0F88270F9D3B30DC7F49D3A87F7935F5D4FAF1F269219B81EB8CE7E6414F78962DA0D8D8CC1B7D16118C632E4E3BE86F5A95E8FDF89F54CDF0E342C6FB59074D2A5E78E3BBF83F2ED82DF07AB895178F253DE397E5EC9C377233A2C607D2E0534C8CF6461C1EB010BDB60693C0DB9A00EDF6BD7213FA441EEE657B01A9940EEADC2FD441CF2A151C85FBB0695F1B0C3C32F99A79731BD18AC4534191702C1EF8CC38A4F473C0CBCE20E30B338EB1C8712E31C9FCE1F084071310D274F9E026DC0C3BE818A87FFFEA506A74E9FE5F876FAE0495ECB203F2ECA4FC5918B0D9D6BF98673905875E403A27C0EDCC7B4C64FDFDFA6A21A9F8FA34D2BE694F36D9FBE575FFA24063D7D7DC8A7832DDF05D329B3E1BBC3787090BF4F36A7DBCEDFA11DFFBEC0FAA079ECF5231E98C68AABC403CEF13A3EFFFEB767140A7A0072033E585BA9C0F4B16370FBA31E789498E0F3DF5FD2F19A21B8D3D7058F8DAFD88647B74D786C3E80757301FED9DEF9BCB6716D71FCFC05DDBFFFA09B6C52C8CA217861544A1136212FA8360FB7722A4CAA173338C28DAB28AD1BDB38CE6053EC5AAAF00FC6EF0D4A3A1006478BA88ABC70E447FA84A3458AD05BB4A0661314BA295EBC8DDF3D47BE9319D94E9C36695F9C2FE543AEA4D19C9991FAD5F59D73CEF741618B1E6FBA722CB7D5EFEA7FE6C7D47C593DD768D2433B23F1F1FF07007F9C0EBF8ABC357F7E8BCEEBE231FBD3EB5C971AD72CECE6D7684F7BDE4EE79D73FEB29336BD5C2C8EC7EB019C7F93BD3EB2379F706CA99583E3ABE9D84F87ED74862A5B770363CE4FE17C34CE6FE4BC485BE9AFFD559A6CF53CDFD3E6FBB8C6D0182DCF8D4A7E8C5F87B976C8CA2ED356B522F3DE25778BA63E57F3CEDC6C60BFFE78CFFA4C7EA8EF88D6F2F9F27AC1C3744A74D13F2E718D8B3ABF07EA1AFDA87EF3EEA7D3744FF1585D537EFEA1FA1C799B7BEADA3EDEBD76EB990D5ABF3649EBF32BF44366917EDA2C29EDADCA76F94B97E88EFAED59E7F72E4E408701F883EBE95EB53FDDCBA899E45C2C3D8F642D2E39F69E3C94E779D5E97A1E5D33E41FF3F9F198EB8358C3FDF53B3A9F58FBE8F135F3D71CE9FA287DFFD1345B35469C1F99769C7DE33D6F3DF751DE7DE9F7E178BF37070CBAD9FD2EDDCFCC50F586433FDC6ECDE3EFAD16A99448D21DD661A947411D35000000000072160000E0F5EDF3A3F7C57F8737B71BDEFA70BE52F57AF0703F17DE8FAEBDD53D06FCFBF21F93E3A45BF587E5B2B067CD61F7B8FCFD83AA5B25AFC709FFADAD7B96489F1FD3A25ABD46B6533AF41A00BF47D774721F1FAEADDCDC68C5D075911CA355175DF27E2BF6AB1505008057D9E727C5F7B7AA76ABE6703A2763EE35612DA7BC1E3C8D9FABD25F837B8BF0BA2AF70EC95ACB7B8E91EF9BB9F56DC967E371E7E01C99C3C17C896C51ED6FC3DAD397A459AB48CE03F7BEE1E7AF7C3119B867376AC4E57EDA7E7A6E99A93DF593BDBDFDD4DFDB4BC57A439DB7DD3ADEBA1BE85DB3B292255B9D8BFDED4DAFEFCEB3EA320100D0E15791B7C63AAC6BD9752E31D7954F2ECED240244C837D51AA3EA907F2CBB8070FE713B7DFC762BDE4FCDDA56B091A5BC85264689AB20B6307F6E3F0F725D17D65B40ECBF3BEFDF6BE7F6C4F0EDA413A2C75285F5C16DDE6DF2C3E2739EF361DE6DF0AFF6F0A741800F067F4F9D1DA1B89A75EA8074FFBBC9A63715D056BF8DC6C92CE8422149BCC504CE9B53F0F97DFCBBF077D4AAF33EAB744F725E1F388840DA90361ADBFAA7E37789B91735D525791508FC3FDC381758967E9B0CE1BB136AA9453C713EBF91B1557C7A9BFB3DFD3DAF9DC8637CF9ECD15BCDC677CDF000000000000F2250000003A0C00006F529F1F2391A24C6E895271838C784AEED3B12755E15F5B542E3A817E3C9C4F114BCDECD9D79091A5ECDAB73430F4059DE9EE973E3B6742E1C09A6EBAD0A0FC6C8CECB5B2DC73E47A6CEEA9C3EBDB91BE09E9BBC3EBC9E37396DCF3739766023D780E73AD78ADF958673F9D7CFB988AC7EBC386F423DA74D3B2065D725A1E89BC269C54318AB98CFC56F0DAB4BC86EF1B00E035CD97F8F2DB35A577BD74E3D239EAEA1D933E3B63E78E07B6611FA013273B24FF81C7334A87758D73E24A4EFAEEB4E732F87BF0205F020070D4FAFCE8FC61AECDD01EAFBA8E436B5C93BDE37CFD780ED2E1E5DBB7C5C7B538B712F0A16AD76167658AE2D319E9ADC93ACC3D75B886E4CA9545E9BBC3E7E4D7487F0F9EC3EAB03199A134E75A3F697A3ADCA8BAB49C98F7B476613E2BF9CCD99515F117840E0300FE8C3E3FFE3AB8E6EFE8DDD514FD4F5389BD3F77F59E8F396BE503EB12DC6B87D733B896CEDC3D1FFE97DFD7EEEDCDFEE07C2EFE1E3C2F7A5C1C8FEBE9D2BBBD2CD3E9A7FD2CFD358A5C5B77985E97000000000000000000000000000000000000000000000000000000000000CF627BE7A9FF71E349433CEE715D0000E0C5EBC2743D9D655B9E771CD782B5FA99ED7ABBF9DEC3B5762E7BC86F37A8D8D8A1F349536AF146AE67BDFA347F3DDD61FBE80000C09B88B5D1A078242CBE191747A25E2FB4E69643D1E41CA5E231EA7AB72BF01EEECBF669C2563A5CA5C5428362C604D5CA6B7461CCA498DA0FF705726AAD3E38D061000078369B4F76A8F39D6E32934394519AAC7BA1ED6CD7293EBE2CFD2AE31FBE17788FEEF9D3DCA9537F2842E5749C6656F3140A9D0AE830D15FD47FA474B8806B0D0000CF990FEB5EBDEDAF73BFB4CF3E391D78AEE3F427143A71922EF685D4E327B88E000000000000000000F8BFE3699FE2177B1FE763E83C8DDFDBBFF88FD8EF6FA156E37EC42FA727B169E5293D7A9E769A657CEF007843B435148A885FD25C324AA9195B8D6314098568C229C85AB3F6E6B0CB4DB26FDE2023B341C9C887F4FE4717A9E39DF76861E2BC78CCF5779F223793A4F1D522959D713ADB11A105334E46D7D940BCEE9E184513299A4DC602FE72BC76CDDE6F796B343066AF3AED4F377C3141DF4CF4D17CC6A65A7E29702E612343D1B83A87C13075F71BB2FDE027A75BF1385764F882F4748FC7A2E2AD57AF17A8271CA389BE88C4D0FE748D42FA706BF13EAFBAB23ADE46D1DE57533732060D5EFE8A669209F1EFBBFAC171F1EF3BE89AF0BE66FACFD196BBE4793DCD2E2ED1009F435B7F7F00C0D1E0D2704A722416BE36C553A8EE66C95CF85A722F78ACB7B3ED2AD98B96F8102DFE7D88863E4FD3C8C723343278962E9C4FD2DD5C8A124652348EE772D796F2D4AF34B6B23A1F88C75E466E7D9BAE5FBF4A5F2F98077ABFE9317B24F13D47D6D0DCDD0A0D284D36A2B1807F07C3BE488D9F37C5BB8863F0F61B9B1B32EE1C9C2373B857FC8D9CDC2C45C61D756EEA7CB32E6D2A386FFAC9A6DD3A0E9F4632EC5DC2FAD7EE15E53F46CE39A9DAEE9ED70BEA1838DFEFABCB8354AFBA74F5EABCF88CB4E7FEF9AF89AB7E13DCDC0D419F53F4F31C9D383B88BC41008E285CAF71D5E8937A0DC7B6A85C2E89E64C3815990F6BBF653D1FE679A069A614268D4E6768796E543CE6EA6E8A46E7D7E8C6F4906CCF3EC7716354E675FE78EC93A7E7C0ED1E9C91BE8BE21B5DAB54BDF174AEEAF9D3B9D58668B2CD3E9EDBD53D3ACC7EA83A066F5FD9BA4BBDC3264D2D2CB73CEC940EB39735AF23700C2BBB4C2B532EDDAD56023EA187B96E7EAFBA83E6C3CC07634BD42CDB5E2D8CE879DB9CD67F4D58F74BE5B27833858D71F15D6DAAED9D52CDF3B2C2F71680A3B52E91B7EC7DE7585A37D89BEDA0F561D664D6149E7BDA96255E9C8D4A49B6B5CC346D6E9402F5D17A9FAC27EDFE72B566D35BEB751DC71BA74DD3F3A7635F3A1EEB63F2C37EA0E24DB7DDF0EAB3C5CB8EF7EFF3E3E3D7781F79D7F562F0D8EF4F77A8DA459F57DD41EBC3BCBEF23CEDF45F93C3C6060000000000CF275F6978FD2138B780E7A57F664E010000BC2970CF9E4ABEB5C6C93D7BB8C7C49E75E0524DFE16D66BBFFEFBFBF2F7BF6D7A63DE9ED71DFC6B03FCBE7ABD12CC1B6BD6BC5E40FCF7B5EE2BC4EBA1FE712B76EBBE973F063E3B00C051817BF6D8894FA58F25F7EC4927CFCBFA24F7ED198D85A55FC440F29ADC976AD7E1B77B12F416118DC73AA86FC221331EF17438DCD32D8F392F4DE78E45060CC929E39CABBBC556CEDBA9489C6ACEB8DCE7EBE9EEF3EEF9E9B1CEBFE2B13F063E3B00C051817BF6B86AEE39EED4241F6DABD9A4CD8243A15058F28459878F4592D2B76726DA1178AF9E2717B3B3149BCD93D117967B627CBFA9B3B34B1E2FAF95447B670C83DC7A53C67CAF7F76D1A2B56553DEC739075A7B59EBFDE3639171E917C4B1FD31F0D901008E84066737A5674FE8548836B313AF2406EB3B6BEF682C2A73631EC7A2893DF55FDC4F93EB425863FD637C4E0080A38CBF0F7CA3927F2531F4FA2E6BAA1EEF979BD5DCDD96B7F38FF1390100000000000000000000000000000000000000000000000000000000E0A8915CAD50A368BEF6310000E07582FB40E8BE68EC5DC1FDD578CCBDD1A527B953921E0FDC333D581397A62DEECB6E5AD27FA750CC1F58A767D956AB77BB623E97F76294B6AA01CFCEFD62B4C7D6C7DBDE6F0800005E575CD3559ADBF2E9191D9910AF22F677DBCCC603FE43ECA7C6FD80D8D327F1E5186D576D1AFB3221FE7455374B05F77660BFEC55376E24289D714563BB86A669ECE313B26F7F0CDD63A83DC6D4CC54CB63AEBA25CFB7B6A9CB311DD6870800005E371D8E86BBBDB931CF87B9B719F7AEE41E937E9FA0F6F9F07EBD295887E7940E67D7D6285F2C9065A515B678D4F963F875D81F837BD2EBB9363FAFFD84F898D0F712007094B09D9AF84AC6E24A4B373281D7B88730CF4779FCD46B6EFB50FBB5361AE219CA5EF43CAF3D684DA4FF5444E9F0F03363F0F38DCA963CCFC7041F7800000000007094616FBC807F123CF20000003A0C0000AF085EC7753349F1C9608FB8F0608A8C78941A1B2E996E5D1ECF7F66882F9CBE67C75E9D9170942C6B9442A1887827CD25A3E29FC15E73915048EEA9E97DCD2E2E89B71D6B6AFBDAEED0648E729343B206DCDD1313AF8ED9642CB036CCCF47D9A36EF882F8E1BDFDD65BE2876764362819F990DEFFE822F5F60F1C18E330BA7FA6FB269D4F96E94CE81F645CFE8E0CE30EE5E6D7C9DAFA9552F15BEABC6ED38DD57575AEADB13D5B50D7E016E5AD02AD16EB2AF62D2A39F755ECC764E51FA9D7FEA91EAFE33B0600381427FB2FD3F9D0712AD594EE76F7C87D3BD6B2B09191C79CB3C0790AEC37A7737B8D7052F2C87A074D8A853B6869C2A0D488D1CA67480DAA7D35BD7D39E5B278DBB1C7DC76A310D0BF7AB14845A5639C3B31A8E6C0ACC34BD71281E31B5BC85264689AB20B63123BD917153F3CD6E1D39DC7A9F3BDBFD2E4F4E8BE31F8389EFA8D1C3CAFEEEAFD8EBAFB6FD2D8B9793226BEA758F40E2D4EE44587E34A873B94E65ACB655A5BBEA7CE511D6FFD0772B33FA9F73E26A7F6AB8A7A8D66A2DFA8D8F5561E4AF6DFF21ABE5F0080C3303ABF4637A68702DAD9AEC39C3BC639675A87D3A9B4CC7947AE67A52E83E7C98EDDCA6FE3EDFDFB6A365B796EED5E48C5FA366DD78BDEBF5A87DDA599C0F1F50E9B34B5B02CB9CC1CDB325B9A6AE52BEA9852725C75AE03D927C6B374B852F985360B0FD5F38FE84CEF2D8A4D7D4F83DDF32AC663B51FCE957BB8BB46728FFA8C752AE5CA542EFFA8CEF14799F76A1DE6397B2A755FB6DFD9F995AA5B8F3C1DF6C7C0770D007050EE98D6B5C3BE8775A7ACF4B0C979BE96ADE68095DF149B359BE372ED9DA3B49B7594F5B2952BFC3496934E07728B5FD6B9B3DEDAE9FBE43A0FD46FC703AA34FEABB49EE7E6BFEC59B7E0B506D65EFF71A595F6B2EEB6EFB7A4E6C75A93758C4AFE01BE6F0000000000000000000000000000000000000000000000000000000000000000000000000000000000007084F81F67DC5BB0 -MediumImageOriginalSize=177000 -MediumImageWidth=177 -MediumImageHeight=250 -MediumImage=78DAEC9DFB53DA579FC7DFFFD8CEEC0FBBB39DEECCEE3E339BE93CDB673779F669D36B9A26CD456B62624CA289378C106F18BC800102F18B0822200102288A56500932C2163BF83C32599A9259DAA99D71CF39846FC44B27695373E9E787D7F8F57B39DFEFF7F0E1F0399FDBD9DADAC216411004411004411004411004411004413C27C9B53C227E278C46238201FF936D1B360B1BDBCEF93FB67F55FE7F6E3652D18627F457843C2BD49FC44B6178E42E72B90DFCE1EFFE01634E17AED57C8C3FBDF53693E18C7C4E647D0B1AE5A4FC7F221EAF68E3B66505433D21EA4FE2A58DC31E9B71DFE3E1E84304FC19797B239DAB38EEB2A5E161C7A3A1F49EC7098220886767DCE1C5987407C37D1AAC65B3A83953039DC985A5D534C6C64C50A934980FBA30ACD5C23EE144B742B1AB8D68A620DAE83358110A873170A301F3E90DCCD86DE8EFEC854EA78363625CB4114B659EB45114D7A6169FEA28DD4A35E617169049C4F67CD6FBF7A7613079B1144BC163D7ED3ABE51D8646DA8B0B092A1CFF67744877A04673EFA336C6C4EB75128301D2288CF3FAB87CF674738E4C13FFFFB51CC3A0C304A4EC4628B686DB820AE0B4593704A257D6486C9306FC3130A0BBD39361784CEEE83B2BA4AB45BD3D229B791CF6FC86DEC94E1DBCA0EB8025F61363021FE8FB3EFC1463A5421C3BD0A1302892C1A4FBE2FF615F975DDB7C577826F3B8C1296B245FA6C098278A5710617E0306BA1686E86CF6B87A2BE46E812DB6D6B89DC4FE8ACB73FB5650C692BDA70BB33708C3EA0FE245E9A6D2D9B5DC327EFFE190ECF14424E038E1C3A22DBD65633DF21B7F11841FB03B15D60DBDBAF5F98CD229828C2D4E1DEF33841BC0AB6B5B2BD6C3FDB5A349E63B2FB886C6BC40B23126772C5E660DCDF96CE64840FCE138A221E8F887DD1E41AD2F1C833F9E9C26C6E168F44A95F8903C51DFA0A23FA5ED9DF66355AF1D6E193E81BE84773D3755C53A9D978197F263FDD674D7DC8CE38A95F890325B8108764E817DBF922B73155DA4F3772B98A399D4EDDB26F5B36AB0B619783FA9578A5C96DE4F7DC9FDFC8FDAC1EEDB49A9FA9FDFC4641F663C8FBF279EA7B625F6EA92DE868AC15DB6BF9A2D075F9B6D11B83D723E1EC8946A8EEE870FCD4496C15F398BA1FC4A1B7FE043BFB3BD6DF84AA2F4E616BB380F10987DC86A1AB46E8237E8B06F575F550D49FC6958B5FA2AA41856BE71BD1A76A93C7FD90C726FBCAFA5B1B10C914908B07645FC55AD287E0FD29FAAC887DD10D5BA16EBBBAA70C579D390653BF16C5AD02CE7EFE9EECF392241724874FD8D624494231BF26B7C7DBD8884F8A79617E2D093B3B1E4FAEC2C5FE2A552A0C0D74B3B9A077D773705F592AE4ABD8372F7CBFEB989E2619265EBE4D2E1EA1784BE2B7C16C0BB3DFEB30B4DD6CBCCD27A1EC3754C4C1EC754DFF2DADD01FC4B8ECB98F241B7BF9F5B22EA16E10713C6BC9288C863B30EB346869AE47ABDA0053DF2D58CDD2AE360B9B6C4EA8EFA7CF84786EDABA1D68BBF4173976A7AC4B94E360CA72598ED3E1345EB98EAD27F6B4E3C73E417A312CAEFF35BA0497E188DD429F09411084C8798B22BE107EEEEBF8D85DD8C3F696CF1777D9CB08E245311959472E1D10FE36776409678E7F866A450FEA6B2FE2C4B93A5C6BEBC5A4CDB42BF6975FB7BE52BACEBFB484865327E09F5A43FEFB34AE9D3D8ADA261566BC2E5455D7209D5FC3DA5484FA9BF84D90BC316C2467F63CC67D74A1FB4F75D7ED323C9DC86133BF5A717EB6C8C6E14C6A977F2F952D56E48D12044110DB6C6B9E285AAB3F143EB4D544A2E477DBE1EFE03683C9012D0626E3F06A9BD1585B07556B238EFCE707C26FC7C75FEEBBEBB96D81D3E116E7906F8D38D0BA270197B07BF1B804EE77DB29C3D1C57591E3C6E330032E49D8DC9CFE88D8E67E3B3E97E3BE3B6E5B8EC6A2623FF9D688D7D59E51D858A3BE200E148BC505ABA10F8A16052CEE007A7ADB76F9E9789CBCDBEFC71C1B63790E5D792EC8FD713C877E6E6955F8E306CC128C7A0DF52B71A0787D93B83B322CE2869D731934365E966DBD5EC9266F0F367D0E873F21E27CCAB6B5ADC749F4B673195E82A2A1112A83152EBD91FA952008E23908311DB6944F67C4FC5C04AE499B3CD7E3F971627EB7B626621EF87C8DE7D06DCFC3B37942229FCE68F3089C2E27322B73A85668316B1DA03E260E4C97D0B434A3CF9DC007470FCBF1E9EFFFF751B19D61BAF12DC5798C315D82E7D06DCFC3BB5C77111BF93CCE549D42EB957E8432498C190784AF4F77A399FA9838B07138B72397888FC333D311599E790CDAF6E3E98D829C835199A7B449FD4ABCD1B1EC140F4F1C946D8DFB381ADA552296DDE60E8AB8754F38B2672C3BD78DFD7E37541A03A6EDA558785E6792C7D6739B9BCB3181316DA7A86BE5F1DD176DF07623F373883CB17310C42F45DDA7434F5B1D262583C8C12CFBE6B80C0F74B50BBF4534322FE672FCF85EB1EC5CD7B878E6983897E76EF07D5D37C7443E278F8197DC216193E371F2F17446B4C1CF4D2593C2A7479F034110944F1746637D0742B321B827C6A1358F8BFA541A83058A6E33EC5E3B1CE60198C7BD484483E2BA5F52439BC756F0980B97C520C6661E1F54D625F6F2058E4E06B034E315CFC1ED7721A6A7F0E7318F5BC473709FCAA45127C76694751AB34127EB34E5FC3EFE4E569351D6890EDA9FF82323613261DEE2C04FF9752CD93C58D0EAB1E69DC08A2F8C99AE1EA499CE95F486193E04D5C3F8697313EB0B71314FCEB139B4FBE275045B1548FB7DF8C6EB423ABC846FE2492475FD589EF089DA09C2279559C623F6DE7F0BDDC70FECFF6F1797B1387217535D2A2C0F74213513C337F3D358B558B13ABD82B1AA2A2CB45F4474621EABB661E4227E3C64F3165F931233CA2EA4A78398EABC85A99E5EFC7521CADA506379DC8D072E0F1EE807F0B8B089A47B028BD25DFCC8DEEDA065D8608C6074F42606BBD588A592E8BAD600FD981B2E8F5BD8CD6E0FD89064CFC575662EC3EED192CCD93C53E8513589BA97D9F514DADADA20DD1E47249DC5B8598B26550F3CE366A83AD44C864771A3E9B28871B38752D034D78818796E6F76E894FBFB028311F939B8FDCEA26961CF63412CBB269EA39BFB054D3A39468EB771F88FEFC1E19995751AC1E3A490E1E1C141D8CD6A51AFC8A51F3CB03E7E98DFC277510FFE271CC5F07F1DC16C53B59069D7E5162CA89AF123AFCFF1C1BB08ABD5C8A4F2701E3B8EB153A7F0BFE96518FF721C23870FE3C7621613354D183FFD9990332EA3192FFB3EB076C243267C651C427ACC80AF237144583BAB9211C17E0BFB6E74E101D3FB56BD33703528603B750611AB1393E76A9098F421B3924564508BA8BA0B0F37F29838771EF68F0FE3DB4C1ACE0BE7D93336203B6182F4DE314C5CAAC7C3B00353B555488CEA90CF64B0C2EEF768651AD3AA2E7CA597905B491FBC6D2D9AFCD95A96FBD9CB22ECD9839ECADC4E5EAF9D8FDF5C96782DC1EDF6B8783CB16F8DA09FB3DF55C8E23ECF53AE03C4DBE076C2EDC7448E6A3AFE527FEB7ED8DCC2E3F42A7EFC9EC9DD740849A359CECD7ACC9EFD1193052ED3F99515B13F1B5D428C8DD7DF78EC4C76BF677291C40F850256D977EFEBA96914D74B7906DFC6E74BFDC43EC32CFB5DFA2E555ACB21975A97F3CE738994DC5F0FD7D7910ECEB171B3C0FE06F0782DC1C6CD2C329115C4F426E4593F2D5B9C986AD1E211FB6DFE365744C2EB45315BBA7F6E258EBF2D2F6185CD991E6DE4F0359BCBAC3EC9895861DF91E5113372E9838FF90A3159743219E636825C6E8DC9DED3D84B6EFFE5732F9BDD267C6FDC2EE6774AC237E7677DC0659FCFD3D2EC7DF8F5A49B112F8391B1498C9886443E9C67398EB3E71AC4FE75C6CD3317D072B30F975BBA84EFCD38EE11F505F96FBB2FCE7EB38C7A5CAFBB0EDB3D8BB89EFA937829F661A6E3EA076ECAFFBBE64BFA0CAF7BD27845B16F9E5D2987996A60130441FC5A9483465C3EFB097A6EA860F17A982E71493E76B3FD267AD85CF365CF8908E297E8124257368FC03BB344F10D04411007CC1D690CEADB23C207D7D0A983C96882D3A084CE6C13BE0E9E6737BD9010713C3BAFDDBE7E2DB7ED72FF1DCF132DD52D96A0B1F8D1597F1C3D3AB3D0510A9905EA73E285F3C9D9ABE86CB9246CBFB3B118E6E7A21833F4A367C824627F786E3ECF092DFBD3B6E7F16F5FBF96FB2CF81AB8BCC63697619E17321F890ADDC4158820190D910C13044110C41B42FB855A519F3262B4A2A67908756D6DA2A625F50DF1BAD0DCAC80CF67DFB5AE0B41100471F0F46A86F051DD0DFC81E912FF71BA1943DD0AB45F3A8EFAC66E68941744DDCBD17B0B627DBA9D760939C749BF8CD940657DE2B7FFFE5FB0B599ABB8C7B5EAA3E21E3E9D52C4174796B2708F6971E81FFF155D26A3B0BF510D4DE2206D6B3C16E8DEC83C34FA074C869368A90B32B9FDE189DFCF2EC7CD96EFC1E37DF93D92D16829CF2312C77C240CA7545AEF9CDBDFA8862641106F32BC86CF9CD38A1EBE2EDD93D87F47388685E80A8EBEFBAEEC4F2BE74938C7F4A5BC8CF486584F4E3D60C6563E2BF6DDF72710CBA445AE1BF7D325E311919F57CC25A9AF89DF0C1EEBCEED6903DD4F6385275C93708C4FC2D06340F7A049FC9E0BD9F644990C97D641CCE5361099F4E1D467354C464B7A6F9FC28A602A2A72DD3E3AA740D8A917F9795B9BB466384110C4CFE5848A3569D9FC2DB6181379713C878EE776F2BC395ECB32C6C6613EF7F2B3F916CFAB2BE784CE04BCE23A9E9BEFF5782139FD703A5D62DEC7B7791B12BB9EEB282B8954A96E663C2DEAA2F0E3651D859F1F9C4BC835354B39A54604D8B36CE616441BC5CD527DB79595C4D3BC545EB7259E80C4E793EC38AFFB6D63DBF96251DC9BBF5B281C16F982A14050E465B7D67C489FFB1B06CFCD9F9D1DC5C593D5082DCF89BCB8D6DE413927BEF58A169E545CD402EA1E348ABC3A11773CE117B9F9DC97C773F3DFFEA7B761F786313E9D14F6B7DB3D13E06BDEF335EE0A9904FCF77CB87EA90DFD5A03BA6A4FA0BEB553D6512E2987306A19966B6A72DA1ABE84A6478B0E066FC3726F0AAABAE398D9B6CE1DBF6ECA368C77DEF998C97A02ABF94D74286F62C06C15DF8F738D2D0806FC9836EA71FE6A2BFAB4B75077A68A3EF737701C7E51B9F9BCAD72CDE2EC5A1EDBD706FDB9BC7CAF2754712E1F876DC256B77B6DD1721EFE5ED76D3EA90F50AE155286F2FE08822008822008827893F39AFBD52DC29F36BF1C8352D52BF62FAE7F8FDE7605741617EA1BDB31A6D782D629205E4578ADAABB269DF0A72573EB387BB9EB890F7A0B6D6D4C86EF58D16F9AC488B68F649878356D6B91B8A80328E72527D72AED544F6223A8AF88D78DC2E616128B09E1B3F378BDC23FB77DAD038278D5994A7F8F4F8F9DC05B874F42A9560BFFDC80E442E365F27311AF07916812BDDD6C7E57ACF471596DA3D43FC46B0BD795F91A1BBBFCBFC52D580C1AEA23E2B5C0E79D9463239C9271D77E1E3BD675B94EDEDF58DBB02B7E81205E26BC7EF65E325CDE2FC6E56D31360EA39EFA8D78E3F4919DEBC4FC52787C338DF1C4F3CA1F5F5B8EAF756B941C626DB9FE5BFD58CF6FE04A632724B7070B012F924C46158A6E2C049D62FF84DD0A8F5923F296CB7AC77EB9CA3BEF61750621197408CF45440C3CCFF52B6653A2ADE4E32DAC472629EF997866F8BA4891804BAC75CB7332783E46D7AD2EC46767110E87A0EC37883196C7FF5E6D50883874BEDF174BA0FAF0BF09B9E33A48C06DA9903B9E2B52AED3BDF31E4A9D0D6D9FBF8FE2664EE4928423F3ECDC521EBF526B47311727192608E2770BCFCDF83536353E5E3BADE68ADC0C8278117C71B5036D1D37D070AA4AE4D3F1BC389EBF5FD77547E4B495CFE33972AAA65AF9FFA64685A897CDB7CFB768E1976E895CB8EE212B1C7DF52297BFDC4675ED5554B5A95173F23466A6EE53BF132F94F66625AE34B7229F8A88B1365FDCDCB31E26CF55DE6E53E3A433993D6D7122FF4DB2ED79BFEDB9CA0441362B82D8926D563B6D061381598CE807A88F88579EB2CD6AA70CBB025FE1AE5E4D7D441004F102E1EBCCF13C8EFECE5ECC2DADC268B8836832B9A73E6CB1B8D838AC11EBD6E9471CB8DD7D0D1A83059B05CAF3205EAE0C5B0CFDE86DE732BC04454363291F690F191E30DBD17CE5348E1C3A02D38403B6A15651CFAA5CF395200882F8ED637E2624DD9E31F07DCA6B7BC65E1A8D12D9E9885727073A9A84E576CFAEF861BE1E47D95FB733069EFBE6A8EF88573106FE59F747A331EA37E29547C4EEECE347267F22F12AD1A77360A8B343AC5B77E1D449512BFB838FCFC32CE9F1D1A75F0A7D39C3C6E380B91D37343A114B7CF6C459B4B7B7E2DEB809D7546AD90EB7DFFA74664F14ADD51FA2AA4105E5D018064783F8E2BD77607607C4B97A870F998569716ED99FC8D7AF4B15E9F3219E4D86B59D0AB16E5DCF9056AC25C063DC0B853C24A9B4F61C5F674951FB3124A713F1881F939241AC81C0B77B542AD90EB7DFFA74BF34067E295BA4CF882088DF5D3E5DC0699073DDB8EFEE7972DD3A9A35181CEA163E42C93A06659F84CEFAE3B0CF24459E9EAE4703EFCC12864CE3E8EE5622B3B224CEE5EBDED9CC3A710FC9D00F9FCF0F458B0296312B4C665369AD51F69C89F9202477084E875BB4373C6492EFAD61E377A56FB1A453F35A5C6BC970C5B90693174BA92C0A99857DC7FAF25A7D0E4F585EAB2FB5B8BEEB5DFB3403E25D5D96311CABBE86BB13F6D2BB9A5CE25DDD6326A854AC1F27C631ACD556BEABD90C5F30C4DEB55BBCABA25D21BF2BFF4CCAEFCA7FEB4ACF5F7A56BE868F45FB34C625B5588A83E1BF9757CE9DAB3897BF2B7FFFF2EF1A7FE7374D86EDA11434CD35A8BD580757680E0EA6C3769CFE14C9DC9AF0DDF175EDBCE3934257EDB37844FCF1F6B5960F1D3AF4FFEC5DFB531B5796FEFEAFFD6DABA676AB76AB263B95ECCC549CF57893D83349FC8C6313631B13B0C1208478BF24838C780883112009104896B0C45350BCAC800A34112E91A07229195121AE3055EC3DA7E94602E147368E5FF787AF68BA6FDFBEE7F6D1ED73CF13EB0B8AFFD0B5DC22E41755231A8DE0666903A6267D08387B303413E17E6D8EFB18767B60EEF1E246CE05CEF746F6C42AF15E9DED667EC6C7170B30D0D120D002CFC4222C4D8A4C4DE35CF2F7E16AB1228F507FA9740CD8027BBA3FF18E4341A7129712DF607FFFD4B6FDED7E96B5D7A7D265EEC074142BE36EED3ED2217E555CA3D5EAD3EBAD486EACA5D11A8B0499D605412BE5B11B9A0929B4B6F533ADFD5D161457D5A3FD8E155515C6345A758DED28CBFD126D6607D34A39C3545AF99DECD2AAD71B0EC440AEEEFA6C11ADAADE93F2E9399CFE03B412FDEAFE82687E1BF41199EAD190DFFC46628B65DFA7C519515C69782974E03CE526A4B592DE416A7D199AFBB5F0123F83EA2A51EDAEF8AE4D85EA793DA9768D0AA5DECDC1F3A4E7DE5FC7666E2E2C6850CE2B7F53EFD9D2EE4BAC85B1B691D4E25832C1E67465A6D5E6D2BE0B542B8DFACA48AB184B3CBACAD7A6679E8D567A4789B55866BD0ED55DDB47AB426742A3F94DE5DDAF3B6CD814747E23BEED8B540F2E1A456C7A146BE39348083EDA8CAD6353CCFFE6D21216CCB578B818C9A8037B247869D93B8135C1872B431E441C4EC42351F1B743E97765059B9110BE16EFF887781C6B1E07D6C4FEF051788EAF6F8ABDE4A3C5257C2BF6795FDB6C8889F56651F0C00FE23A9DA771D2EF88C6B9EC19455CBCCBE8DD367EF68F629DA13E1EEFAE953FA6D81623628D4C6D4BE3A43E880EBAEFD1E274C679A1FB36C59A4CE354CFA9FD521FD1310FD31A17E35CF6FA111DF133AD3436A23526F6C8445F6C7A86C7B647AB83E72F3A2B681DF533AD2BB60E8DD6EF04AD2B234165AE5C234A7FE23DA8E3271C462BB5A5FBD2DB3A101D1FE7671E46EBEB827FC432AF29DD9FE7E1815853968D85E8BF7A03DF8A6F636F5E1DFAF37598D05D81E793A3E2FB9AC0F70117C6F42DF8793B8EC8905207EC5B21BF7DBD9BFF351ADD82E3E31308BB943C8463057F43643E02F7C9BF68FD7E1F99424067407C64006339599813F78E19858C78B510F1E4163FC377EE121EF475221E1A43A0A61ADF3907F83C8D73736994C739D1D4C7FDA5D2316369E6BF3F0BB8AF15333FD0FFEBEB0773853F14EB1EB5DB4946111EDAAB693626FA558FE9BE95E524868FBECB6B98DA2FF39FA0B5FF7FDFD5689DBDE3C082A59A6955C7B6E2BB87604B171E988D181134AAB4124DD45F7850D06A68655A571C77345AE9FC54E730BE6E2CC148692DF7F7A0BD3223AD3BFB68FD417C3B1E7A5C1969A577964AEB6B19CFE10A1E7A8D68FC39454E984AA959AECD4570023F886FD2CFFC7B5ED6D6A3C57D398CBF995AC4ECAD723C8EA6E7FF892D44112CCADB7B86E0E59D6D650D79188A333FD13356DC2EACD8ED629D49F0B8BE9D0CF2796DAC87C8339B29DFE2D4E387E1745FD2C7E29BF2D0E7567858D0F8DD2E2DCCB7C159ED9BABDE37DF61C73F776583CD7DDF7B95D687638103B4FAABEAF6CD675C9B6BA675318C659B9569DD4CA57571AFA6FB8FCF4BABB8F7E1504F5ADB15B7422BBDB3545A2524245E1D7CF8FE11DCBC76966D6F172F7F85B04FF165AB370D8BBDC91282BDB5729E245E69E8C437FDA7F50525C66E26A21DF7B9A6050F47E16A6F94F324212121F112D06E1F86B9B31D035D66DC1F59E23D89A5CE82AD84B2E720DB13E9F2C91ED56D277BD5B09C3789570A85D546D8EDAD9818F5E0D80739F0394DEC1FA4EEDB49971F0A2DB1EF8ECDE9E5BC9872DE24242424FE7F78167BE7B3D8439387F4933CB4FFE7B183A6B755EDDFAF4ABECDADE79C97C446F299E9CFD4F697D2FF26E4275D27BF918E3E98EBF6FC4A28F765C768149F7D74043DBD0EF657335715E1FCF53ACC3AADC8FA321B91C41AC2EE2072B372D1589787E67A03CA1B6EA3B0B113BA826B18195B43873F80B606237CE135F18C765CBC5C80CDB01B899F2278E7F7A7B0B61A4497F106F2F435EC3BA0FA14B0DDB0BE498BE52BBC9AABF9DA04DD61F661496D4BBE3993638AED46FD4BFE0EE49FA1DE576B6E478FC381FAAA6258CC5DF08A7EC2738A5FD0AC3388D5641C972FEBB4FC474555269C3FF647A6BFB5DBADD19FD84A30FD3E41FBD4FA4F4C3FF9F4789D9D4C7F5D53AD46BFB9AF8FE9A73CA39ED510D34FE755FAEBBB2735FAC94F4AA589FDAD9D3D69F4ABFC3F7ACFC9E79E85FED4DA2A5F5DCDD3E8371ACA987EF20351DBB30EAA2328DEF53AD72DA45CA665B9A75170FE2C767E5A7FA57998FCF5A65D7DB074F56BEF9B725FAAD73BC59EAEBEA9E9C07D5D4E1FCCA54ADCB3B567887D05D56BDE91FB886D511EE201186FDFC69678EFC98DB8A6B34B46F7FA3F2C8F452CC5A72535A6BAB37540F3AB647BEB72947DB8D43C9BEADFFD3C4CFE8CC3C36E745BEFC0D26EC5AD72132C9555DCD7523881469309C9D8C13841A2DF61D61F389F9F5F89099FF21B20DF4AF20BDD4F7FBBC5CCF42BDFB56DA69FCEABF4AB3E544FF3E951E9277FA1E19EF47A3E4FA23F9587BD9E518DFE3A4137D1EFB559D3F293665F32A0B4BA42CA22CF097A2F01B753CE85C453F1C1F1ABF0CCCEA128B7488B8B53FD4F9BF4050762F3A3C91D145C2FDAF38369ED406E693D9C9D26C57ED760C25F3E38C1F9B4CF5EF892E3E24A4A4BD1626AD4623BD567903FB9A55CC7C7BD6E3FFA5B2A380ECF35BB84EB5F1CC3CDF24ADCBDADF47B225B8779AF4DBE33898C3C3C6857F46236D78826F7CD933FF56E2EEDFD3C5CB8CBC3C18575E41D3B0ECFE8842687B94682EC276CAE2D63F9ED49BA35FADEA9F29DB1DB8B218F129BB025BEA381110FE75C51EFEB19F6637654EA982564CCBBC49B87D41CDAFBD7C8C0B09447255E8318FCDD58388E81FBF40ABAEA4BF898F6AA6E9F57CE91848484C40B864BECB76C361BEB4C29FE76D41FC0C44820A36D488DD7B4393CBCFF5B989FE7187ABA8F740D7E715F4BC70072CF7D7830475B729BDBCA3997F8B5F1E73FFE153DCD3AB1EFF7E1DF8F9E43698511E6BA82B49863D51EA0DAD0486FA6DAD0C81644F74DBBDA71E1F429986A0BB90E9D1AD33ED0D994664B92732EF12240B61BCA45F54B6CFFA9B6CDCC36FC3D5B1AE9D9E47C4BBC5672CA4890D7F1676D9B297FC5AF0D9269463D0EF97EDE205CCBBD89FA862ACE59F9873F9D41C3AE8FCFFE9C9403169D9693927261AA39295DF702F8F07FB250539E8D139F9EC4A563EF22E7CBCF71F2C34F908C85B467E86B1BD0D16C4445B98973E54442C3303677A0C95CCDFD26228BFC3D2039856C2274FED2351DF28B0DB878EA04CAAA159946A72B4372C9CBF9E8F9F7B1ABDBAEADB60B99DCA7E5ABD19735A0E8FA159CCBBE81ED84928FA7D2D4025B7B03CACB5BE1BC3F8D59BF97E5A0EDB8AC5DFABAF3708BC5C4392BC92E4632AEE6239592937278C8A6E5A4249B9E9A93B2FFDE38EF0967A683D09596405F7005016733CEFFF58C16D3F11FEF1EC7F5E25A54EA8AF1E9855CB4D59420E7F811E45754C05496CBFD521C08F130D9F7BC4B493E9F75F18AE0E342CE5B75E6541EFBD2FCD73B4790981F38404783A193FDD6D4BC611DBE30EEDF29E3FDA6CAE7D9258D70093A295F50A3A58BF7A17C7D47E6D1949090787920FFC03E7B2FE793CC2FA886BDF72E9FB7DBFB51ACAB4641599590014C2C43523DBB4458C947D22BD6C63B0E0F0C79D95A5FD4D6D66EE6183A6ADBD5D288125D9E9C6789170AAFCF0D535B2BE793CCCA2E86AF5FF1436DB2F6A25E970BB7D707B3630255B9A7B99E1DE5A0A1EB5F94B621E8EBC6A86BCF3F98DA525E52CAE9486D5D83BDA8D1E9E53C4BBC50A8B917E31B99EBC41CA67323DFE9FD72E42FD1CF4948FC1A3C4CF58C688FEF700E21180C6AFEC364579B9EDA8B4949AD4B47FC1A985E4AE35BEA637E6E8EFD379F64B393907811B24463890EFFF69F1FC36A2A4A8BDD5A0AEDF9FDAA75E9380EABB219BD3DADB899FD89768E6C7DB79A2C3055151DB0D94948FCD6B244A67CCCA975E9A42C2121E3F50F625BC0D2D2B51B0FB99576DED8607965EB9D270ED94B1CEAB32DBE71AEBEAEE7F3916DEC4222167BEB75D914B356947B11C78F9C41BBCD869B5F5D54D6E2D1282E9F3D8EEA9A6ADC1FEC86BDA9186677085E8B8EED74F535B5B8DD508EDB35B7B114DFC67BBFFB3DD7A0205B1BD589A0D8F4B11EB366D3A3FBD26C65F93518775AF8DCF5BA768E9B1BB1EAE17C9080A7A550AB6B77B5AE0B974F09D963537C17424AFD88C9681295C579B8D5664534BA8C137F780767B273E0E9AA47BEAE52E36B750C34F6ACBC12F43B07D0D9DC802A630BDB44686CC9D80AFC42CE3F7FF21C8AF3F3B43135F68CE0C6C9F7F93EF3E0248F9FEC2157459F39B99760D6E7A0A2D280DC6BF9708736E034DE64FB9EC9DACD6DFB07F7FCAC53E782FAA3582A9AAB2BC5555A6CA121EF0B5CBF7689DBABE3217BA23A1E8ACDB7D666731E8092EC2C98EA2AB826E06A24F856D4CD781202B321AE2FC4C7E25DA8392C357976C00BCFE0DDB4F54E951FC8B63B393589C88CF2BE945A2D89B478FDFD3570BDF36B5CEF25F59CB5CF8520C5C5A5C43FC59FB08E856249D6D5A9F28DB1C280EDA422E3A4E60DD81FD33F3EBBC47AEA4C747434D53C75AE28AFC09DEE41349419C45863DAB9F8F60E9C96C6A7FB65A4CC456A5D9B036B7886F1D8BCF3D8084F1E68BB1ADBE25CA3F2FB2F212121212121212121212121F13AA2DBEE46776733E72CF43C50F22DD279CA71597D210725D526E497D4727EC38E7E0FEB30F273AFC1170A717E4ACA67E5B8D7A3E43C94F329F112D0D3EF45BBB95AFB9FF22DB2CE3DB185C2EB864375444A6EDCB89C430909098917E533B16BA7D39757C23AE085A9AA148D3D2EC576F5F9798C8657E0365B70232717B6C111B65DA979B1CF7F764AB37FAA71FC947795FA3B7DF44FA828CE81BEBE05BD013F9A6B640E5B891703CAA14A3171D58DEDD01B9B101CF1B24D9F7C28E9BCA9A505955F66711CDDC07C0CFFFDAFFF82D16008F3F341E80B720EE4A2201EA6FB3EBF9C878A9C33DC6FB5D5024B8D41CEB7848484C4213E090643257ABABB61F3CFC0C03E028A3F4377573782D124822931471212AF1A287FABEED22594355830E071A3303F4BBBD6D7D187FAC1796CCCD8E55C49484848FCC6A0BD99D7EDE2DC291C9BEFF020128DC27648FE2987CD85607006937E2FC7E251CDA1482828E752E2A5F270D18D5CD494E6E3764319629120D79F1B70287C39BA9AC017C7DED3DA7F71E13A1CAE5EADD659775B001343528E9678F9A07C4E4A6D1817C2ABD1DD3CC499DB068321043C5ED6B3793D9E27B69590909090D8D162D63E7CFF082E5E36C21D70C290739A6B9A528D38393F12AF0B0F7F2C7898EA076FEDACF3FE4DAD2D27E747424242E2E5EA259A1B2AA1CBCF478FB511A6463342D1286A0C7599FD93BBECF03ABBB8CE78ABC582EDE406EEDF1F47A3C589F14945DF66EBB3A3D264434DDE693827C36CFF1B1FCF1C6F6E1F1844F7DD01EE8F6A7C939E8EFAA36B4BF17FE2F8FB9DD84A3C52E29853FA585DD8ABE73EB3B802FBDD1EB4B6B4C276AB568C4FD62B93BAB5C3756BE74E5E807374118DBA6C545518398E9CF24F506CBA7B368C6834829BA50D989AF421E0EC61FFE581964A04EE8FEDC5A9A7E4762FBEE5C083E901EE8F78783AA0E4B3D8D8788CF8C626ACF5F3E278134901B50FCE6BA1B76A31FBDEC504FA7CA3B890750301EF1062D303F2DD4ADDDAA1FA32B5D6732A280F506C2DC1FE9954C739BC74B06E732291395750C09FB9BFF0DA8FD888283EF9EAF1617D10D63692F07ABCACEB93EFF3CD04BD635AFFA8E6DCF44C90F995F6746C9BEBB021145AD2EAB0504D166A4B75C847BC5EAE65E77409DE5E0A2AF6BBDD1C256A4D84FD70BABE116DD3F3B8AD8443FC9CC5D508FFA51A039C2B448C87E4079241FCE393625C13ECD3E90F8CA4D530CF640B0C4536C598970F7C5722B1750467A6393F6758DC47F5F8B6126B920F5E7304D777D067D623E80E23B1B38E9B178FB36E8DF26653FD39CACFD45B9BCF6D292EA9BBBE093DBD0EF615325715717EA659A715595F666BFCA0AB6D866BC803972D7DCD3E7F7D4AB49D4F3BF7D989B3A82A2F44454B17C7F86D8695FAD16DF583420651DA920CE27674E2E8EFDE458B6F52FB8DB439052FAE86D3EAE811DCA14D31E674D9779DFD9BD651703E0BB9860A4CB8DA71E5861E3B3FAD4B3E7803D6615A432732D457A175714BC8A71EC75E3DACD85A8C7DE0FD23CFBE3F22DE5F9A8E1E3826A4EAF0C8C782F682CA739E2C831C8689B947D8DA7E2CC6BCCCC73BE298E57731665AC7E5BA2BF13C7896BC984F92659FB5BFE7E943E2EDD24BA4C6C5991AAA30138D22EF52A1B27E27B6D26485E3474FC35857C975EDCA6EDCD0F412A427E81DB4B15CAB2F2D43CECD068ED553736B1EA697C8BE61407599D21FC5EFA97A09C56FFFB1789E1D89B0129B7D985EA2C7338BF22A13D7B5ABB87609DD7546F96EDF4250BE47D2D156DF6AC264D08F5A5D5D461E1EBC7BD0478DF262924CB0914CA2F59601A3F70FCA1FCBCB996B1CB677380EE41CA6FEFCC1EF31E58D88E7CDF3F1CA7824AD8FC4C6DE3DF4BB088CCFA0B5E50EECBD5DAF6C0E63090909B9A7FBAD746BFEF187A2FF872F5CB73617FE419C8F49DDDADBA45B331669BA35B28BA935E932E9D6BC360706878731FC2002A7B5916D20D1851921871A347E301A9B90ABAF4BB3E3AD471FA1F8D61262D3613E56CF1FFDF347E8EAB3732CDFC5FC5A4DB7B6DFBEB730E983B5DE8AA19990F61B19F0CCC174D78EF7DE7B0FEB0BCAB995E83FE075C73131342F8EF79E332BF837B03A87D2AC2C987B0659B756C63512E47E50EAD69E5DB716F0AFFD26BAB5B910D5955E14C7DF49DD9A8CA77BE6783A9231E83A7FFB858C3124640CE23F920952BFFDFBE11A8AC8F99678613CFCD94747507AF5149AEB0D484627D9D6E51E0C66D44BA8F63B3A3E79FC02BA3A9A517BF52CF2F435DAB7DFE119D5E45D15BDB607D8894B5B99C4CBD7AD918C41B55C488796587D7A3C33E9C5EE75CFE0F6AD59B167FB8E756472BE252424DE56549755A3BEDDA6C9AD54AFB9495FC0B6B9F2E24ACE854975E9A2D119CE85A9EAD9ACB78D2C27EFF7BB2CB83E829DE4F77B6BAEE88F6AD5D555DEE43A74A7CF9FD3EC71855773D1DAD1C939372F655DC798C7AED58BA3F1704D2F630BEBD0F6FBF6B8C61FC1679B4997CB5BC75077BB03F7FA3BB98E9C677C14F5E555D85A9F91EFFA0DE7E1B3D72A101A57EAD5CEAF25B03AEA43757D052A0AB23817A6CBE660BB17EDED551B18C9B6A93CACCA07858287FDDEBFF3B1DAF6DE9D3274D85C886F4470F1CC47DAB307C49EB177C8CF39375BF5F9D8DA4E727F43FEA0264793BE2234EBD77898F8BA24378041EF0A66C757D0D6F7774D1639F6410EB2CF9C167D8CB0DEEFFFDABBB6A6B6AE2CFDFDAFA979999A87545EBA33351D774D3B1D279DD81DDBF125B18D6D6C2E0673313761908DB84A202E9211888B041648916449207CA0910005AB401329253956B9D4895CC1A9F881D96B091D23C071DAD5764DDAFBE12BC4D1BE9CBDCFD63E7B5DBEB5628FD23B679E67F2594BFC6AE46D2212126F02A16886F3616AC43BBEB5478FAAEA66F19E4FBF944F47E78D59AF17DA1E939AA795E43F2ADBD73E0065338549E36D749926F6E9222424FED976BA19E75D0C1A6C702C2EA3F57A29BF775FC6A7A3F7796FDD1974F68EAA6B7470CCCE658D776CA815E7E880BD139F5DD160D13124E75A424242EEB7E2DD4F7656B3D98685F979D8856C46F298CBED625989E59F1DFF19F2E961794D94B5D96D883F58E4CF6407263B05D50B0B796B31E062BF19F269E0782BF30AAC76377F3FAFFA0409F9EEFEBC900B1D70781521D3255866A3FED8FE27E4BC7078856DCEE45B49B66FAFB87EAAA81ADBD9B8B88F4DEE936434BA4F1A43DEF788EC8274CFE41334E3F0AB76C1BCEF11F5190AAFABFE48548F38AD99AD2DAE47E30C048370D8CC3C0ECB941B8DC57FE5FCDEEABC0502F02FAEABF6C92DB649DAE05B5AC458E72D6E83E450BA76D0BCFF3D9E4668B01FA945055F8FCFF2B5EFC2AB882DACE1EF91256C383D488AFB7F30E3C703D1C7F7992D6C08197443CC5552D489897B237F522A9B6FEF4771FFE925FF5BB786CDCE281AAE9D46AFAE134A2C8596CA224C98E7C5F34C61DADC8FA1C9D95C4E7B3AD79A158C8FDFE2B296D141CC8E9BA0B9AD4726B5C939EBE8DC11CDA4306AEA62BF998DBFE5F4077AD338DAEBCBF9DCD1DD6D507D8296EF2F310FDF3A3825FA4E62CA6254CF1DC4E3B7DF1D877DC8C03EEEC4D36BD65460DA62C1A93A234A9BDAF0C9479F6263DECE31BDF7FA1EEDE5FCEB7A87559F88F34D83483FCDA2B5B6857579F1EC369A9A34E81F9B66BDDDCDCE5E387D5E3C0878781C0ECF57E8D0346373EBF91A9E0826A17846736DEC5CABD3B663FA8E09EEBB5694D4D5239A4CE2C81F8EA8DFFFAFE7B9AE3119CB60E4F0C7F0DF6AC1F7E277A388B5FAD383657C97CC62A9A3037F33F76159B4B5D6710DCBD65944EFCD21237E9BDFA5727E23DF8A751C348DA1EFBD2398FEE8BF918C67E1292F864FDBFC56EEC3797D01E591A13DD5ED0AB05F4D7A4FFE39DA5B5C36F34B38412FD655118F3F3CB7DF2788F6DCFC5E9FE7FCABBE47D1756E97F6E1FCF519B1A7D27DD31EBCD73F88EC825436BEAEBCD0272837BEE7FF3FDBB987BC6E3AFF7BD89B7F2F93D92AF043DAED0B95DF87F7FA47EDC6E3D823F5F34F42AEF8C6378328C767D9422A92609999BE9B13727432E4C7B7E14D7C2FDE7BB11DBFABAFC5FC7D1B54F0301CC2AAD89B7FDCDAC69AF8BB366CE57B5FFF2A8035CB803C5F48484848484848484848484848484848484848FCD3ED74797B9BC3EE4071430FFBF450BD443CCE5C39D26126120944A21BB0D96CAADF71DEF6467E9A6ADE72871711B28989EB64B3737973F6BB5FD2AF4A48BCC84ED7DF791D655F5C82128DE25AF1594C987D6CA7EB69A8476347AF6AA7BBA1EDC2B98F0E6135B58A73478EA15D730987DF7917B3CA2A2E9C3EC565E2D967E8D65C45717D1FBC633DAACF0F71EFCA2F96A3BBAD0A5DDA1CE7DFB51961AE3FC5C8BCA9E98241572D9F89C46BB5D3A93C09BBE385ED915F7B26112DB8B6D7F6C65CF90338FF1212BF55D01A8F2C07E55C48BC126E9A03F0599A71F4F0190C89B370EDB522145D6915E7E111149D2DE2F3C3BC678ACBB67774E1C807C75053520D6D5D0BBA742DF8ECE47958AC43784F9C29FEE77C3D3CFDAD05ED9FFBFC0BD45556707E3B6E637401A6B6626EB7ACB997DBB8DA7A1BE6AE5BF27948BC12C6DD6158F439DF2B7FE4119EA656D8FF6C7B3BF3C2B384AEB553F58F718793D8CE6CBEF8BCADBF5DE8F723FA7B145D90732F2121212121212121212121F1A6F9743B7A5E2A4B31B4299625954926133B31B4238846437C7D774C09B2CDD9AC66354E357D4F3C08AFDFC7BC10EA635159627E5EBE1E95A17AF17862277FE316DC2E07FC5E1FC787A576894F47BA68FA5E8944B0B0AEE09D77FF8268585139D514FF8DFA20BBA0C331C35CBADDE3A77C8C6E578C63BA46133F887A0F45D96F90483F11638DF1E767D927CF79258FB26AFCCEF985791E37CD2171F66C3B7AF5DDBA72AFE36B31BE87621CDF731F81D0636C44D3621CDF8876E29C2FCFE64A88F978CCFD51AEBE85F5A418C728D70BF8E25C6E7BFBE782FB268E21F5DD3FED87CFD4C273453974E89AD9E650E3C8284A84ED9FE1E09CFA996296E675F8341FC40BDC3D2FD4063D27B2A7D258FBCDD370DCE9C4E27DA5807BE3F5E5FADE62BE4DEE7E1C33CFFB260E7C22BEC9CF6CC6E1E6B573B5C1C86DEDE324EE701DF39CCCD765A7737B9C18191D60DBDCC01D3DAC263D73D916525B78EFDFFF13576A1AA0358FB3ED4D8D1574A114A6C17E68759DA83E771666519FEAD56A3BB12ED69D621E4279533BAE363663D26C50EB5DACD6A2BBB30DE6B101FCFE77A790D85460E9ACC287274A70AAB488FBA0F9F05ABBF97BCBC820EA343A9CFEA218674E7C5AC0FB4FC77C9CD7AEABCF8A9ED6D282F18F8DAC406F59126D4CA2BC7A56D40BA3A23188B5D50486FA9660777F5BB07EE8B95CBE700DDB5B49F1EC521CD7D3E20A712C4FBA9FEDCC6A41FB17ABE77043AB88712C731F25757358706F887138F0D9A743621C76516F19767B04B54556CED557A7098A71DCC53B1F8EC3630F8BFEF6E732F57EE511CFAA12D74E1E8532EF4091F8FCF1D98BFC1C26CCB4D672314307469D686DBE8113EF1F46E5E5336C0BA539DA4EE5D6E3B5D63E8C8B39AE2D3EFE7C4E663DE8D61BD99E4AF6D7AEB61AF434D58AE715537FA3CD6D065CAD6EE2BE9B3A4D28FAE2AFDC77EA6942ED7B7421899A53A7C558CFA3DB50CD390E2F69DAB92D5E7B7715EEFBD0A1E37896CEE54E71BA3DB087E2AF4DB736363683095357C135E28DFE52FB35D729DEE5FEDFD5A374AEEDEC0BF4778DCD5A6CA5370AAE659F66E19A9EC0C81DD3AF1E1FEDC3A4CBA3D8DB1E8FB780FF4671ADF2B1B4F76239F204EEA9B0789EDFC0BD27BE16E5C989722CEF0CF3F70EAA4F71B232D99FC438827BC6FD847F07AEE9AF115FDC78E9FDE7FA0B17C4DDCAEFC3B7EB359C678A78D9219705C5E55A319F11F5F9F17BF0807C3DBBF5A13ABD957F8FBBBFB75BFA5F7A5FDA0E235617DCDCB74E538321C722F71D649E61A6E037FFA267E60E27F6F5DDAE37BDB11C3F14BB271F9BFD758138FBBFC441FD25105F7263FCE0B5FE30BC821FC57BF787646EFE627BCE0012FFBA763ACA755B7BE928DBE46ED654B0CF0FC5BBBC9F48A3AAB41C7FF9F34534D65CE0D898F4CED08932B93DB583E35B7E70E8433CCBE4F69EB2EA4654DD1EC090E1168E1637A0BB7F143DB5159872CCA2A7A703C74E7C8EF5D92EFE1D375736E6DE4DED5A2E3B303CC9F5F6C56CC86EA3FFDDDFC1555282B0B602B395F558EAEC81F3F467986B6AC2ECC97398385F868DE03CE66EDDC6DACE3B6579780249E7A45C0FBF51E8C41AAE2A390E9F90E126173630D45C82C6EB463E0F3BAD2678851C90978FE8FD49E7721BC5025196590EA07897994C82AFD1E77048E1D898169702FB50EEEC6EF644718FE25B12777DC7BEF7FE9F4EA0B5CF82FEE672D4B676E1528D0E13069D58C33E5EC3F54D0DBC86432B299C1167EAF07200DAAA1251568BF2C66EAEB7772CC9B14E3C107BEA0F42C67C2CE48255211FA4855CB261B3E1A1387BC7C41837C43DFEF46C0B4A6F1B5686EFE0E19A78FF757460496FC0CF322787C41ED01E4AB26AF41F94332524FE51996E2B1D414D450BC7C7E9ED688546671267093B340D1A182D53AA6ECDE15FC6B4C508A3CE88FE814EAC87FCF8B2A89CCF073DA6B19C4F65340393A907FDFD66043C5FE5CEEEF723AC2BAB16725A60D60EDB901EC65107C6A6DDF03A9D079EE12B2F96626A7A1A939353EC9F91CD66E017754DC36EF15E903E6E12AF16AB6A60748475C11DE27C4B6B98625551AC26D24B52AC2AD6F9A5B639D65445753D9CCE5C0CA97CEC28D29B7019A787AF8D0463D0DDCAE5790E6C660AF2D69DBF701D36C738CC9641DC13EFFCE5F4369C1E37A6867CAAEE46424242E26DB3D3914C47721CC96FDE1DBB5ADEC662733DB7CDACEFD866DC2E37B761E8E9C27A38948B49B9B1C17221E536241BDC4139690936AB038AE883387C6457225990EC46A46F93B1B7255EEB5922F6141D65F5F8E8F405F4B514AB7C3A3A3350EEDCD5F54D382C7D6CF3A3B3419FE6BC3C4B48BC313E1DEDC32FB339705EF2F905DE2B57C2E1DCFA147BEEBCDFC77BB622BE239BBDCDE616FDB8F6F92F14DC9BA8170AF8100AE5DA21FD46281495F608090909090909090909090989BC3FE5941BFACE06CCDE9DC2D25A18ADDA0EF5BB7BAE7BE8BB338999C54D8C1ABBE0F02B05FEED1212FF1F303AE9C4C8703FDA6AAB114DA75054D996F3737D94C59D81414C5B4CD08F7B790D1B6CFE02FF760909090989D707D2F35A77EC747EAF4BD5212FAE6EC2ED245B9D156EE6B6F9110C0419644FD3E9745C9674C294073CCF9DCBE7B7274EDB667885CB1A8C06D63713378BAE273657D5FC470EAB95F5C3114539D01F8EFA78F060FDB92E790F372B9FA748D9952F2E1A8BCB9CD16F93ED23B58DB2A2D3D00F986134F561BCAD3267039EF1E0E4278771E1D409949EFC2FE6966532497CFAF151B51EC5B89C71DAD9AED6A969166B5EAC9F901D138646F4F51B30AAEF28E0BADDD2B6637C6913F5D515B04DD9D03F38048F53C1D85D2FEC63832A2767F7FA23BFA185B95D1CC503B859942F6E746418A31D759C2FEEFCE54A79167ACBF6E1DD5C23972DB77E7239E8B699D7BCC239E2025C96FC1AF2F582E4276F73EF70A0CD6C8F23EE31EFEB62DFCEFB1333D72D16E17D98F673B20F261EA555BE34E514253BDD813CB344946DDCF9FF5F942F6E6F0C4E897F4D508E41F20B264E6836AEC83991F84D2121CE9673E2BCD07DAB154A228BCA9222BCF3E171B82CEDFCFDE7976AD1AB6B82DB580F83338269F1F7CB4F0EA1ECEA45B4D495E2D8F1AB882F4DA3BCAC92F9DA86690F73EE2E5634A871E025245E2786C69D682D29FDD5E5E91D6D6CA986C9328A99315301CF3920642AC93B929090909090909090909090787320BD2AC59334B794A8BCB87CEC41E2CD057C7EE624E7F9180E9B9973CF555D2F630E06C78FD88CAADCBB7C2CCBBC6D4ECEB1C4EBC6F2F8148646DC28293A8BB5B971E6C5519C1FCA1D77A3FC06AE56356275CEA9FA074D0CF7E1D01FDF474949116E569573DC4BB2A1E56364CEB866399625C5B594BA3589378119879F7DD2F2FF533CCA9C2DEED9817E9A7BE39CE5E35EEEE6DE512CCB7C5C4B0989DF1447DA6C7DE538951212AF0AFDC05DD45DFA92635667931BFC976C6CC449AE2929C7A993E7D03E6444C59562D8951826F5751CF732EF57D37BBB17D3E10C4ACB2FE7F665F1B9B1AE82ED7BC386165C397B147F78EF8F6CBBE33375280A87D55CE083F6C19FAD38FAE5147A3BE6D035BC8E73272771ECF80C664C41744DAE88FEFA9049A561BC794F3E33897D985C8861D1DE8756AD16896492FFCEF81496E9A6C5BE5A55AD613E7D281CE2DC72018789653DF2AFA173B06DDC86B6AE3EBCFF1FFFA6AEE1FAB2CB42BE0B22954CECC4C27C9EEB76F71A269BDFC49D2554D5DE434DE55D8EE51F893D4163F52C82C104A2D1C7A2CC0FA2BF0762ADFF0CC5BEB62F96B48484848484848484848484848484848484C49BC0FF014E974246 -SmallImageOriginalSize=63600 -SmallImageWidth=106 -SmallImageHeight=150 -SmallImage=78DAEC5D67772249B2BD3FFD7D79BB67CF9B37BBB33BD346D3F20610DE7B84BC6B21E10442786145E13DA8A59799A89050F74EF7CC6890E66D7EB8072851542AB2A2226E6444E4DDDD1DEE3838383838383838FE2084A20998F55ACC7E98C5DB7733B8BE8AA2D9E841A989A09AAFA05028B0EF5DA43B90CB7CEC6F5C6ED347BB3B403E9B9D3826081D54851684527B7CEC2AD340365D9F38C6317D04C29798995F81D16CC296C502876B073AD51A36DD6EC8A5ABE80E0648249328B787585C58C6CCDB59ECEE6DC26575432A95422157C26C772079718EC0990FC37E1717E72178CE4E31BCBD433A9160D789C652B05B9C8885CED0E9F63020F09C7891CF5CF179F8069484324AC5D1332E188AA15E15100E87D9E76AB546E6E986CD53AB3744261165C7AF852AF25729A43379B41B35361F8D5A0D837E7FF4F7421199CC48573BAD167B2D96C839D91CCAA5029AED2EEE6E06E891B96AB7B99EFE16FB64D045512F37C6F6A958EAC26ABAE0F6E98550AE35918C86278E25133574EA1D24E395F1B168B48262A139718CE3F961321B215F9BC3FECE3EE6240A589D1BD8DFDBFEA23E198C2E5C27625C6E2F80588CC87DD041315F181FEB133BF2257D4A24B2A857CA0FB6AB2470194E097AB50EC35E03EECD2D5CE6AA78F7F31C544A3576B79CD839F26369719EF875CB8804BCE4FB37383CF543B6B60CBD468FE5D97758D598A0536B31B821B62A9F4591D82E9FC78B7EAB82502089CB8B532EE767402197C7CDA0CBDE77BB5DE473574C9F1A8D06791D7CEEFF954AE3F719E29F75FB43E293B5C6C76E08A84F4DDF379B6D0C06DCBF780E38EC4E988D3AB8DC1BE80E6F7172748C7441403414607E75321E237A91C691E70885ABD857F5A95A6F21110E73D93E3392A9E4589FA8BDE9751FEEFF3E99B776B3467CEF325A8DEA67FAC474F0893E513E35E872CEF3DC38FE783CD68FEF7EF8114A931DFB4E2B6AE49995CBA49148672193AF138EA443E0CC03A3CE00A75D0FA7CB895C3ACE6538256473B989CFD56607834E633C4FB57A1DB7C41F6431BF7607C36E87D9AFD167AE37D382C56C81C5A862FA51EB0C98DF572036C6ED3A844EABC3D2EC12D45A1B0EF776219548A0942B908A5D70D9BD0044FD106375627C4EF4DD7AC447A07A9423BE218DA3723D9A3E0C7A351CDA55BC793F37F6F72E6219582D66B8AD66F84311386C06D82C26FCFDDD32C27E1F97DB0B207C1E44B75D1B7FA6FE5EB54974A6368A3564F345F4DBF5C9D8DFA39804C7F4F5A9D21AB0F8C4637DF2F8825028E5D8DADE8251AB81D16C80746591C526B8FCA6E8EFA569FCA13B5EC3A5F109BAFE53AFD551267CAADA68A156111ED9B1DB89F36F789C6F2AD8DC70C065528CEC13F1232CDBFB784F78945A6FC2DFFEFABFD029658804BDF007CF31BFB0C2E2E6743D96F22DAB4E8E77AB72FCF8E63D56642AEC6FBBB84CA7609FE83C3DE6537DF2B95615ED54097737A358453A959EF0137FD5BAD6576C1BD5E956A3C6E7E6096C7627D10D62A39C76B6F664766EB278B98ED822DFE116CEFC21FC3433C7F2238C7235CC561724CB3FB3FC88D5E5055C24928C83A90C36A64FA26D0B9E1E30DBA6543CD8369B6564DBAED229D45A1D48E54A6603E9FDA124FAA95897C262B3E16077F377FD4FDD6A0D05AF078733EF7075EAC5E9FC1CFC3A13922E0B023A1B82F2155C589DC89C9EC0F15FFF8D0BA30ED9D353A4F60F11D2EB5121E34BEDEE22E674E1EAE80801A315FEB525782432E47C016CFCE56F08198CD8FBFE7F1075B9B1F5D7BFC0AFD4E074F64784887D8F6EB97169B522BEBD8BD4C1C1F3E4A9F8FD18746A135CEAB19E7C2D3F82C6281EEBD6635FB148CE154AC5CF748FF22F1AB7CDDEE733D17912AE0BCF972B556EA053CC23E33943AB788DFCD919AAE419701DF0A1924A22667740B88CA21A8F22EB0D40885CA02D0864DC0DA4F67630EC34D16B3450CF15500A06D06BB550F09DA1409E3DAD4216D71731942EC2E4F7BDA891FBF4D2B1817A3A89AB837D14BD5EF2B7004A012FB95606A5E8F3C4D6144A05CC5A29B12F725489BCE45A2BE66666B0B7BF0F85D60CAD648DD828352C263D84628E3F835E08E7C1203EF55A108412DA649EA87E3D8E97F7BB1D0C7F831DE2785E3CD627FAD9EB3D87E7E488CBE69521954AE176385ABFA59FEBF53AAEAF4BDF18179C5CEF1D0C065CA653C087353916250A2C2D2C41A552432B5D849ABCC6CF3F221089E33A9B86CEB18FF585B7D0A8B5888502706D1FC2A837B078FB559AE7AE4E031926E71BE67F1573590C899E0DBA93F90D85A2305EAFE5FA34650E65B1E0E4E309565484C328555C26AFD8E77B9CBFC7F1E7B74F348F7C7B2739CE27B711DE2D9E4B6B359C66038E8E7C506A7458599843E094FB8ECF8DC8C505B34F8D761789680403C2ABDA8D26EE6E87280A151677A339E699ABEA289FFCF613AA95CAA373EFC679148F630F5CB6CF10870D86B17F1F83A2BE9B9CD8281AA72B0A4D9C7A8E584EAB5AAE45299746D01F82D561C1BA64110EA70337BD3A97E194F035BE44735A9B845BD13CBE742647EC58E6DFF2A7A7C81784718CFD5B7CC14AA3856AF99ACFCBEF8C97CBD7A4989B5BC4E1860516AB1D89F0F9047FA2B1F2C58515162BDF3DF240AF56636D5D0195D688D3832D763DAD560BB3410FA1FD093AA391C5D2F5360724AB6BD092CF1FF7F7F8BC7C251FF669FE118B7FD7EAA8DDAF1909C446D5CA0F39B34FF589AE03376B237B95273C4B7CFF589F447B76CBB858F18BD7E4E0E0E09856BC9CDA8C559516EF7FFA17C2BE132E9F57BAFED4BF19D517562ABCD6F655D7ACD50778B7B08637FFFC17B6777661D6A9B95C5E211A842B9D1E1F8F7DB778F421C620546AACA70397D3EB02ADAB8984FC2CAE476B0B63850A5AC534FC6701560B70767CC2E7ED95D57188B97C34CEF710A7683EF441CAE7BF29DE40F9D6B77E97E31BD7E3F355FC3C2B61B5EE4EBD121BEE2D7C985F64BD0A14EB3258CC565835125CC692F0FBBD6C2D97D6F57A0EF7D8B9629DBC644502994C0BAB418F44243CFE2E97F1F3239ECE61D86D8E3FB75AEDFBF884C07484EA5D8FE848F90B79E634474F8C7788DFE5FAF4FBF0665E02ADD102ABD301A3DA8C0D930E59A10BF7B18FD9A683132F84E2D5A806D16A87CDA8817BF7084A951A0B122524EB4AAE2B53804E6F44AD720DA1D640A736AA6FA7B584B57A8BD9269A37D1E976276CD7631DEAF46EF87AD314406D07ADD1A53686F68EF01EED72B9BC52FF8EEA0CAD736FB67B9FF5B3E478C1FA27B71B76B396D533150A0FF9E3815014FFFCE13BFC3C3F0FE9DA3CEA02CF73798DA06BBCE18067FCB958AEE1A6C76D0F8F47703C473CA228D431ECB53E8B47FC5A50CEC565FB8CF188AB22D6253ACC7F780F9D4689B915298EB69D383AF6C06E35606B6B8BD5071E1C8E7295D6D4C671FEDE812704C9DA2AE4B235E8D46AA83566168FB84AC4E0DEDC40215F60E072FEFD2855EAB88A4751AD562773FC126914B3A9B1AE89AF4FF3F7D871C2B9229128BAADFAC471CAB138CF7AFEF89E9CF87B628CEEECF070224647FB21F53EDDE1FBBFBF8151A7C2CADC02F406134C4A058C2A13DECF2EC06AB5E0ED821431DF01565656B1E3DE60EBC71764CEAD4613ABED35992CAC0766301047A725303BD86A14981D2CE446B968F43DBD2E45ADD145EC22C2FAFD19754E440347E373E45A0BD6D725504BD760D4EB88FEEBE0DC3E81CEE0C0C2F21A64EB72380C6A167B599E5D66F59226A39EC559ECAE519C45EC8546FBD3D07ABDA0C7834CA14C7ECB31D1ABF335C45FC41839E5BC4F75A2941ED5BCD37E4862EDA1EFF498F51A63794CC90CEB91148E24580FF36AB38776BD8233EF19FADDF6A87EF1496DEF0D8D13B26337F7BDCE6F58AF73F16FF4FD635DA4BDCF69EE6E2E9B677DCFC573D8B8AE7210F2E9070EEFF5A1DE1E20F2A8B638114F20954CA0DBED13AE78F5994D66E3B9CFADA2BF4DAF95A57D9FE85872742CF5177B2E74AB0F6BEEAD7A0FBED5259C4BA58898753820F627B8BE8EA2F718C2C52584CB30863744268483356A3D1CBF7D87A0C6864B8B1EA70B8BF0ADAB7069D492732DF013FD395B9020E5B4E3E38A06319719018506E9D373C41D76044D0EC42D66748532AEE339F4850C0A01F2FBED2672BE20DA853C3E9131E54E4F518CC45089C7C8BD71874AF81CBDCE0001951EB56810955C05ED4C0C177627C25A13426A15024BEF11369B903EFC8888C58ED325097CE4F970B5BD09EFBA0687330B88584D6C6CF1CD6DC46D0684B45A72CD1C6EC8FF973926F75F7780A2CF8B4EB34BCEDB61E32CA5CBC81DB82184FD539FA7B630D9DFE16630C0278276A5864E6994ABDA6BB531ECB4D06FD499ECAA89914E0D692CC37F8E4FF7B1F5A650432395BC3FB748CE23F764BE884A3A837EB58C5EBD815EA33EBE8E784DFA9B9FFA0372DF8E8E751EE56BD0F77D727D0A2AC31EB9AF3EDD927B8AF0BD8E501C9FCB628FA90C3AC5ECF8370BA7DED1F1C8E5E8FF20D7AF90E74193E81DBD161DDB803C376E9EC4F3C571D0577ACD6676A4A7BD769FCCD735FACDC68B3EF742843BADAC2EC268329167FF31CB45DFDB734DAC1772BC02AECBF2BD4BACD743A7D560B9E894FF0CFB5D2E9FD79C8BBEE7C1CC87259CECBA990F37E808D0D95C703A5D2C3EC865F44AF2C64A6556B711277ED2D3BE611C2F546F43FC6C9DE30842EA9CADE9DA8D06C649D6D6B5D04AE6597DC6D1CE2E965536C865522888BF26721293CDCE38895C678351A381D964647D659F7212CA8728F7621CA950609C64DBE1187392BD8F67C4F7A8C1667343AD94626F7B1747BBDB285E55A027BEE1CEB61B8150041F7EFC1E66B3193F137FD44CC6B94138CED33E4CAE432F199F0A5AEB06CB4BA47B1D687466C60F8FDC36E6CFD371D11E0D743CF4D9BEB9B5C9C645C7B8BD7B3CE66E62CCF3D817C6E2B20C8AD565EC6D6CB1BE4DAC8E6CC703A7C386378433D29A973FD43F27724CE7AE512EE6C7FD61292749C5235FE52419C2452827C9121F4CECCF2CF6A7607ED2234E42F7861239D235E191F47A2227496747FD68ABC45FA4F18E803F407C191FF9FB0099E4E5C33D751F33163F7FA90F53FEBA8C7824C8C62272B7A739548FC7C5AE7F2F773AC6CC557ECCDD686D6599F8AF34C7317219C399E78CF0FF8F8C4FD1EF6F6D1FA05629FD6173B3AEB3426FB2B0FB94EE931138F938BE77685E513E9B61358526BD9EDD6373B30BD0139E42F323F41A2D1BF7E33D01C47E617A93151F6666880F7ECDEE51FEBCFA9D6B869BEE07CE707F7F89F78E50A9A3DB2673771E21CFA2877ACFA7FDCF595E2D99AF4EA336D12F4C84788F72F0FC88FFA8FC57629F6AB5EA2FF76FC9F23E6FD306B537B3EFDE337B43FBC346CECFC6FBD67CF445C63EDB8ED30E857C7DBC5FCDF0F686F81111B406B7F8B8B7C565398D182CF17F9EEE47F399BF5E9BEC45D0EAF411F47ABFB8569B2B9450118ABF7D0DAC54E2F3F20598AC362CAE1B60D529D9FAD3C2A28CADC96AE42BE335D9C08987F9792B4B8BD04917A0D319100A9D43A6D2C365B5C361D9C0E1E10E0C062DE13ABB706D6D130EB30999D6886DBB0E21EF192C16EBB8EF28F57969FF66BABE4B7B3ACB88CED29ECE16D70EEB0B63356A2097AB70DB6FF239127B7E9C07BF58A3F174FD89C568C3174844C3885D46512C0938390DC0E7F1E084F088808FF089B333D4CAD7CC1FCC90F9F09CF910F67BC8778E0817BA1CAF1389FC89F212DAD359EC2D2BAE5BF13AF8CF215328C7FA4479FEFB1FDF42AE94616D7196ADC15B1D1B989F5BC06DAF81DDFD3DA25FDA515EB94CC6E5F782FA54AA36D9DE1A622D21EB8F7CDF5F45E44D7C3F8097D5271A8FD871EFB15C0031778FEBD3EBC068AF8DFE443CE2B19DA2BD54FAFDDEAFF2C5F2856B34EFF7E7B8BD7BE859FE4760F00BB68CFE3FB95FE07B99FC3506BDCEAB9D1B83D908836A0DF275191285067EFA69060BCB52D81D762CAD29A121F669D3E582D3B50D97518748C83351FF44FBFA6BD54AC2AFCCB84C5E319DDCD9DE846265055AF29B1F1664D8773999DF20914AB169564249BEB32A5B677DCA3AC4EFD3EA4DF8B0A260758B16E2732A546A08F90CD35FB56C95E92FEDA164B0386027BFF57E7E1D6BB3FF22D752C3E574E2E7B9152C2FCE23123865D7B1D8477BBFD1F1F9887F4AF91ED57B9B5ECDC64B7B30D17D0822E932DBDB8AEE4340F7B68AFB0F5FEF9A12ED31446C4FB3F990EB4A63F913EBBAB51A03E54EA23E8DEFE19B879E459DFE10C562715C3BF8B4EF7936936172CC6432E31CF6A7EBC78FF7D6A87EA18F05D58B783C05A19867EF2967FBA51CDBA77C8F8E57ECBB4473B3FB9DD6673D98383838FE73FA1BF1FD35FE1CFD8DF8FE1A7F0E507F4FCC13B7DA9D989B5F19E7896BB51A48D6A42C4F7C50CDB0BCF206B1F9DFFDE33DE4C427B3ECECE1D0E1E6729CD61AD47D9EB8F859CC13A7313E314FFC6ED06179E5347741CC8FF09D87586C89CB700AB534ED21EB17A655C9B1BBE56439477AB986E51C71F9BCA2F527C27FE8FE352CC7A1D160BA45B94999AF03BD6AD098F90FFFF8010A850CBBBB87B84A261E72EAACD6899C3A2EAF9705ED9B4CE308E9747ABC4FCD382696CE22168F23958C73594D1195CE103A5A0B68DE603136DADF88CBE5F5A1D51BC2EB0FA25CE435CEFF5FEC93D56485412563F9DB74DF63B37D77A23E77C7AE47FB3A8B6CBE886EBB09E7C6FEE8FB0E03FB7E5EE8C1A8BF60FBDED09CEDFF6BEF4ABBD25AB2E8FEE1EF73AF97EED5FDBAE3D31827509041101050509C40258E380B320B325E4066544C56571D8440C424DD79317EA80F67215C8AC2AA7B3843EDB34FB95A4790C5DCF14C191AC504C64664C84443621FBE5378DC7479E9C339EF1D5B2A7430DF9974A6A7BEBD526DF4D4E772BCC3A7E6E73AA92FDFCFFBDDF07C778C3DB6F1E4FCFC88E7B323E1107C6CCF443D5C7F49969A3059ACCC975B27CCF8BCC10003AFB13DDAA63A7497DBD553AFF1705785C3E9A6DC041F7FE22DC061F1E2B6718F9D8363A895E318579BA816D1C39EBB995FD8AE41E7E33967A9C56627FCEDDDDD477CD8B9C6E94E84DD070FA237CE37E2A7583C8ECAE3990DC7E6A552691472395A7B2927A120A5FBE068EF49370A528DADFD036AE506A42CEF6358A1DA005E8B4858F5741A95D24DDFBE867C5C8E8DBFBA2AE18ECDFB656F1C21BFC63E65A406FB0C619F7E76FCC4CF77BBF589EB4B3412EE70C1B6CE461F9E7D7F2A5343A1D8201DFCF21C95F7C849C46262FD9FCBEF559A70ACAC627575AB639F6CF38B089D7BC83E790E77983D59EDB14F3B07871DAE8F78A286BDCD48ABF6E3FC02B33A35A6983DF37B4FC83E9D9D1E63C16CE9B14F3BBBDBC4CBD8AA2FE3756AADDA8378348E0DF7A6B04F7DA4D26812CEF5E6118FC7ED533814422E9D22FB14895FF7D413B631067C9FB87D3A3B93100E17D9F87207DB5A28D7A9B68EEB5B2070D9C39142588C5C81F6A9586E321F2F8393E314EAA53AD55945825EB12F3F689F782D2BF7DF5433A68E7EB4EB09B9EF76769185D79B21DF4DACE5AF8B9FDAFAD1AF468AEB46D02FC11FC8936E8875FCEBE5F8F882D9925DC2C3F29A5B5E473E3DADA13AF2A294C4FEE131561C8ED6EF64572F5D8E8B1B1E1AEA9C5D717BB6645BA078CB60B042A79E66716C15EE0F9FE3ADECCD2DB6568334BEC0F6DDACD6433DA3677EA0596031BEE54B64252412C9166E3C77D353474E3156A3D1F11B784EE1F0384C8F3C8FC07FF35A755012D9B36422FDC49ED51FC7F3CF0F850A6CAE128DCF48059C7AF6C51E7C4F3EE2E69EF0AC32991CEEF595BEF6A98D51E5EBACD56AE0746EC2BEB848FEA158C317CA47301DE8C698F78B9FDA1855BE4FDFC311D8C2C5DEFF25B8728E4F7FAEDF4D77AFDE9EF9EB0DE2AABBAB56F0F0F0807ABE8046A9D4079BDEC403FBFF3857D85DE5F5D5C4D99796997E28095FBEBCBA81856527F6B79C2C96B9C6EC94128AE969A62F768A61EC562BAC0B36F6A8FDCC1FB1E284D938477DACE7980DB3CEAF103649A79B8176D6407CB1EE750771B68CCB6418FCD71B7CD874138F08CF61EC78F6C867E4D8A6A8D74379418B659E6A0A6D2C8E732D5BE0DC7061CD6183D66CC30CB35FFCFEE8EED57BEA0BF6F4EA95AEC36C6F8A14675FD89D70FDFE3B929E43E42321845C6E9C194C389A52E172DE8EABBD4384DC7B4879767134318EE4D101BC66139AB5EAABDA27C27A3FE2CB5BF518779DB8289588F5A987EFE5358AC513A83DFE4F1C1FCE39420BC50A61B879AD60B95862762A835AB58A543249BC936D9DE43E63F7F816A6BCD8C963703EA536F776B78E737DEAEED5DB9EAF473FEA2D7EDA3ABB56088749979A9CF32C9145556273E673A865B22844AEE87A2D974396C5E6FC3173718AE6ADE0441322448890D72C79E61F71AE33B116AFD3DFE3B1D3E4E01FCCDF536194F9418E0573A7E6BD3B7E32D89689CF92F755938DC9313230445C2E626D5FC6DF6B9FEF76D7F775D7F87D193FF1BABD1AE52044BEE7A5F5C9A255C0A8D343ADD3616C620A53B20924432DEEC1B9B939D22BCEB5C36BDF55063B34CA492C59E6C4BABEB03EF1F3A76221477150E30BDEFBB65E7D0F27921021427EAEFC2A1E173E6F5EEADF13239BCDFE00B75957DF5366D7A5AF7C167FEFFFCA01FF9C7D0A0443504E8E40AB9EC6ACD60CFBAA83FDADC0F8841C1F6FCB5872AC60CE648469C18ED5B535D8569C30CC1A31C57C43CEB1EB39F5C16CD44239A521EEBE7FBE1D817CF00D6CE659E29F989A316170528D759B857E3B6DEC7BA8140AF8CF0F506F34B1B816C3FBF707989D39C4EA6A106BCB7E385D113AABE2F86A9BD90CD7DA065CCE4D2826A771E1D9A66BBB9E14FB1E176CDE13D8E7CFF0F6AD9BCDEB82693E8079AB9FCD7BC15EDBC6E49807478F5841CE27ADD7EB5BDC167356CA416EAED8697D4627672057E8A056C8B1EB76515E51C1BE27E515990D9FB3D8D8732D7111B6FB3B8ECA1458776DE0CF6119A65572787676701E8861E4DD30060606303CA184EFF4A8871F83DBF8C8F5F31C785EAF0FCD461505666F32A974C73E495201D7113FC54FE9EB147BAD3747CDEB78EFEBC59EDC5F6F9E5DC2F9E931F1EFF1D723F1341AE5FCD37C76AD8112B36FD96C1AD2236636C3D6EDCB73E078BC8468ECA673D6751D4F50EFDEFBC6E71C79345244389847B5D4EE83F300AF4F62F33E3D532E569BB88ADED03C9C4FDA7BE6C5ED6D1DBE5004B15080D6A28593FA7C5ECD799B6F2A8D0EA719C7BCF5C3EC5EFA7C908A559C1C1EA150CC77F0FA12CF21663FEF45F719423F9EDDEFD1A78B7002EF8646D83DF027542A0536D8FDF16E781406A6532A959A72A5DCE7B3595B7D0026347394131F7A3F8275BB1DE37205DCEB761CEC9FE3D0E3C53C8BBFCC7A153E365A7B5BC91570A29B8547398323A506874CF6C727716A9CC3DE30BB37FD4C2765327CBC17F9D06FF97BFD84E7B8797F779F3F84643CDA793D148AB2FB3982005BDF42218F6C3A856AA542B8D6742A81C06510D7B168E7FEBBAF3D8F9B485FF8A81F76FADC277A557E439FBCC1089699EDD06A94C43FB4ECB0510FDDD98515282706692CE72772B9DD383F3A81D1B185AD656387539673E5735CAB41A3C5E9D93EECD605B1E63F419F786EA15F3FEA782CC16C439CE95300D1901FE9AC84643245E748D974F209AE35CD3EA35CAD123FBF58EF97D327D7F63EFEF6DB6FF4FB356B34120FECFEF62E56D69D70AEAF087D7A25FA94C9E65BBC5F6C9FE2CCF6848241E68B5DB3C708F3D7843E0911D283AF63B174322E7A60BC66BEB03BB6479B9B07D0A89530982CA2DEFD95F28595ABB7F0EC3D8F498D5C5DF7E5F727AE78EFFFCFAD43BD3C0AC27E7DB74F71730F19EFD7AC37524D2EEF49F6E6CD3F3034340093C9846C2444F1D3CA821EBB5B1FA887D898DA00ABD144393A854A8DC9B141582D4618F466589984FC5EE2D5E63585D44F3ADAAA8FD2E8662997C1E754AB3550EBE621974FE0E2705BECC53318539E67CA733C1BF3F1EABC2F2DC7C4E5728465E5B9077EFDA65441AD52A6F8A9D5C7398AD0E52502CCDFE37E21DF271E57454301A43312FC7E3FD51756BAEA082B954A07CBDA3EBFAA3D6270C55E7C5D8E0E4EB0E9746146AB265B55B9FB44D8545ECF3436360A857C127ABD0E06830146162FC9E40A2CDBC599ED4B0BD78DE65DFF5C1BC79986C361C29AD27DCFF486F7FB14EB2644487F210C78F9F9FEE45FBB26E4E564D1B480F1FFFC1D1B9B4E9897D630A5B750CF57DEDBFDFDBBF7181DFE3734533A6CBA9C98772C62CE300BE7DAB258BB17163F3FCFBDAD3C398F95F23788065B18B04C8AFB7E75163FC5892345F464FA05FAC479554C7AEA97B1E05886C5F10133137FC2B8B08677E34A8A67E2892C16D9F558F8121AEB1AE6B532AA7D920F0F507FD076BDED9A2B8EC13F9C5872043135E58149EF834A7B8CCDA53072E98258EF1F906E9E94568EBBFA044FCEDF731908533D619A788B6A7D713CD757C50E36A15ABD43A9C83FE7238B9BEE91CBB1319F3E8A35172244881021CFCA7F013CAC64BD - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" deleted file mode 100644 index 3b0e257..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/TABCTL32.OCX" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" deleted file mode 100644 index d2aff24..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.VBP" +++ /dev/null @@ -1,45 +0,0 @@ -Type=Exe -Form=frmMain.frm -Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\system32\stdole2.tlb#OLE Automation -Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx -Module=Module1; Module1.bas -Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#C:\WINDOWS\system32\MSSTDFMT.DLL#Microsoft Data Formatting Object Library -Module=USBIOXDLL; USBIOXDLL.bas -IconForm="frmMain" -Startup="frmMain" -HelpFile="" -Title="USB2ISP" -ExeName32="USB2I2C_DEMO_VBCN.exe" -Command32="" -Name="USB2ISP" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=2 -RevisionVer=2 -AutoIncrementVer=0 -ServerSupportFiles=0 -VersionCompanyName="USBIO Tech." -VersionFileDescription="USB2I2C DEMO" -VersionLegalCopyright="USBIO TECH. ALL COPYRIGHT" -VersionLegalTrademarks="WWW.USB-I2C-SPI.COM" -VersionProductName="USB2I2C DEMO" -CompilationType=-1 -OptimizationType=0 -FavorPentiumPro(tm)=0 -CodeViewDebugInfo=0 -NoAliasing=0 -BoundsCheck=0 -OverflowCheck=0 -FlPointCheck=0 -FDIVCheck=0 -UnroundedFP=0 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 - -[MS Transaction Server] -AutoRefresh=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" deleted file mode 100644 index 5f48d14..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C.vbw" +++ /dev/null @@ -1,3 +0,0 @@ -frmMain = 44, 44, 806, 658, , 22, 22, 784, 636, C -Module1 = 0, 0, 0, 0, C -USBIOXDLL = 248, -2, 1010, 865, diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" deleted file mode 100644 index 35db492..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USB2I2C_DEMO_VBCN.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" deleted file mode 100644 index 308318c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" deleted file mode 100644 index 53fb229..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.INF" +++ /dev/null @@ -1,79 +0,0 @@ -; USBIOX.INF -; Driver for USB<=>I2C Chip V2.0 -; WDM/DLL for Windows 98/Me/2000/XP -; Copyright (C) USBIO TECH. 2001-2006 -; - -[Version] -Signature = "$Chicago$" -Class = USBIO -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %USBIO% -DriverVer = 01/12/2006, 2.0.2006.01 - -[ControlFlags] -ExcludeFromSelect = USB\VID_4348&PID_5512 - -[ClassInstall32] -Addreg = USBIOReg - -[ClassInstall] -Addreg = USBIOReg - -[USBIOReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%USBIO% = USBIO - -[USBIO] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[USBIOX.Install] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.9X.AddReg - -[USBIOX.Install.NT] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS] -USBIOX.SYS, , , 2 - -[USBIOX.CopyFiles.DLL] -USBIOX.DLL, , , 2 - -[USBIOX.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , USBIOX.SYS - -[USBIOX.NT.AddReg] - -[USBIOX.Install.NT.Services] -AddService = USBIOX, 2, USBIOX.Service - -[USBIOX.Service] -DisplayName = "USBIOX" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -USBIOX.CopyFiles.SYS = 10, System32\Drivers -USBIOX.CopyFiles.DLL = 11 - -[SourceDisksFiles] -USBIOX.SYS = 1 -USBIOX.DLL = 1 - -[SourceDisksNames] -1 = "USB Parallel Installation Disk", USBIOX.SYS, , - -[Strings] -ClassName = "USB2SPI" -USBIO = "USBIO" -USBIOX.DeviceDesc = "USB2I2C" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" deleted file mode 100644 index 430c165..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOX.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" deleted file mode 100644 index 5428712..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/USBIOXDLL.bas" +++ /dev/null @@ -1,388 +0,0 @@ -Attribute VB_Name = "USBIOXDLL" -Option Explicit -' 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http://www.USB-I2C-SPI.com ** -'**************************************** -'** DLL for USB interface chip USB2I2C** -'** C, VC6.0 ** -'**************************************** -' -Public Enum EEPROM_TYPE ' EEPROM型号定义 - ID_24C01 = 0 - ID_24C02 = 1 - ID_24C04 = 2 - ID_24C08 = 3 - ID_24C16 = 4 - ID_24C32 = 5 - ID_24C64 = 6 - ID_24C128 = 7 - ID_24C256 = 8 - ID_24C512 = 9 - ID_24C1024 = 10 - ID_24C2048 = 11 - ID_24C4096 = 12 -End Enum - -Type mUspValue - mUspValueLow As Byte ' 02H 值参数低字节 - mUspValueHigh As Byte ' 03H 值参数高字节 -End Type -Type mUspIndex - mUspIndexLow As Byte ' 04H 索引参数低字节 - mUspIndexHigh As Byte ' 05H 索引参数高字节 -End Type -Type USB_SETUP_PKT ' USB控制传输的建立阶段的数据请求包结构 - mUspReqType As Byte ' 00H 请求类型 - mUspRequest As Byte ' 01H 请求代码 - mUspValue As mUspValue ' 02H-03H 值参数 - mUspIndex As mUspIndex ' 04H-05H 索引参数 - mLength As Integer ' 06H-07H 数据阶段的数据长度 -End Type - -Public Const INVALID_HANDLE_VALUE = -1 '错误码 -Public Const mUSBIO_PACKET_LENGTH = 32 ' USB2I2C支持的数据包的长度 -Public Const mUSBIO_PKT_LEN_SHORT = 8 ' USB2I2C支持的短数据包的长度 - -Type WIN32_COMMAND '定义WIN32命令接口结构 - mFunction As Long '输入时指定功能代码或者管道号 - '输出时返回操作状态 - mLength As Long '存取长度,返回后续数据的长度 - mBuffer(mUSBIO_PACKET_LENGTH - 1) As Byte '数据缓冲区,长度为0至255B -End Type -Public mWIN32_COMMAND As WIN32_COMMAND - -Public Const FILE_DEVICE_UNKNOWN = &H22 -Public Const FILE_ANY_ACCESS = 0 -Public Const METHOD_BUFFERED = 0 -' WIN32应用层接口命令 -Public Const IOCTL_USBIO_COMMAND = (FILE_DEVICE_UNKNOWN * (2 ^ 16) + FILE_ANY_ACCESS * 2 ^ 14 + &HF34 * 2 ^ 2 + METHOD_BUFFERED) ' 专用接口 - -Const mWIN32_COMMAND_HEAD = 8 ' WIN32命令接口的头长度 - -Public Const mUSBIO_MAX_NUMBER = 16 ' 最多同时连接的USB2I2C数 - -Public Const mMAX_BUFFER_LENGTH = &H1000 ' 数据缓冲区最大长度4096 - -Public Const mMAX_COMMAND_LENGTH = (mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH) ' 最大数据长度加上命令结构头的长度 - -Public Const mDEFAULT_BUFFER_LEN = &H400 ' 数据缓冲区默认长度1024 - -Public Const mDEFAULT_COMMAND_LEN = (mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN) ' 默认数据长度加上命令结构头的长度 - - -' USB2I2C端点地址 -Public Const mUSBIO_ENDP_INTER_UP = &H81 ' USB2I2C的中断数据上传端点的地址 -Public Const mUSBIO_ENDP_INTER_DOWN = &H1 ' USB2I2C的中断数据下传端点的地址 -Public Const mUSBIO_ENDP_DATA_UP = &H82 ' USB2I2C的数据块上传端点的地址 -Public Const mUSBIO_ENDP_DATA_DOWN = &H2 ' USB2I2C的数据块下传端点的地址 - -' 设备层接口提供的管道操作命令 -Public Const mPipeDeviceCtrl = &H4 ' USB2I2C的综合控制管道 -Public Const mPipeInterUp = &H5 ' USB2I2C的中断数据上传管道 -Public Const mPipeDataUp = &H6 ' USB2I2C的数据块上传管道 -Public Const mPipeDataDown = &H7 ' USB2I2C的数据块下传管道 - -' 应用层接口的功能代码 -Public Const mFuncNoOperation = &H0 ' 无操作 -Public Const mFuncGetVersion = &H1 ' 获取驱动程序版本号 -Public Const mFuncGetConfig = &H2 ' 获取USB设备配置描述符 -Public Const mFuncSetTimeout = &H9 ' 设置USB通讯超时 -Public Const mFuncSetExclusive = &HB ' 设置独占使用 -Public Const mFuncResetDevice = &HC ' 复位USB设备 -Public Const mFuncResetPipe = &HD ' 复位USB管道 -Public Const mFuncAbortPipe = &HE ' 取消USB管道的数据请求 - -' USB2I2C并口专用的功能代码 -Public Const mFuncSetParaMode = &HF ' 设置并口模式 -Public Const mFuncReadData0 = &H10 ' 从并口读取数据块0 -Public Const mFuncReadData1 = &H11 ' 从并口读取数据块1 -Public Const mFuncWriteData0 = &H12 ' 向并口写入数据块0 -Public Const mFuncWriteData1 = &H13 ' 向并口写入数据块1 -Public Const mFuncWriteRead = &H14 ' 先输出再输入 - - -' USB设备标准请求代码 -Public Const mUSB_CLR_FEATURE = &H1 -Public Const mUSB_SET_FEATURE = &H3 -Public Const mUSB_GET_STATUS = &H0 -Public Const mUSB_SET_ADDRESS = &H5 -Public Const mUSB_GET_DESCR = &H6 -Public Const mUSB_SET_DESCR = &H7 -Public Const mUSB_GET_CONFIG = &H8 -Public Const mUSB_SET_CONFIG = &H9 -Public Const mUSB_GET_INTERF = &HA -Public Const mUSB_SET_INTERF = &HB -Public Const mUSB_SYNC_FRAME = &HC - -' USB2I2C控制传输的厂商专用请求类型 -Public Const mUSBIO_VENDOR_READ = &HC0 ' 通过控制传输实现的USB2I2C厂商专用读操作 -Public Const mUSBIO_VENDOR_WRITE = &H40 ' 通过控制传输实现的USB2I2C厂商专用写操作 - -' USB2I2C控制传输的厂商专用请求代码 -Public Const mUSBIO_PARA_INIT = &HB1 ' 初始化并口 -Public Const mUSBIO_I2C_STATUS = &H52 ' 获取I2C接口的状态 -Public Const mUSBIO_I2C_COMMAND = &H53 ' 发出I2C接口的命令 - - -Public Const mUSBIOA_CMD_I2C_STM_STA = &H74 ' I2C接口的命令流:产生起始位 -Public Const mUSBIOA_CMD_I2C_STM_STO = &H75 ' I2C接口的命令流:产生停止位 -Public Const mUSBIOA_CMD_I2C_STM_OUT = &H0 'I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -Public Const mUSBIOA_CMD_I2C_STM_IN = &HC0 ' I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -Public Const mUSBIOA_CMD_I2C_STM_SET = &H60 ' I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -Public Const mUSBIOA_CMD_I2C_STM_US = &H40 ' I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -Public Const mUSBIOA_CMD_I2C_STM_MS = &H50 ' I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -Public Const mUSBIOA_CMD_I2C_STM_DLY = &HF ' I2C接口的命令流单个命令延时的最大值 -Public Const mUSBIOA_CMD_I2C_STM_END = &H0 ' I2C接口的命令流:命令包提前结束 - - -' 直接输入的状态信号的位定义 -Public Const mStateBitERR = &H100 ' 只读,ERR#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitPEMP = &H200 ' 只读,PEMP引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitINT = &H400 ' 只读,INT#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSLCT = &H800 ' 只读,SLCT引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSDA = &H800000 ' 只读,SDA引脚输入状态,1:高电平,0:低电平 - - - - -Declare Function USBIO_OpenDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long -' 打开USB2I2C设备,返回句柄,出错则无效 -' iIndex 指定USB2I2C设备序号,0对应第一个设备 - -Declare Sub USBIO_CloseDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) -' 关闭USB2I2C设备 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_GetVersion Lib "USBIOX.DLL" () As Long - -' 获得DLL版本号,返回版本号 - -Declare Function USBIO_DriverCommand Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef ioCommand As WIN32_COMMAND) As Long -' 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 -' iIndex, ' 指定USB2I2C设备序号,V1.6以上DLL也可以是设备打开后的句柄 -' ioCommand 命令结构的地址 -' 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -' 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -' 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -' 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -' 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -' 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - -Declare Function USBIO_GetDrvVersion Lib "USBIOX.DLL" () As Long - -' 获得驱动程序版本号,返回版本号,出错则返回0 - -Declare Function USBIO_ResetDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean - -'复位USB设备 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_GetDeviceDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取设备描述符 -' iIndex, 指定USB2I2C设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_GetConfigDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取配置描述符 -' iIndex, 指定USB2I2C设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_SetIntRoutine Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean -'设定中断服务程序 -' 指定USB2I2C设备序号 -'指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -Declare Function USBIO_ReadInter Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 读取中断数据 -' iIndex, 指定USB2I2C设备序号 -' iStatus 指向一个双字单元,用于保存读取的中断状态数据,见下行 -' 位7-位0对应USB2I2C的D7-D0引脚 -' 位8对应USB2I2C的ERR#引脚, 位9对应USB2I2C的PEMP引脚, 位10对应USB2I2C的INT#引脚, 位11对应USB2I2C的SLCT引脚 - -Declare Function USBIO_AbortInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃中断数据读操作 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_ReadData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从0#端口读取数据块 - ' iIndex 指定USB2I2C设备序号 - ' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - ' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_ReadData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从1#端口读取数据块 -' iIndex, 指定USB2I2C设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_AbortRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块读操作 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_WriteData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向0#端口写出数据块 -' iIndex, 指定USB2I2C设备序号 -' iBuffer 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_WriteData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向1#端口写出数据块 -' iIndex, 指定USB2I2C设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_AbortWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块写操作 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_GetStatus Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 通过USB2I2C直接输入数据和状态 -' iIndex, 指定USB2I2C设备序号 -' iStatus 指向一个双字单元,用于保存状态数据,见下行 -' 位7-位0对应USB2I2C的D7-D0引脚 -' 位8对应USB2I2C的ERR#引脚, 位9对应USB2I2C的PEMP引脚, 位10对应USB2I2C的INT#引脚, 位11对应USB2I2C的SLCT引脚, 位23对应USB2I2C的SDA引脚 -' 位13对应USB2I2C的BUSY/WAIT#引脚, 位14对应USB2I2C的AUTOFD#/DATAS#引脚,位15对应USB2I2C的SLCTIN#/ADDRS#引脚 - -Declare Function USBIO_ReadI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByRef oByte As Byte) As Boolean - -' 从I2C接口读取一个字节数据 -' iIndex, 指定USB2I2C设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' oByte 指向一个字节单元,用于保存读取的字节数据 - -Declare Function USBIO_WriteI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByVal iByte As Byte) As Boolean - -' 向I2C接口写入一个字节数据 -' iIndex, 指定USB2I2C设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' iByte 待写入的字节数据 - -Declare Function USBIO_SetExclusive Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iExclusive As Long) As Boolean -' 设置独占使用当前USB2I2C设备 -' iIndex, 指定USB2I2C设备序号 -' iExclusive 为0则设备可以共享使用,非0则独占使用 - -Declare Function USBIO_SetTimeout Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteTimeout As Long, ByVal iReadTimeout As Long) As Boolean -' 设置USB数据读写的超时 -' iIndex, // 指定USB2I2C设备序号 -' iWriteTimeout 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) -' iReadTimeout 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - -Declare Function USBIO_ReadData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取数据块 -' iIndex, 指定USB2I2C设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_WriteData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 写出数据块 -' iIndex, 指定USB2I2C设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_GetDeviceName Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long '''' -' 返回指向USB2I2C设备名称的缓冲区,出错则返回NULL -' iIndex 指定USB2I2C设备序号,0对应第一个设备 - -Declare Function USBIO_FlushBuffer Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 清空USB2I2C的缓冲区 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_WriteRead Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadStep As Long, ByVal iReadTimes As Long, ByRef oReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' USBIO_WriteRead 执行数据流命令,先输出再输入 -' iIndex, 指定USB2I2C设备序号 -' iWriteLength, 写长度,准备写出的长度 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据 -' iReadStep, 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) -' iReadTimes, 准备读取的次数 -' oReadLength, 指向长度单元,返回后为实际读取的长度 -' oReadBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - -Declare Function USBIO_SetStream Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean -' USBIO_SetStream 设置串口流模式 -' iIndex, 指定USB2I2C设备序号 -' iMode 指定模式,见下行 -' 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz,10=快速/400KHz,11=高速/750KHz -' 位2: SPI的I/O数/IO引脚, 0=单入单出(D5出/D7入),1=双入双出(D5出D4出/D7入D6入) -' 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -' 其它保留,必须为0 - -Declare Function USBIO_SetDelaymS Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDelay As Long) As Boolean -' USBIO_SetDelaymS 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ' iIndex, 指定USB2I2C设备序号 - ' iDelay 指定延时的毫秒数 - -Declare Function USBIO_StreamI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' USBIO_StreamI2C 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 -' iIndex, 指定USB2I2C设备序号 -' iWriteLength, 准备写出的数据字节数 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 -' iReadLength, 准备读取的数据字节数 -' oReadBuffer 指向一个缓冲区,返回后是读入的数据 -Declare Function USBIO_ReadEEPROM Lib "USBIOX.DLL" (ByVal iIndexas As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef oBuffer As Any) As Boolean -' i Index 指定USB2I2C设备序号 -' iEepromID 指定EEPROM型号 -' iAddr 指定数据单元的地址 -' iLength 准备读取的数据字节数 -' oBuffer 指向一个缓冲区,返回后是读入的数据 - -Declare Function USBIO_WriteEEPROM Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef iBuffer As Any) As Boolean -' iIndex, 指定USB2I2C设备序号 -' iEepromID, 指定EEPROM型号 -' iAddr, 指定数据单元的地址 -' iLength, 准备写出的数据字节数 -' iBuffer 指向一个缓冲区,放置准备写出的数据 - -Declare Function USBIO_SetBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean ' 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' USBIO_SetBufUpload ' 设定内部缓冲上传模式 -' iIndex, 0指定USB2I2C设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲上传模式,那么USB2I2C驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用USBIO_ReadData后将立即返回缓冲区中的已有数据 - -Declare Function USBIO_QueryBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long -' USBIO_QueryBufUpload 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 -' iIndex 指定USB2I2C设备序号,0对应第一个设备 - -Declare Function USBIO_SetBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean -' USBIO_SetBufDownload 设定内部缓冲下传模式 -' iIndex, 指定USB2I2C设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲下传模式,那么当应用程序调用USBIO_WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由USB2I2C驱动程序创建的线程自动发送直到完毕 - -Declare Function USBIO_QueryBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long ' 指定USB2I2C设备序号,0对应第一个设备 -' USBIO_QueryBufDownload 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 -' iIndex 指定USB2I2C设备序号,0对应第一个设备 - - -Declare Function USBIO_ResetInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetInter 复位中断数据读操作 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_ResetRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetRead 复位数据块读操作 -' iIndex 指定USB2I2C设备序号 - -Declare Function USBIO_ResetWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetRead 复位数据块读操作 -' iIndex 指定USB2I2C设备序号 - -'typedef VOID ( CALLBACK * mUSBIO_NOTIFY_ROUTINE ) ( ' 设备事件通知回调程序 -' ULONG iEventStatus ); ' 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -Public Const USBIO_DEVICE_ARRIVAL = 3 ' 设备插入事件,已经插入 -Public Const USBIO_DEVICE_REMOVE_PEND = 1 ' 设备将要拔出 -Public Const USBIO_DEVICE_REMOVE = 0 ' 设备拔出事件,已经拔出 - -Declare Function USBIO_SetDeviceNotify Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean -' USBIO_SetDeviceNotify 设定设备事件通知程序 -' iIndex, 指定USB2I2C设备序号,0对应第一个设备 -' iDeviceID, 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 -' iNotifyRoutine (函数地址)指定设备事件回调程序, 为NULL则取消事件通知, 否则在检测到事件时调用该程序 - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" deleted file mode 100644 index fbb3370..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/_desktop.ini" +++ /dev/null @@ -1 +0,0 @@ -2006/10/11 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" deleted file mode 100644 index 36c5fc3..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frm" +++ /dev/null @@ -1,844 +0,0 @@ -VERSION 5.00 -Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "tabctl32.ocx" -Begin VB.Form frmMain - Caption = "USB2ISP DEMO WWW.USB-I2C-SPI.COM" - ClientHeight = 7230 - ClientLeft = 60 - ClientTop = 450 - ClientWidth = 7515 - Icon = "frmMain.frx":0000 - LinkTopic = "Form1" - ScaleHeight = 7230 - ScaleWidth = 7515 - StartUpPosition = 3 'Windows Default - Begin VB.CommandButton USBIO_NOTIFY_ROUTINE - Caption = "模拟处理设备挺拔中断事件" - Enabled = 0 'False - Height = 330 - Left = 2535 - TabIndex = 48 - Top = 6660 - Visible = 0 'False - Width = 3255 - End - Begin TabDlg.SSTab SSTab1 - Height = 6915 - Left = 105 - TabIndex = 0 - Top = 90 - Width = 7305 - _ExtentX = 12885 - _ExtentY = 12197 - _Version = 393216 - Tabs = 6 - Tab = 5 - TabsPerRow = 6 - TabHeight = 520 - MouseIcon = "frmMain.frx":030A - BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} - Name = "宋体" - Size = 9.75 - Charset = 134 - Weight = 400 - Underline = 0 'False - Italic = 0 'False - Strikethrough = 0 'False - EndProperty - TabCaption(0) = "EPP并口" - TabPicture(0) = "frmMain.frx":0624 - Tab(0).ControlEnabled= 0 'False - Tab(0).ControlCount= 0 - TabCaption(1) = "MEM并口" - TabPicture(1) = "frmMain.frx":0640 - Tab(1).ControlEnabled= 0 'False - Tab(1).ControlCount= 0 - TabCaption(2) = "I2C接口" - TabPicture(2) = "frmMain.frx":065C - Tab(2).ControlEnabled= 0 'False - Tab(2).Control(0)= "Frame5" - Tab(2).ControlCount= 1 - TabCaption(3) = "EEPROM读写" - TabPicture(3) = "frmMain.frx":0678 - Tab(3).ControlEnabled= 0 'False - Tab(3).Control(0)= "Frame10" - Tab(3).Control(1)= "Frame9" - Tab(3).Control(2)= "Frame8" - Tab(3).ControlCount= 3 - TabCaption(4) = "数字I/O" - TabPicture(4) = "frmMain.frx":0694 - Tab(4).ControlEnabled= 0 'False - Tab(4).Control(0)= "Frame11" - Tab(4).ControlCount= 1 - TabCaption(5) = "SPI接口" - TabPicture(5) = "frmMain.frx":06B0 - Tab(5).ControlEnabled= -1 'True - Tab(5).ControlCount= 0 - Begin VB.Frame Frame5 - Caption = "以流模式读写兼容I2C的两线同步串口,API=USBIO_StreamI2C" - Height = 6435 - Left = -74835 - TabIndex = 34 - Top = 450 - Width = 6975 - Begin VB.Frame Frame17 - Caption = "设置I2C/IIC总线的读写速度" - Height = 735 - Left = 480 - TabIndex = 49 - Top = 5400 - Width = 6135 - Begin VB.OptionButton I2CM - Caption = "750KHz" - Height = 255 - Index = 3 - Left = 4920 - TabIndex = 53 - Top = 360 - Width = 975 - End - Begin VB.OptionButton I2CM - Caption = "400KHz" - Height = 255 - Index = 2 - Left = 3480 - TabIndex = 52 - Top = 360 - Width = 975 - End - Begin VB.OptionButton I2CM - Caption = "100KHz" - Height = 255 - Index = 1 - Left = 2160 - TabIndex = 51 - Top = 360 - Value = -1 'True - Width = 975 - End - Begin VB.OptionButton I2CM - Caption = "20KHz" - Height = 255 - Index = 0 - Left = 840 - TabIndex = 50 - Top = 360 - Width = 855 - End - End - Begin VB.Frame Frame7 - Caption = "写入数据" - Height = 2505 - Left = 450 - TabIndex = 41 - Top = 240 - Width = 6120 - Begin VB.CommandButton StreamICRW - Caption = "Write\Read" - Height = 375 - Left = 4575 - TabIndex = 47 - Top = 330 - Width = 1185 - End - Begin VB.TextBox I2CWRBuf - Height = 1530 - Left = 1125 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 43 - Top = 840 - Width = 4695 - End - Begin VB.TextBox I2CWRLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1140 - TabIndex = 42 - Top = 330 - Width = 2415 - End - Begin VB.Label Label17 - Caption = "数据" - Height = 255 - Left = 300 - TabIndex = 46 - Top = 840 - Width = 615 - End - Begin VB.Label Label24 - Caption = "长度" - Height = 255 - Left = 300 - TabIndex = 45 - Top = 390 - Width = 495 - End - Begin VB.Label Label25 - Caption = "(<400H)" - Height = 180 - Left = 3630 - TabIndex = 44 - Top = 427 - Width = 855 - End - End - Begin VB.Frame Frame6 - Caption = "读取数据" - Height = 2505 - Left = 480 - TabIndex = 35 - Top = 2760 - Width = 6120 - Begin VB.TextBox I2CRDLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1050 - TabIndex = 37 - Top = 315 - Width = 2415 - End - Begin VB.TextBox I2CRDBuf - Height = 1530 - Left = 1050 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 36 - Top = 825 - Width = 4695 - End - Begin VB.Label Label26 - Caption = "长度" - Height = 255 - Left = 330 - TabIndex = 40 - Top = 375 - Width = 495 - End - Begin VB.Label Label27 - Caption = "数据" - Height = 255 - Left = 330 - TabIndex = 39 - Top = 825 - Width = 615 - End - Begin VB.Label Label30 - Caption = "(<400H)" - Height = 180 - Left = 3555 - TabIndex = 38 - Top = 412 - Width = 855 - End - End - End - Begin VB.Frame Frame11 - Height = 6015 - Left = -74925 - TabIndex = 33 - Top = 600 - Width = 7140 - End - Begin VB.Frame Frame8 - Caption = "写入数据,API=USBIO_WriteEEPROM" - Height = 3180 - Left = -73215 - TabIndex = 24 - Top = 420 - Width = 5415 - Begin VB.TextBox WrDataLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 345 - TabIndex = 28 - Text = "0" - Top = 1305 - Width = 2415 - End - Begin VB.TextBox WrDataBuf - Height = 1025 - Left = 345 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 27 - Top = 1995 - Width = 4695 - End - Begin VB.TextBox WrDataAddr - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 330 - TabIndex = 26 - Text = "0" - Top = 570 - Width = 2415 - End - Begin VB.CommandButton eepromWrDate - Caption = "Write" - Height = 375 - Left = 4035 - TabIndex = 25 - Top = 1230 - Width = 975 - End - Begin VB.Label Label38 - Caption = "写入长度" - Height = 255 - Left = 330 - TabIndex = 32 - Top = 1020 - Width = 810 - End - Begin VB.Label Label37 - Caption = "(<400H)" - Height = 255 - Left = 1125 - TabIndex = 31 - Top = 1020 - Width = 765 - End - Begin VB.Label Label36 - Caption = "多个数据(16进制,两字符一组)" - Height = 225 - Left = 330 - TabIndex = 30 - Top = 1725 - Width = 3075 - End - Begin VB.Label Label33 - Caption = "数据单元起始地址" - Height = 255 - Left = 315 - TabIndex = 29 - Top = 270 - Width = 1650 - End - End - Begin VB.Frame Frame9 - Caption = "读出数据,API=USBIO_ReadEEPROM" - Height = 3180 - Left = -73230 - TabIndex = 15 - Top = 3645 - Width = 5415 - Begin VB.CommandButton eepromRdDate - Caption = "Read" - Height = 375 - Left = 4035 - TabIndex = 19 - Top = 1245 - Width = 975 - End - Begin VB.TextBox RdDataAddr - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 315 - TabIndex = 18 - Text = "0" - Top = 540 - Width = 2415 - End - Begin VB.TextBox RdDataBuf - Height = 1025 - Left = 315 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 17 - Top = 1995 - Width = 4695 - End - Begin VB.TextBox RdDataLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 315 - TabIndex = 16 - Text = "0" - Top = 1305 - Width = 2415 - End - Begin VB.Label Label39 - Caption = "数据单元起始地址" - Height = 255 - Left = 315 - TabIndex = 23 - Top = 270 - Width = 1650 - End - Begin VB.Label Label35 - Caption = "多个数据(16进制,两字符一组)" - Height = 225 - Left = 330 - TabIndex = 22 - Top = 1725 - Width = 3075 - End - Begin VB.Label Label34 - Caption = "(<400H)" - Height = 255 - Left = 1125 - TabIndex = 21 - Top = 1020 - Width = 765 - End - Begin VB.Label Label32 - Caption = "读取长度" - Height = 255 - Left = 330 - TabIndex = 20 - Top = 1020 - Width = 795 - End - End - Begin VB.Frame Frame10 - Caption = "EEPROM型号" - Height = 6405 - Left = -74895 - TabIndex = 1 - Top = 420 - Width = 1620 - Begin VB.OptionButton eppromtype - Caption = "24C4096" - Height = 255 - Index = 12 - Left = 180 - TabIndex = 14 - Top = 5190 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C2048" - Height = 255 - Index = 11 - Left = 180 - TabIndex = 13 - Top = 4777 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C1024" - Height = 255 - Index = 10 - Left = 180 - TabIndex = 12 - Top = 4370 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C512" - Height = 255 - Index = 9 - Left = 180 - TabIndex = 11 - Top = 3963 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C256" - Height = 255 - Index = 8 - Left = 180 - TabIndex = 10 - Top = 3556 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C128" - Height = 255 - Index = 7 - Left = 180 - TabIndex = 9 - Top = 3149 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C64" - Height = 255 - Index = 6 - Left = 180 - TabIndex = 8 - Top = 2742 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C32" - Height = 255 - Index = 5 - Left = 180 - TabIndex = 7 - Top = 2335 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C16" - Height = 255 - Index = 4 - Left = 180 - TabIndex = 6 - Top = 1928 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C08" - Height = 255 - Index = 3 - Left = 180 - TabIndex = 5 - Top = 1521 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C04" - Height = 255 - Index = 2 - Left = 180 - TabIndex = 4 - Top = 1114 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C02" - Height = 255 - Index = 1 - Left = 165 - TabIndex = 3 - Top = 707 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C01" - Height = 255 - Index = 0 - Left = 180 - TabIndex = 2 - Top = 300 - Value = -1 'True - Width = 1320 - End - End - End -End -Attribute VB_Name = "frmMain" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Option Explicit - -Dim hopen As Long - -Private Sub eepromRdDate_Click() - Dim mDataAddr As Long - Dim mLen As Long - Dim buffer As arrRBuffer - Dim bu() As Byte - mLen = HexToBcd(RdDataLen) - - If (RdDataAddr.Text = "") Then - MsgBox "请输入数据单元起始地址!", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If - If (mLen <= 0) Then - MsgBox "请输入读取长度!", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If - mDataAddr = HexToBcd(RdDataAddr) - If (mOpen = True) Then - If (USBIO_ReadEEPROM(mIndex, eepromid, mDataAddr, mLen, buffer)) Then - Dim buff As String - Dim i As Long - For i = 0 To mLen - 1 - buff = buff & Hex2bit(buffer.buf(i)) & " " - Next i - RdDataBuf.Text = buff - Else - MsgBox "读E2PROM数据失败!", vbExclamation, "USB2I2C DEMO" - End If - RdDataLen.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "USB2I2C DEMO" - End If -End Sub - -Private Sub eepromWrDate_Click() - Dim mData As Byte - Dim mDataAddr As Long - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(WrDataLen.Text) - If (WrDataAddr.Text = "") Then - MsgBox "请输入数据单元起始地址!", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If - If (mLen <= 0 Or WrDataBuf.Text = "") Then - MsgBox "请输入要写入的数据,长度!", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If - - If (mLen > (Len(WrDataBuf) \ 2)) Then '在输入长度和数据长度中取小值 - mLen = Len(WrDataBuf) \ 2 - End If - - mDataAddr = HexToBcd(WrDataAddr.Text) - Call mStrtoVal(WrDataBuf.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - - If (mOpen = True) Then - If (USBIO_WriteEEPROM(mIndex, eepromid, mDataAddr, mLen, buffer) = False) Then - MsgBox "读E2PROM数据失败!", vbExclamation, "USB2I2C DEMO" - End If - WrDataLen.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "USB2I2C DEMO" - End If -End Sub - -Private Sub eppromtype_Click(Index As Integer) -Select Case Index - Case 0 - eepromid = ID_24C01 - Case 1 - eepromid = ID_24C02 - Case 2 - eepromid = ID_24C04 - Case 3 - eepromid = ID_24C08 - Case 4 - eepromid = ID_24C16 - Case 5 - eepromid = ID_24C32 - Case 6 - eepromid = ID_24C64 - Case 7 - eepromid = ID_24C128 - Case 8 - eepromid = ID_24C256 - Case 9 - eepromid = ID_24C512 - Case 10 - eepromid = ID_24C1024 - Case 11 - eepromid = ID_24C2048 - Case 12 - eepromid = ID_24C4096 - End Select -End Sub - - -Private Sub Form_Load() -mIndex = 0 - SSTab1.TabVisible(0) = False - SSTab1.TabVisible(1) = False - 'SSTab1.TabVisible(2) = False - 'SSTab1.TabVisible(3) = False - SSTab1.TabVisible(4) = False - SSTab1.TabVisible(5) = False - -hopen = USBIO_OpenDevice(mIndex) -If (hopen = INVALID_HANDLE_VALUE) Then - mOpen = False -Else - mOpen = True -End If -'设置设备插拔通知 -If USBIO_SetDeviceNotify(mIndex, vbNullString, AddressOf mUSBIO_NOTIFY_ROUTINE) = False Then - MsgBox "设置设备插拔通知失败", vbExclamation, "USB2I2C DEMO" -End If -enablebtn (mOpen) -End Sub - -Private Sub Form_Unload(Cancel As Integer) -USBIO_SetDeviceNotify mIndex, vbNullString, 0& -If (mOpen = True) Then - USBIO_CloseDevice (mIndex) - -End If -End Sub - - -Private Sub Label43_Click() - -End Sub - -'Private Sub SSTab1_Click(PreviousTab As Integer) - -'If (mOpen = True) And (SSTab1.Tab = 4) Then -' Call evtbtrefresh_Click -' Call Led_Click(0) -'End If - -'End Sub - -Private Sub StreamICRW_Click() -Dim mWRLen As Long -Dim mRdLen As Long -Dim iBuff As arrRBuffer -Dim buffer As arrRBuffer - -mWRLen = HexToBcd(I2CWRLen.Text) -mRdLen = HexToBcd(I2CRDLen.Text) - -'---------------------------------------- -If (I2CM(0).Value = True) Then - If (USBIO_SetStream(mIndex, &H80) = False) Then - MsgBox "设置I2C时钟 = 20KHz失败! ", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If -ElseIf (I2CM(1).Value = True) Then - If (USBIO_SetStream(mIndex, &H81) = False) Then - MsgBox "设置I2C时钟 = 100KHz失败! ", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If -ElseIf (I2CM(2).Value = True) Then - If (USBIO_SetStream(mIndex, &H82) = False) Then - MsgBox "设置I2C时钟 = 400KHz失败! ", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If -ElseIf (I2CM(3).Value = True) Then - If (USBIO_SetStream(mIndex, &H83) = False) Then - MsgBox "设置I2C时钟 = 750KHz失败! ", vbExclamation, "USB2I2C DEMO" - Exit Sub - End If -End If -'---------------------------------------- - -If (mWRLen > 0 And I2CWRBuf.Text = "") Then - MsgBox "请输入要写的数据,长度!", vbExclamation, "USB2I2C DEMO" - Exit Sub -End If -If ((mWRLen = 0) And (mRdLen = 0)) Then - MsgBox "请输入读数据所需的长度!", vbExclamation, "USB2I2C DEMO" - Exit Sub -End If -If (mWRLen > Len(Trim(I2CWRBuf.Text)) \ 2) Then - mWRLen = Len(Trim(I2CWRBuf.Text)) \ 2 -End If - -Call mStrtoVal(I2CWRBuf.Text, buffer, mWRLen) '将输入的十六进制格式字符数据转成数值数据 - -If (mOpen = True) Then - If (USBIO_StreamI2C(mIndex, mWRLen, buffer, mRdLen, iBuff) = False) Then - MsgBox "I2C流模式读写数据失败!", vbExclamation, "USB2I2C DEMO" - Else - If (mRdLen > 0) Then '有数据返回 - Dim buff As String - Dim i As Long - For i = 0 To mRdLen - 1 - buff = buff & Hex2bit(iBuff.buf(i)) + " " - Next - I2CRDBuf.Text = buff - End If - End If - I2CWRLen.Text = Hex(mWRLen) - I2CRDLen.Text = Hex(mRdLen) -Else - MsgBox "设备未打开!", vbExclamation, "USB2I2C DEMO" -End If -End Sub - - -Private Sub USBIO_NOTIFY_ROUTINE_KeyUp(KeyCode As Integer, Shift As Integer) '设备插拔通知处理程序 - Dim iEventStatus As Long - iEventStatus = KeyCode '插拔事件 - If (iEventStatus = USBIO_DEVICE_ARRIVAL) Then ' 设备插入事件,已经插入 - If (USBIO_OpenDevice(mIndex) = INVALID_HANDLE_VALUE) Then - MsgBox "打开设备失败!", vbOK, "USB2I2C DEMO" - mOpen = False - Else - mOpen = True '打开成功 - End If - ElseIf (iEventStatus = USBIO_DEVICE_REMOVE) Then ' 设备拔出事件,已经拔出 - USBIO_CloseDevice (mIndex) - mOpen = False - End If - enablebtn (mOpen) '设备打开,按钮可用,设备没打开,按钮禁用 -End Sub - -Public Sub enablebtn(ByVal bEnable As Boolean) 'bEnable=true :各窗体按钮可用 ;=false:enable:各窗体按钮禁用 - With frmMain - - '.eppRead0.Enabled = bEnable - '.eppWrite0.Enabled = bEnable - '.eppRead1.Enabled = bEnable - '.eppWrite1.Enabled = bEnable - - '.memRead0.Enabled = bEnable - '.memWrite0.Enabled = bEnable - '.memRead1.Enabled = bEnable - ' .memWrite1.Enabled = bEnable - - .StreamICRW.Enabled = bEnable - - '.StreamSPIRW.Enabled = bEnable - - .eepromRdDate.Enabled = bEnable - .eepromWrDate.Enabled = bEnable - - '.evtbtrefresh.Enabled = bEnable - '.Led(0).Enabled = bEnable - '.Led(1).Enabled = bEnable - '.Led(2).Enabled = bEnable - '.Led(3).Enabled = bEnable - '.Led(4).Enabled = bEnable - '.Led(5).Enabled = bEnable - '.Led(6).Enabled = bEnable - '.Led(7).Enabled = bEnable - - If (bEnable = True) Then '窗体标题显示 - frmMain.Caption = "USB2I2C **设备已插上" - - Else - frmMain.Caption = "USB2I2C **设备已拔出" - - End If - End With - - -End Sub diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" deleted file mode 100644 index 2e25bba..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.frx" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" deleted file mode 100644 index c911657..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/Resource/frmMain.log" +++ /dev/null @@ -1 +0,0 @@ -行 24: 控件 SSTab1 的类 TabDlg.SSTab 不是一个已加载的控件类。 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" deleted file mode 100644 index 3b0e257..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/TABCTL32.OCX" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" deleted file mode 100644 index 35db492..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USB2I2C_CN.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" deleted file mode 100644 index 308318c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" deleted file mode 100644 index 53fb229..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/USBIOX.INF" +++ /dev/null @@ -1,79 +0,0 @@ -; USBIOX.INF -; Driver for USB<=>I2C Chip V2.0 -; WDM/DLL for Windows 98/Me/2000/XP -; Copyright (C) USBIO TECH. 2001-2006 -; - -[Version] -Signature = "$Chicago$" -Class = USBIO -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %USBIO% -DriverVer = 01/12/2006, 2.0.2006.01 - -[ControlFlags] -ExcludeFromSelect = USB\VID_4348&PID_5512 - -[ClassInstall32] -Addreg = USBIOReg - -[ClassInstall] -Addreg = USBIOReg - -[USBIOReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%USBIO% = USBIO - -[USBIO] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[USBIOX.Install] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.9X.AddReg - -[USBIOX.Install.NT] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS] -USBIOX.SYS, , , 2 - -[USBIOX.CopyFiles.DLL] -USBIOX.DLL, , , 2 - -[USBIOX.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , USBIOX.SYS - -[USBIOX.NT.AddReg] - -[USBIOX.Install.NT.Services] -AddService = USBIOX, 2, USBIOX.Service - -[USBIOX.Service] -DisplayName = "USBIOX" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -USBIOX.CopyFiles.SYS = 10, System32\Drivers -USBIOX.CopyFiles.DLL = 11 - -[SourceDisksFiles] -USBIOX.SYS = 1 -USBIOX.DLL = 1 - -[SourceDisksNames] -1 = "USB Parallel Installation Disk", USBIOX.SYS, , - -[Strings] -ClassName = "USB2SPI" -USBIO = "USBIO" -USBIOX.DeviceDesc = "USB2I2C" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" deleted file mode 100644 index bd45905..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_read.jpg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" deleted file mode 100644 index b52c599..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2I2C/i2c_write.jpg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" deleted file mode 100644 index 2982be0..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/93C46.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" deleted file mode 100644 index 5c0929c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/ADC0831.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" deleted file mode 100644 index 13a3862..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C256.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" deleted file mode 100644 index 729ea90..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT24C512.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" deleted file mode 100644 index 61e21e2..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT25010.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" deleted file mode 100644 index eebccd9..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/AT93C46.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" deleted file mode 100644 index 344c013..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/DS1621.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" deleted file mode 100644 index 34f8970..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" deleted file mode 100644 index 34f8970..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/EPP_v1.7.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" deleted file mode 100644 index a9e0d7a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_BUS_PROTOCOL.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" deleted file mode 100644 index c33e93c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.10.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" deleted file mode 100644 index c33e93c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/I2C_SPECIFICATION_V2.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" deleted file mode 100644 index 5472d22..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MAX1202-MAX1203.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" deleted file mode 100644 index a2f1ffe..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/MSP430F2013.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" deleted file mode 100644 index 6177977..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" deleted file mode 100644 index 6177977..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SMbus Protocol_V110.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" deleted file mode 100644 index f595b70..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI Protocol.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" deleted file mode 100644 index 32f9472..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/SPI_BUS.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" deleted file mode 100644 index d85ea61..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/TLC0831.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" deleted file mode 100644 index 0c6da9d..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/USB-ezIO.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" deleted file mode 100644 index 2c3f711..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/DOC/X5045.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" deleted file mode 100644 index c39d604..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/Readme.txt" +++ /dev/null @@ -1,23 +0,0 @@ -********************************* -** 压缩包说明: ** -********************************* - - 本压缩包内文件为优胜电子科技有 -限公司产品相关资料,仅供优胜电子 -客户使用。 - -********************************* - -优胜电子科技淘宝店: - -http://usendz.taobao.com - -欢迎您的光临...... - -********************************* - -压缩包解压密码 - -请联系旺旺usendz凭订单号获取。 - -********************************* \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" deleted file mode 100644 index ce694c3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USB2IIC&SPI.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" deleted file mode 100644 index 28f6929..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_EXE/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" deleted file mode 100644 index c70148d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/MAINC.CPP" +++ /dev/null @@ -1,80 +0,0 @@ -//**************************************** -//** Web: http://usendz.taobao.com ** -//**************************************** -//** USB2IIC&SPI for SDK ** -//**************************************** -// -#include "USBIO.H" - -UINT mIndex = 0; - -//程序入口 -void main ( ) -{ - UINT mErrCnt = 0; - UCHAR Numf = 0; - - printf( "\nInitialing ......"); - printf( "\n****************************************************\n"); - // 需要使用DLL则需要先加载 - printf( "Load DLL: USBIOX.DLL ......\n" ); - if (LoadLibrary("USBIOX.DLL") == NULL ) return; // 加载DLL失败,可能未安装到系统中 - printf( "USBIO_OpenDevice: 0\n" ); - - if(USBIO_OpenDevice(mIndex) == INVALID_HANDLE_VALUE) - { - printf("\nfail to open device!!"); - getch(); - return; - } //使用之前必须打开设备 - - printf("\nOpen device sucessfully!"); - printf("\nPress any key to continue......"); - getch(); - - - while(Numf<5) - { - system("cls"); - printf( "\n************************ USB2IIC&SPI for SDK V1.0 ***************************\n"); - printf( " Copyright (C) USEN TECH. 2012.02 "); - printf( "\n***************************************************************************\n"); - printf("\nFunction Select:\n"); - printf("\n(1) GPIO TEST"); - printf("\n(2) I2C(USBIO_StreamI2C) TEST"); - printf("\n(3) SPI(USBIO_SPI4) TEST"); - printf("\n(4) SPI(USBIO_BitSPI) TEST"); - printf("\nOTHERS EXIT"); - printf("\n\nPlease select the function:"); - scanf("%d",&Numf); - - switch(Numf) - { - case 1: - GPIO(); - break; - case 2: - I2CStream(); - break; - case 3: - SPIByte(); - break; - case 4: - SPIBit(); - break; - default: - Numf = 10; - break; - } - } - - //关闭USB2I2C设备,如果不继续使用则必须关闭设备,就象读写完硬盘中的数据文件后要关闭一样 - printf("\n **************************** USBIO_CloseDevice:%d ******************************",mIndex); - USBIO_CloseDevice(mIndex); - printf("\n Exit... \n" ); - -} - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" deleted file mode 100644 index e8895d9..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.obj" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/MAINC.sbr" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" deleted file mode 100644 index 4044670..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.obj" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO.sbr" deleted file mode 100644 index e69de29..0000000 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" deleted file mode 100644 index 9b789ad..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.bsc" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" deleted file mode 100644 index ec80491..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" deleted file mode 100644 index 7d5d867..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/USBIO_SDK.pch" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" deleted file mode 100644 index bf334cf..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/Release/vc60.idb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" deleted file mode 100644 index 197ebd8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.H" +++ /dev/null @@ -1,17 +0,0 @@ -//*****************USBIO.H************** -#include -#include -#include -#include -#include -#include "USBIOX.H" // USB2I2C的动态链接库 - - -void GPIO(); -void I2CStream(); -void SPIByte(); -void SPIBit(); -void Exit(); - - -void CheckNum(UCHAR value); diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" deleted file mode 100644 index 805dfb6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO.cpp" +++ /dev/null @@ -1,317 +0,0 @@ -//***************USBIO function definations ******************* -#include "USBIO.H" -#define MAXLEN 4096 - -extern UINT mIndex; - -void CheckNum(UCHAR value) -{ - if(value <0 || value >255) - { - printf("the entry value is illegal!"); - return; - } - -} - - -//GPIO 控制函数 -void GPIO() -{ - ULONG iStatus = 0x00ff; - UCHAR iData = 0xff; - UCHAR iDirect = 0xff; - - system("cls"); - printf("\n****************************GPIO Test Modual*******************************"); - printf("\nAPI1:USBIO_GetStatus(mIndex,iStatus) "); - printf("\nAPI2:USBIO_Set_D5_D0(mIndex,iSetDir,iSetData)"); - printf("\n***************************************************************************"); - - printf("\n\n<1>PORTS STATUS INPUT"); - printf("\n/**Introductions:Set the input/ouput of the ports D0-D5 in Hex(1:output 0:input)"); - printf("\n/**Example: 05 stands for D0 D2 output ; D1 D3 D4 D5 input "); - printf("\n\nSET INPUT/OUTPUT STATUS OF D5-D0 : "); - - scanf("%X",&iDirect); - iDirect = iDirect&0x3f; - // CheckNum(iDirect); - printf("\n\n<2>PORS VALUE SET"); - printf("\n/**Introductions:Set the input/ouput of the ports D0-D5 in Hex(1:highlevel 0:lowlevel)"); - printf("\n/**Example:05 stands for D0 D2 highlevel ; D1 D3 D4 D5 lowlevel "); - printf("\n\nSET INPUT/OUTPUT VALUE OF D5-D0 : "); - scanf("%X",&iData); - iData = iData&0x3f; - //CheckNum(iData); - - USBIO_GetStatus(mIndex,&iStatus); - USBIO_Set_D5_D0(mIndex,iDirect,iData); - - printf("\n*********************************** RESULT *********************************"); - printf("\n\nGPIO operation is completed\n"); - printf("\nStatus of the ports : 0X%X",iStatus&0x3f); - - printf("\n\nPress any key to the main menu!"); - getch(); - -} - -void I2CStream() -{ - UCHAR Data[MAXLEN]; - memset(Data,0,MAXLEN); - - UINT iWRLen = 0; - UINT iRDLen = 0; - UINT i =0; - UCHAR SCLK = 0; - - system("cls"); - printf("\n*********************I2CStream Test Modual*******************************"); - printf("\nAPI:USBIO_StreamI2C(mIndex,iWriteLength,WriteBuffer,iReadLength,ReadBuffer)"); - printf("\n*************************************************************************"); - - - //设置时钟频率 - printf("\n\n\n<1>SELECT FREQUENCY of SCL: <0> 20Khz <1> 100Khz <2> 400Khz <3> 750Khz\n"); - printf("Select:"); - scanf("%d",&SCLK); - - switch(SCLK) - { - - case 1: - USBIO_SetStream(mIndex,0x81); - break; - case 2: - USBIO_SetStream(mIndex,0x82); - break; - case 3: - USBIO_SetStream(mIndex,0x83); - break; - default: - USBIO_SetStream(mIndex,0x80); - break; - } - - //写入数据的长度 - printf("\n<2>INPUT THE NUMBER OF WRITE BYTES : "); - scanf("%d",&iWRLen); - - //写入的数据 - printf("\n<3>INPUT THE WRITE BYTES(HEX) : "); - while(iINPUT THE NUMBER OF READ BYTES : "); - scanf("%d",&iRDLen); - - UCHAR* iRead = new UCHAR[iRDLen]; - memset(iRead,0,iRDLen); - - if(!USBIO_StreamI2C(mIndex,iWRLen,Data,iRDLen,iRead)) - { - printf("Read data fail!"); - } - - //数据显示 - printf("\n****************************** RESULT **************************************"); - printf("\n<5>READ OUT DATAS : "); - for(i=0;iCHIP SELECT ENABLE: <0> ENABLE <1> UNENABLE"); - printf("\nSelect:"); - scanf("%d",&CSEN); - - - if(CSEN == 0) - { - - printf("\n\n<2>CHIP SELECT: <0> CS0 <1> CS1 <2> CS2"); - printf("\nSelect:"); - scanf("%d",&CS); - } - - printf("\n<3>BYTE ORDER SELECT: <0> MSB first <1> LSB first "); - printf("\nSelect:"); - scanf("%d",&ORDER); - - - switch((CSEN+1)*10+CS) - { - - case 10: - iChipSelect = 0x80; - break; - case 11: - iChipSelect = 0x81; - break; - case 12: - iChipSelect = 0x82; - break; - case 13: - iChipSelect = 0x83; - break; - case 20: - iChipSelect = 0x00; - break; - case 21: - iChipSelect = 0x01; - break; - case 22: - iChipSelect = 0x02; - break; - case 23: - iChipSelect = 0x03; - break; - default: - iChipSelect = 0x00; - break; - } - - //数据传输长度 - printf("\n<3>INPUT TRANSFORM LENGTH : "); - scanf("%d",&DataLen); - - - //输入传输的数据 - UCHAR* pData = new UCHAR[DataLen]; - memset(pData,0,DataLen); - - - printf("\n<4>INPUT BYTE STREAM(End with -1):"); - - do{ - scanf("%X",&pData[i++]); - - }while(pData[i-1] != 0xFF); - pData[i-1] = 0; - - - - /*set stream - BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定mUSBIO_PACKET_LENGTH设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - */ - if(ORDER == 0) - { - USBIO_SetStream(mIndex,0x00);//Set SPI model; - } - else - { - USBIO_SetStream(mIndex,0x80);//Set SPI model; - - } - printf("%X,%X,%X,%X,%X",iChipSelect,DataLen,pData[0],pData[1],pData[2]); - printf("\n****************************** RESULT **********************************"); - //获取返回的数据和显示数据 - USBIO_Set_D5_D0(mIndex,0xff,0x00); //CS拉低 - - if(!USBIO_StreamSPI4(mIndex,iChipSelect,DataLen,pData)) - { - printf("\nFail to SPI operation!"); - return; - } - - printf("\nDATAS FROM MISO : "); - i =0; - while(iINPUT THE DATA NUMBER: "); - scanf("%d",&iNumber); - - UCHAR* wBuf = new UCHAR[iNumber];//放置发送的数据,只有bit4发送,bit0,1,2分别是D0,D1,D2的片选 - UCHAR* rBuf = new UCHAR[iNumber];//放置接收的数据,从bit7接收,bit0,1,2分别是D0,D1,D2的片选 - - memset(wBuf,0,iNumber); - - if(iNumber>256) - { - printf("The number is too big to transmit!"); - return; - } - - USBIO_Set_D5_D0(mIndex,0xff,0xff);//设置端口数据 - - printf("\n<2>INPUT BYTE STREAM(BIT4 FOR MOSI) : "); - UINT i = 0; - do - { - scanf("%X",&wBuf[i++]); - - }while(wBuf[i-1]!=0XFF); - - //Bit Stream send - if (!USBIO_BitStreamSPI(mIndex,iNumber,wBuf)) - { - return; - } - - //显示读取的数据 - printf("\n***************************** RESULT *************************************"); - printf("\n<3>MISO BIT STREAM : "); - i = 0; - while(i>7)&0x01; - printf("%d ",rBuf[i]); - i++; - } - - getch(); -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" deleted file mode 100644 index 28f6929..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" deleted file mode 100644 index f15733b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.H" +++ /dev/null @@ -1,684 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19, 2008.10.15 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.1 -// 南京沁恒电子有限公司 作者: W.ch 2008.10 -// CH341-DLL V2.1 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI USBIO_OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI USBIO_CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI USBIO_GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI USBIO_DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI USBIO_GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI USBIO_ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI USBIO_ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI USBIO_AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI USBIO_InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI USBIO_ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI USBIO_WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI USBIO_EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI USBIO_MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI USBIO_SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI USBIO_ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI USBIO_GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI USBIO_GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI USBIO_FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI USBIO_SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI USBIO_ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI USBIO_WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI USBIO_GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI USBIO_Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI USBIO_StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI USBIO_StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI USBIO_StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI USBIO_BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI USBIO_SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI USBIO_QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI USBIO_QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI USBIO_SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI USBIO_SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - USBIO_OpenDevice - USBIO_CloseDevice - USBIO_SetupSerial - USBIO_ReadData - USBIO_WriteData - USBIO_SetBufUpload - USBIO_QueryBufUpload - USBIO_SetBufDownload - USBIO_QueryBufDownload - USBIO_SetDeviceNotify - USBIO_GetStatus -// 以上是主要API,以下是次要API - USBIO_GetVersion - USBIO_DriverCommand - USBIO_GetDrvVersion - USBIO_ResetDevice - USBIO_GetDeviceDescr - USBIO_GetConfigDescr - USBIO_SetIntRoutine - USBIO_ReadInter - USBIO_AbortInter - USBIO_AbortRead - USBIO_AbortWrite - USBIO_ReadI2C - USBIO_WriteI2C - USBIO_SetExclusive - USBIO_SetTimeout - USBIO_GetDeviceName - USBIO_GetVerIC - USBIO_FlushBuffer - USBIO_WriteRead - USBIO_ResetInter - USBIO_ResetRead - USBIO_ResetWrite -*/ -HANDLE WINAPI USBIO_OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI USBIO_CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI USBIO_GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI USBIO_SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" deleted file mode 100644 index fe39fdc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIOX.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" deleted file mode 100644 index 17f2789..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsp" +++ /dev/null @@ -1,116 +0,0 @@ -# Microsoft Developer Studio Project File - Name="USBIO_SDK" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=USBIO_SDK - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "USBIO_SDK.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "USBIO_SDK.mak" CFG="USBIO_SDK - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "USBIO_SDK - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "USBIO_SDK - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "USBIO_SDK - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c -# ADD BASE RSC /l 0x804 /d "NDEBUG" -# ADD RSC /l 0x804 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "USBIO_SDK - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x804 /d "_DEBUG" -# ADD RSC /l 0x804 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "USBIO_SDK - Win32 Release" -# Name "USBIO_SDK - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\MAINC.CPP -# End Source File -# Begin Source File - -SOURCE=.\USBIO.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\USBIO.H -# End Source File -# Begin Source File - -SOURCE=.\USBIOX.H -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\USBIOX.LIB -# End Source File -# End Group -# End Target -# End Project diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" deleted file mode 100644 index c26bb34..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.dsw" +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "USBIO_SDK"=.\USBIO_SDK.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" deleted file mode 100644 index 849daf0..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.ncb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" deleted file mode 100644 index 8c192db..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.opt" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" deleted file mode 100644 index f6db856..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI_SDK/USBIO_SDK.plg" +++ /dev/null @@ -1,39 +0,0 @@ - - -
-

Build Log

-

---------------------Configuration: USBIO_SDK - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP890.tmp" with contents -[ -/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"Release/" /Fp"Release/USBIO_SDK.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"D:\我接收到的文件\Soft\USB2IIC&SPI_SDK\MAINC.CPP" -"D:\我接收到的文件\Soft\USB2IIC&SPI_SDK\USBIO.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP890.tmp" -Creating temporary file "C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP891.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"Release/USBIO_SDK.pdb" /machine:I386 /out:"Release/USBIO_SDK.exe" -".\Release\MAINC.OBJ" -".\Release\USBIO.obj" -".\USBIOX.LIB" -] -Creating command line "link.exe @C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP891.tmp" -

Output Window

-Compiling... -MAINC.CPP -USBIO.cpp -Linking... -Creating command line "bscmake.exe /nologo /o"Release/USBIO_SDK.bsc" ".\Release\MAINC.SBR" ".\Release\USBIO.sbr"" -Creating browse info file... -

Output Window

- - - -

Results

-USBIO_SDK.exe - 0 error(s), 0 warning(s) -
- - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" deleted file mode 100644 index 0c6da9d..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2IIC&SPI - I2C.SPI\351\200\232\344\277\241\350\260\203\350\257\225\350\275\257\344\273\266/USB2IIC&SPI\344\275\277\347\224\250\350\257\264\346\230\216\344\271\246.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" deleted file mode 100644 index 155c49c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Readme.txt" +++ /dev/null @@ -1,2 +0,0 @@ -数据字节数(16进制表示)小于40H,写出与读入数据共用一个缓冲区。 -本软件选择CS0作为片选信号。 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" deleted file mode 100644 index a6c97e8..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/CHIP4.ico" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" deleted file mode 100644 index c673651..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/MSSCCPRJ.SCC" +++ /dev/null @@ -1,8 +0,0 @@ -[SCC] -SCC=This is a source code control file -[USB2ISP.VBP] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= -[USB2SPI.VBP] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" deleted file mode 100644 index e050855..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/Module1.bas" +++ /dev/null @@ -1,95 +0,0 @@ -Attribute VB_Name = "Module1" -Option Explicit - -Type arrRBuffer - buf(mMAX_BUFFER_LENGTH - 1) As Byte -End Type - -Public Const WM_KEYUP = &H101 -Public Const BN_CLICK = &H101 -Public eepromid As EEPROM_TYPE 'eeprom型号 -Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long - -Public mIndex As Long -Public mOpen As Boolean - - -Public Function mCharToBcd(ByVal iChar As String) As Byte ' 输入的ASCII字符 - Dim mBCD As Byte - If iChar >= "0" And iChar <= "9" Then - mBCD = iChar - "0" - ElseIf iChar >= "A" And iChar <= "F" Then - mBCD = Asc(iChar) - Asc("A") + &HA - ElseIf iChar >= "a" And iChar <= "f" Then - mBCD = Asc(iChar) - Asc("a") + &HA - Else - mBCD = &HFF - End If - mCharToBcd = mBCD -End Function - -Sub mStrtoVal(str As String, ByRef strOut As arrRBuffer, strleng As Long) - Dim i, j As Long - Dim mLen As Long - Dim strRev(mMAX_BUFFER_LENGTH - 1) As Byte - mLen = strleng * 2 - j = 0 - For i = 0 To mLen - 1 Step 2 - If (mCharToBcd(Mid(str, i + 1, 1)) = &HFF Or mCharToBcd(Mid(str, i + 2, 1)) = &HFF) Then - GoTo con - End If - ' strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - Debug.Print Hex(strRev(j)) - j = j + 1 -con: Next - j = 0 - While (j < strleng) - strOut.buf(j) = strRev(j) - j = j + 1 - Wend -End Sub - -Function Hex2bit(var As Byte) As String -If var < 16 Then - Hex2bit = "0" & Hex(var) - Else - Hex2bit = Hex(var) -End If -End Function -Function HexToBcd(str As String) As Long '将文本框中输入的十六进制值转换成BCD码 -Dim Length As Integer -Dim X As String -Dim i As Long -str = Trim(str) -Length = Len(str) -For i = 0 To Length - 1 -X = Mid(str, Length - i, 1) -Select Case X - Case "a", "A" - HexToBcd = HexToBcd + 10 * (16 ^ i) - Case "b", "B" - HexToBcd = HexToBcd + 11 * (16 ^ i) - Case "c", "C" - HexToBcd = HexToBcd + 12 * (16 ^ i) - Case "d", "D" - HexToBcd = HexToBcd + 13 * (16 ^ i) - Case "e", "E" - HexToBcd = HexToBcd + 14 * (16 ^ i) - Case "f", "F" - HexToBcd = HexToBcd + 15 * (16 ^ i) - Case "0" To "9" - HexToBcd = HexToBcd + Val(X) * 16 ^ i - Case Else - 'MsgBox "非十六进制数", vbCritical, "信息提示" - HexToBcd = 0 -End Select -Next i -End Function -Public Sub mUSBIO_NOTIFY_ROUTINE(ByVal iEventStatus As Long) - PostMessage frmMain.USBIO_NOTIFY_ROUTINE.hwnd, WM_KEYUP, iEventStatus, 0 '将接收到的插拔事件值发到插拔处理程序中 -End Sub - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" deleted file mode 100644 index 125ca50..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.VBP" +++ /dev/null @@ -1,45 +0,0 @@ -Type=Exe -Form=frmMain.frm -Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\system32\stdole2.tlb#OLE Automation -Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; tabctl32.ocx -Module=Module1; Module1.bas -Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#C:\WINDOWS\system32\MSSTDFMT.DLL#Microsoft Data Formatting Object Library -Module=USBIOXDLL; USBIOXDLL.bas -IconForm="frmMain" -Startup="frmMain" -HelpFile="" -Title="USB2ISP" -ExeName32="USB2SPI_DEMO_VBCN.exe" -Command32="" -Name="USB2ISP" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=2 -RevisionVer=2 -AutoIncrementVer=0 -ServerSupportFiles=0 -VersionCompanyName="USBIO Tech." -VersionFileDescription="USB2I2C DEMO" -VersionLegalCopyright="USBIO TECH. ALL COPYRIGHT" -VersionLegalTrademarks="WWW.USB-I2C-SPI.COM" -VersionProductName="USB2I2C DEMO" -CompilationType=-1 -OptimizationType=0 -FavorPentiumPro(tm)=0 -CodeViewDebugInfo=0 -NoAliasing=0 -BoundsCheck=0 -OverflowCheck=0 -FlPointCheck=0 -FDIVCheck=0 -UnroundedFP=0 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 - -[MS Transaction Server] -AutoRefresh=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" deleted file mode 100644 index ee59d11..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI.vbw" +++ /dev/null @@ -1,3 +0,0 @@ -frmMain = 41, -6, 806, 867, , -4, 89, 547, 652, C -Module1 = 66, 66, 789, 679, -USBIOXDLL = 187, 152, 910, 765, diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" deleted file mode 100644 index 5bffdfc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USB2SPI_DEMO_VBCN.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" deleted file mode 100644 index 28f6929..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" deleted file mode 100644 index 53fb229..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.INF" +++ /dev/null @@ -1,79 +0,0 @@ -; USBIOX.INF -; Driver for USB<=>I2C Chip V2.0 -; WDM/DLL for Windows 98/Me/2000/XP -; Copyright (C) USBIO TECH. 2001-2006 -; - -[Version] -Signature = "$Chicago$" -Class = USBIO -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %USBIO% -DriverVer = 01/12/2006, 2.0.2006.01 - -[ControlFlags] -ExcludeFromSelect = USB\VID_4348&PID_5512 - -[ClassInstall32] -Addreg = USBIOReg - -[ClassInstall] -Addreg = USBIOReg - -[USBIOReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%USBIO% = USBIO - -[USBIO] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[USBIOX.Install] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.9X.AddReg - -[USBIOX.Install.NT] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS] -USBIOX.SYS, , , 2 - -[USBIOX.CopyFiles.DLL] -USBIOX.DLL, , , 2 - -[USBIOX.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , USBIOX.SYS - -[USBIOX.NT.AddReg] - -[USBIOX.Install.NT.Services] -AddService = USBIOX, 2, USBIOX.Service - -[USBIOX.Service] -DisplayName = "USBIOX" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -USBIOX.CopyFiles.SYS = 10, System32\Drivers -USBIOX.CopyFiles.DLL = 11 - -[SourceDisksFiles] -USBIOX.SYS = 1 -USBIOX.DLL = 1 - -[SourceDisksNames] -1 = "USB Parallel Installation Disk", USBIOX.SYS, , - -[Strings] -ClassName = "USB2SPI" -USBIO = "USBIO" -USBIOX.DeviceDesc = "USB2I2C" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" deleted file mode 100644 index 430c165..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOX.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" deleted file mode 100644 index 96016e2..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/USBIOXDLL.bas" +++ /dev/null @@ -1,505 +0,0 @@ -Attribute VB_Name = "USBIOXDLL" -Option Explicit -' 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http://www.USB-I2C-SPI.com ** -'**************************************** -'** DLL for USB interface chip USB2ISP** -'** C, VC6.0 ** -'**************************************** -' -Public Enum EEPROM_TYPE ' EEPROM型号定义 - ID_24C01 = 0 - ID_24C02 = 1 - ID_24C04 = 2 - ID_24C08 = 3 - ID_24C16 = 4 - ID_24C32 = 5 - ID_24C64 = 6 - ID_24C128 = 7 - ID_24C256 = 8 - ID_24C512 = 9 - ID_24C1024 = 10 - ID_24C2048 = 11 - ID_24C4096 = 12 -End Enum - -Type mUspValue - mUspValueLow As Byte ' 02H 值参数低字节 - mUspValueHigh As Byte ' 03H 值参数高字节 -End Type -Type mUspIndex - mUspIndexLow As Byte ' 04H 索引参数低字节 - mUspIndexHigh As Byte ' 05H 索引参数高字节 -End Type -Type USB_SETUP_PKT ' USB控制传输的建立阶段的数据请求包结构 - mUspReqType As Byte ' 00H 请求类型 - mUspRequest As Byte ' 01H 请求代码 - mUspValue As mUspValue ' 02H-03H 值参数 - mUspIndex As mUspIndex ' 04H-05H 索引参数 - mLength As Integer ' 06H-07H 数据阶段的数据长度 -End Type - -Public Const INVALID_HANDLE_VALUE = -1 '错误码 -Public Const mUSBIO_PACKET_LENGTH = 32 ' USB2ISP支持的数据包的长度 -Public Const mUSBIO_PKT_LEN_SHORT = 8 ' USB2ISP支持的短数据包的长度 - -Type WIN32_COMMAND '定义WIN32命令接口结构 - mFunction As Long '输入时指定功能代码或者管道号 - '输出时返回操作状态 - mLength As Long '存取长度,返回后续数据的长度 - mBuffer(mUSBIO_PACKET_LENGTH - 1) As Byte '数据缓冲区,长度为0至255B -End Type -Public mWIN32_COMMAND As WIN32_COMMAND - -Public Const FILE_DEVICE_UNKNOWN = &H22 -Public Const FILE_ANY_ACCESS = 0 -Public Const METHOD_BUFFERED = 0 -' WIN32应用层接口命令 -Public Const IOCTL_USBIO_COMMAND = (FILE_DEVICE_UNKNOWN * (2 ^ 16) + FILE_ANY_ACCESS * 2 ^ 14 + &HF34 * 2 ^ 2 + METHOD_BUFFERED) ' 专用接口 - -Const mWIN32_COMMAND_HEAD = 8 ' WIN32命令接口的头长度 - -Public Const mUSBIO_MAX_NUMBER = 16 ' 最多同时连接的USB2ISP数 - -Public Const mMAX_BUFFER_LENGTH = &H1000 ' 数据缓冲区最大长度4096 - -Public Const mMAX_COMMAND_LENGTH = (mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH) ' 最大数据长度加上命令结构头的长度 - -Public Const mDEFAULT_BUFFER_LEN = &H400 ' 数据缓冲区默认长度1024 - -Public Const mDEFAULT_COMMAND_LEN = (mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN) ' 默认数据长度加上命令结构头的长度 - - -' USB2ISP端点地址 -Public Const mUSBIO_ENDP_INTER_UP = &H81 ' USB2ISP的中断数据上传端点的地址 -Public Const mUSBIO_ENDP_INTER_DOWN = &H1 ' USB2ISP的中断数据下传端点的地址 -Public Const mUSBIO_ENDP_DATA_UP = &H82 ' USB2ISP的数据块上传端点的地址 -Public Const mUSBIO_ENDP_DATA_DOWN = &H2 ' USB2ISP的数据块下传端点的地址 - -' 设备层接口提供的管道操作命令 -Public Const mPipeDeviceCtrl = &H4 ' USB2ISP的综合控制管道 -Public Const mPipeInterUp = &H5 ' USB2ISP的中断数据上传管道 -Public Const mPipeDataUp = &H6 ' USB2ISP的数据块上传管道 -Public Const mPipeDataDown = &H7 ' USB2ISP的数据块下传管道 - -' 应用层接口的功能代码 -Public Const mFuncNoOperation = &H0 ' 无操作 -Public Const mFuncGetVersion = &H1 ' 获取驱动程序版本号 -Public Const mFuncGetConfig = &H2 ' 获取USB设备配置描述符 -Public Const mFuncSetTimeout = &H9 ' 设置USB通讯超时 -Public Const mFuncSetExclusive = &HB ' 设置独占使用 -Public Const mFuncResetDevice = &HC ' 复位USB设备 -Public Const mFuncResetPipe = &HD ' 复位USB管道 -Public Const mFuncAbortPipe = &HE ' 取消USB管道的数据请求 - -' USB2ISP并口专用的功能代码 -Public Const mFuncSetParaMode = &HF ' 设置并口模式 -Public Const mFuncReadData0 = &H10 ' 从并口读取数据块0 -Public Const mFuncReadData1 = &H11 ' 从并口读取数据块1 -Public Const mFuncWriteData0 = &H12 ' 向并口写入数据块0 -Public Const mFuncWriteData1 = &H13 ' 向并口写入数据块1 -Public Const mFuncWriteRead = &H14 ' 先输出再输入 - - -' USB设备标准请求代码 -Public Const mUSB_CLR_FEATURE = &H1 -Public Const mUSB_SET_FEATURE = &H3 -Public Const mUSB_GET_STATUS = &H0 -Public Const mUSB_SET_ADDRESS = &H5 -Public Const mUSB_GET_DESCR = &H6 -Public Const mUSB_SET_DESCR = &H7 -Public Const mUSB_GET_CONFIG = &H8 -Public Const mUSB_SET_CONFIG = &H9 -Public Const mUSB_GET_INTERF = &HA -Public Const mUSB_SET_INTERF = &HB -Public Const mUSB_SYNC_FRAME = &HC - -' USB2ISP控制传输的厂商专用请求类型 -Public Const mUSBIO_VENDOR_READ = &HC0 ' 通过控制传输实现的USB2ISP厂商专用读操作 -Public Const mUSBIO_VENDOR_WRITE = &H40 ' 通过控制传输实现的USB2ISP厂商专用写操作 - -' USB2ISP控制传输的厂商专用请求代码 -Public Const mUSBIO_PARA_INIT = &HB1 ' 初始化并口 -Public Const mUSBIO_I2C_STATUS = &H52 ' 获取I2C接口的状态 -Public Const mUSBIO_I2C_COMMAND = &H53 ' 发出I2C接口的命令 - - -Public Const mUSBIOA_CMD_I2C_STM_STA = &H74 ' I2C接口的命令流:产生起始位 -Public Const mUSBIOA_CMD_I2C_STM_STO = &H75 ' I2C接口的命令流:产生停止位 -Public Const mUSBIOA_CMD_I2C_STM_OUT = &H0 'I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -Public Const mUSBIOA_CMD_I2C_STM_IN = &HC0 ' I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -Public Const mUSBIOA_CMD_I2C_STM_SET = &H60 ' I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -Public Const mUSBIOA_CMD_I2C_STM_US = &H40 ' I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -Public Const mUSBIOA_CMD_I2C_STM_MS = &H50 ' I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -Public Const mUSBIOA_CMD_I2C_STM_DLY = &HF ' I2C接口的命令流单个命令延时的最大值 -Public Const mUSBIOA_CMD_I2C_STM_END = &H0 ' I2C接口的命令流:命令包提前结束 - - -' 直接输入的状态信号的位定义 -Public Const mStateBitERR = &H100 ' 只读,ERR#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitPEMP = &H200 ' 只读,PEMP引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitINT = &H400 ' 只读,INT#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSLCT = &H800 ' 只读,SLCT引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSDA = &H800000 ' 只读,SDA引脚输入状态,1:高电平,0:低电平 - - - - -Declare Function USBIO_OpenDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long -' 打开USB2ISP设备,返回句柄,出错则无效 -' iIndex 指定USB2ISP设备序号,0对应第一个设备 - -Declare Sub USBIO_CloseDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) -' 关闭USB2ISP设备 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_GetVersion Lib "USBIOX.DLL" () As Long - -' 获得DLL版本号,返回版本号 - -Declare Function USBIO_DriverCommand Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef ioCommand As WIN32_COMMAND) As Long -' 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 -' iIndex, ' 指定USB2ISP设备序号,V1.6以上DLL也可以是设备打开后的句柄 -' ioCommand 命令结构的地址 -' 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -' 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -' 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -' 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -' 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -' 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - -Declare Function USBIO_GetDrvVersion Lib "USBIOX.DLL" () As Long - -' 获得驱动程序版本号,返回版本号,出错则返回0 - -Declare Function USBIO_ResetDevice Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean - -'复位USB设备 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_GetDeviceDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取设备描述符 -' iIndex, 指定USB2ISP设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_GetConfigDescr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取配置描述符 -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_SetIntRoutine Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean -'设定中断服务程序 -' 指定USB2ISP设备序号 -'指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -Declare Function USBIO_ReadInter Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 读取中断数据 -' iIndex, 指定USB2ISP设备序号 -' iStatus 指向一个双字单元,用于保存读取的中断状态数据,见下行 -' 位7-位0对应USB2ISP的D7-D0引脚 -' 位8对应USB2ISP的ERR#引脚, 位9对应USB2ISP的PEMP引脚, 位10对应USB2ISP的INT#引脚, 位11对应USB2ISP的SLCT引脚 - -Declare Function USBIO_AbortInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃中断数据读操作 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_ReadData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从0#端口读取数据块 - ' iIndex 指定USB2ISP设备序号 - ' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - ' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_ReadData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从1#端口读取数据块 -' iIndex, 指定USB2ISP设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_AbortRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块读操作 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_WriteData0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向0#端口写出数据块 -' iIndex, 指定USB2ISP设备序号 -' iBuffer 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_WriteData1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向1#端口写出数据块 -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_AbortWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块写操作 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_GetStatus Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 通过USB2ISP直接输入数据和状态 -' iIndex, 指定USB2ISP设备序号 -' iStatus 指向一个双字单元,用于保存状态数据,见下行 -' 位7-位0对应USB2ISP的D7-D0引脚 -' 位8对应USB2ISP的ERR#引脚, 位9对应USB2ISP的PEMP引脚, 位10对应USB2ISP的INT#引脚, 位11对应USB2ISP的SLCT引脚, 位23对应USB2ISP的SDA引脚 -' 位13对应USB2ISP的BUSY/WAIT#引脚, 位14对应USB2ISP的AUTOFD#/DATAS#引脚,位15对应USB2ISP的SLCTIN#/ADDRS#引脚 - -Declare Function USBIO_ReadI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByRef oByte As Byte) As Boolean - -' 从I2C接口读取一个字节数据 -' iIndex, 指定USB2ISP设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' oByte 指向一个字节单元,用于保存读取的字节数据 - -Declare Function USBIO_WriteI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByVal iByte As Byte) As Boolean - -' 向I2C接口写入一个字节数据 -' iIndex, 指定USB2ISP设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' iByte 待写入的字节数据 - -Declare Function USBIO_EppReadData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_EppReadAddr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的地址数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_EppWriteData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_EppWriteAddr Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的地址数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_MemReadAddr0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存从地址0读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_MemReadAddr1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存从地址1读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_MemWriteAddr0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备向地址0写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_MemWriteAddr1 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备向地址1写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_SetExclusive Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iExclusive As Long) As Boolean -' 设置独占使用当前USB2ISP设备 -' iIndex, 指定USB2ISP设备序号 -' iExclusive 为0则设备可以共享使用,非0则独占使用 - -Declare Function USBIO_SetTimeout Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteTimeout As Long, ByVal iReadTimeout As Long) As Boolean -' 设置USB数据读写的超时 -' iIndex, // 指定USB2ISP设备序号 -' iWriteTimeout 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) -' iReadTimeout 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - -Declare Function USBIO_ReadData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取数据块 -' iIndex, 指定USB2ISP设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function USBIO_WriteData Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 写出数据块 -' iIndex, 指定USB2ISP设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function USBIO_GetDeviceName Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long '''' -' 返回指向USB2ISP设备名称的缓冲区,出错则返回NULL -' iIndex 指定USB2ISP设备序号,0对应第一个设备 - -Declare Function USBIO_FlushBuffer Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' 清空USB2ISP的缓冲区 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_WriteRead Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadStep As Long, ByVal iReadTimes As Long, ByRef oReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' USBIO_WriteRead 执行数据流命令,先输出再输入 -' iIndex, 指定USB2ISP设备序号 -' iWriteLength, 写长度,准备写出的长度 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据 -' iReadStep, 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) -' iReadTimes, 准备读取的次数 -' oReadLength, 指向长度单元,返回后为实际读取的长度 -' oReadBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - -Declare Function USBIO_SetStream Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean -' USBIO_SetStream 设置串口流模式 -' iIndex, 指定USB2ISP设备序号 -' iMode 指定模式,见下行 -' 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz,10=快速/400KHz,11=高速/750KHz -' 位2: SPI的I/O数/IO引脚, 0=单入单出(D5出/D7入),1=双入双出(D5出D4出/D7入D6入) -' 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -' 其它保留,必须为0 - -Declare Function USBIO_SetDelaymS Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iDelay As Long) As Boolean -' USBIO_SetDelaymS 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ' iIndex, 指定USB2ISP设备序号 - ' iDelay 指定延时的毫秒数 - -Declare Function USBIO_StreamI2C Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' USBIO_StreamI2C 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 -' iIndex, 指定USB2ISP设备序号 -' iWriteLength, 准备写出的数据字节数 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 -' iReadLength, 准备读取的数据字节数 -' oReadBuffer 指向一个缓冲区,返回后是读入的数据 -Declare Function USBIO_ReadEEPROM Lib "USBIOX.DLL" (ByVal iIndexas As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef oBuffer As Any) As Boolean -' i Index 指定USB2ISP设备序号 -' iEepromID 指定EEPROM型号 -' iAddr 指定数据单元的地址 -' iLength 准备读取的数据字节数 -' oBuffer 指向一个缓冲区,返回后是读入的数据 - -Declare Function USBIO_WriteEEPROM Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef iBuffer As Any) As Boolean -' iIndex, 指定USB2ISP设备序号 -' iEepromID, 指定EEPROM型号 -' iAddr, 指定数据单元的地址 -' iLength, 准备写出的数据字节数 -' iBuffer 指向一个缓冲区,放置准备写出的数据 -'---------------------------------------------------------------------------------------- -Declare Function USBIO_GetInput Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' USBIO_GetInput 通过USB2ISP直接输入数据和状态,效率比USBIO_GetStatus更高 -' iIndex, 指定USB2ISP设备序号 -' iStatus 指向一个双字单元,用于保存状态数据,参考下面的位说明 -' 位7-位0对应USB2ISP的D7-D0引脚 -' 位8对应USB2ISP的ERR#引脚, 位9对应USB2ISP的PEMP引脚, 位10对应USB2ISP的INT#引脚, 位11对应USB2ISP的SLCT引脚, 位23对应USB2ISP的SDA引脚 -' 位13对应USB2ISP的BUSY/WAIT#引脚, 位14对应USB2ISP的AUTOFD#/DATAS#引脚,位15对应USB2ISP的SLCTIN#/ADDRS#引脚 - -Declare Function USBIO_SetOutput Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnable As Long, ByVal iSetDirOut As Long, ByVal iSetDataOut As Long) As Boolean -' USBIO_SetOutput 设置USB2ISP的I/O方向,并通过USBIO_直接输出数据 -' ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** -' iIndex, 指定USB2ISP设备序号 -' iEnable, 数据有效标志,参考下面的位说明 -'// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -'// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -'// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -'// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -'// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 -' iSetDirOut, 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 -' iSetDataOut 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -'// 位7-位0对应USB2ISP的D7-D0引脚 -'// 位8对应USB2ISP的ERR#引脚, 位9对应USB2ISP的PEMP引脚, 位10对应USB2ISP的INT#引脚, 位11对应USB2ISP的SLCT引脚 -'// 位13对应USB2ISP的WAIT#引脚, 位14对应USB2ISP的DATAS#/READ#引脚,位15对应USB2ISP的ADDRS#/ADDR/ALE引脚 -'// 以下引脚只能输出,不考虑I/O方向: 位16对应USB2ISP的RESET#引脚, 位17对应USB2ISP的WRITE#引脚, 位18对应USB2ISP的SCL引脚, 位29对应USB2ISP的SDA引脚 - -Declare Function USBIO_Set_D5_D0 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iSetDirOut As Long, ByVal iSetDataOut As Long) As Boolean -' USBIO_Set_D5_D0 设置USB2ISP的D5-D0引脚的I/O方向,并通过USB2ISP的D5-D0引脚直接输出数据,效率比USBIO_SetOutput更高 -' ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** -' iIndex, 指定USB2ISP设备序号 -' iSetDirOut, 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 -' iSetDataOut 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -'// 以上数据的位5-位0分别对应USB2ISP的D5-D0引脚 - -Declare Function USBIO_StreamSPI3 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' USBIO_StreamSPI3 处理SPI数据流,3线接口,时钟线为SCK/SCL引脚,数据线为DIO/SDA引脚(准双向I/O),片选线为D0/D1/D2,速度约51K字节 -' SPI时序: SCK2/SCL引脚为时钟输出, 默认为低电平, DIO/SDA引脚在时钟上升沿之前输出, DIO/SDA引脚在时钟下降沿之后输入 -' iIndex, 指定USB2ISP设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer 指向一个缓冲区,放置准备从DIO写出的数据,返回后是从DIO读入的数据 - -Declare Function USBIO_StreamSPI4 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' USBIO_StreamSPI4 处理SPI数据流,4线接口,时钟线为SCK/D3引脚,输出数据线为DOUT/D5/MOSI引脚,输入数据线为DIN/D7/MISO引脚,片选线为D0/D1/D2,速度约68K字节 -' SPI时序: SCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5/MOSI引脚在时钟上升沿之前输出, DIN/D7/MISO引脚在时钟下降沿之后输入 -' iIndex, 指定USB2ISP设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer 指向一个缓冲区,放置准备从DOUT/MOSI写出的数据,返回后是从DIN/MISO读入的数据 - -Declare Function USBIO_StreamSPI5 Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any, ByRef ioBuffer2 As Any) As Boolean -' USBIO_StreamSPI5 处理SPI数据流,5线接口,时钟线为SCK/D3引脚,输出数据线为DOUT/D5/MOSI和DOUT2/D4引脚,输入数据线为DIN/D7/MISO和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -' SPI时序: SCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5/MOSI和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7/MISO和DIN2/D6引脚在时钟下降沿之后输入 -' iIndex, 指定USB2ISP设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer, 指向一个缓冲区,放置准备从DOUT/MOSI写出的数据,返回后是从DIN/MISO读入的数据 -' ioBuffer2 指向第二个缓冲区,放置准备从DOUT/MOSI2写出的数据,返回后是从DIN/MISO2读入的数据 - -Declare Function USBIO_BitStreamSPI Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' USBIO_BitStreamSPI 处理SPI位数据流,4线/5线接口,时钟线为SCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 -' iIndex, 指定USB2ISP设备序号 -' iLength, 准备传输的数据位数,一次最多896,建议不超过256 -' ioBuffer 指向一个缓冲区,放置准备从DOUT/MOSI/DOUT2/D2-D0写出的数据,返回后是从DIN/MISO/DIN2读入的数据 -'/* SPI时序: SCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5/MOSI和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7/MISO和DIN2/D6引脚在时钟下降沿之后输入 */ -'/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN/MISO输入, 位6从DIN/MISO2输入, 位3数据忽略 */ -'/* 在调用该API之前,应该先调用USBIO_Set_D5_D0设置USB2ISP的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - -'------------------------------------------------------------------------- - -Declare Function USBIO_SetBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean ' 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' USBIO_SetBufUpload ' 设定内部缓冲上传模式 -' iIndex, 0指定USB2ISP设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲上传模式,那么USB2ISP驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用USBIO_ReadData后将立即返回缓冲区中的已有数据 - -Declare Function USBIO_QueryBufUpload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long -' USBIO_QueryBufUpload 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 -' iIndex 指定USB2ISP设备序号,0对应第一个设备 - -Declare Function USBIO_SetBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean -' USBIO_SetBufDownload 设定内部缓冲下传模式 -' iIndex, 指定USB2ISP设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲下传模式,那么当应用程序调用USBIO_WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由USB2ISP驱动程序创建的线程自动发送直到完毕 - -Declare Function USBIO_QueryBufDownload Lib "USBIOX.DLL" (ByVal iIndex As Long) As Long ' 指定USB2ISP设备序号,0对应第一个设备 -' USBIO_QueryBufDownload 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 -' iIndex 指定USB2ISP设备序号,0对应第一个设备 - - -Declare Function USBIO_ResetInter Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetInter 复位中断数据读操作 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_ResetRead Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetRead 复位数据块读操作 -' iIndex 指定USB2ISP设备序号 - -Declare Function USBIO_ResetWrite Lib "USBIOX.DLL" (ByVal iIndex As Long) As Boolean -' USBIO_ResetRead 复位数据块读操作 -' iIndex 指定USB2ISP设备序号 - -'typedef VOID ( CALLBACK * mUSBIO_NOTIFY_ROUTINE ) ( ' 设备事件通知回调程序 -' ULONG iEventStatus ); ' 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -Public Const USBIO_DEVICE_ARRIVAL = 3 ' 设备插入事件,已经插入 -Public Const USBIO_DEVICE_REMOVE_PEND = 1 ' 设备将要拔出 -Public Const USBIO_DEVICE_REMOVE = 0 ' 设备拔出事件,已经拔出 - -Declare Function USBIO_SetDeviceNotify Lib "USBIOX.DLL" (ByVal iIndex As Long, ByRef iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean -' USBIO_SetDeviceNotify 设定设备事件通知程序 -' iIndex, 指定USB2ISP设备序号,0对应第一个设备 -' iDeviceID, 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 -' iNotifyRoutine (函数地址)指定设备事件回调程序, 为NULL则取消事件通知, 否则在检测到事件时调用该程序 - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" deleted file mode 100644 index fbb3370..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/_desktop.ini" +++ /dev/null @@ -1 +0,0 @@ -2006/10/11 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" deleted file mode 100644 index f7ba752..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frm" +++ /dev/null @@ -1,309 +0,0 @@ -VERSION 5.00 -Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "tabctl32.ocx" -Begin VB.Form frmMain - Caption = "USB2ISP DEMO WWW.USB-I2C-SPI.COM" - ClientHeight = 7230 - ClientLeft = 60 - ClientTop = 450 - ClientWidth = 7515 - Icon = "frmMain.frx":0000 - LinkTopic = "Form1" - ScaleHeight = 7230 - ScaleWidth = 7515 - StartUpPosition = 3 'Windows Default - Begin VB.CommandButton USBIO_NOTIFY_ROUTINE - Caption = "模拟处理设备挺拔中断事件" - Enabled = 0 'False - Height = 330 - Left = 2535 - TabIndex = 1 - Top = 6660 - Visible = 0 'False - Width = 3255 - End - Begin TabDlg.SSTab SSTab1 - Height = 6915 - Left = 105 - TabIndex = 0 - Top = 90 - Width = 7305 - _ExtentX = 12885 - _ExtentY = 12197 - _Version = 393216 - Tabs = 6 - Tab = 5 - TabsPerRow = 6 - TabHeight = 520 - MouseIcon = "frmMain.frx":030A - BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} - Name = "宋体" - Size = 9.75 - Charset = 134 - Weight = 400 - Underline = 0 'False - Italic = 0 'False - Strikethrough = 0 'False - EndProperty - TabCaption(0) = "EPP并口" - TabPicture(0) = "frmMain.frx":0624 - Tab(0).ControlEnabled= 0 'False - Tab(0).ControlCount= 0 - TabCaption(1) = "MEM并口" - TabPicture(1) = "frmMain.frx":0640 - Tab(1).ControlEnabled= 0 'False - Tab(1).ControlCount= 0 - TabCaption(2) = "I2C接口" - TabPicture(2) = "frmMain.frx":065C - Tab(2).ControlEnabled= 0 'False - Tab(2).ControlCount= 0 - TabCaption(3) = "EEPROM读写" - TabPicture(3) = "frmMain.frx":0678 - Tab(3).ControlEnabled= 0 'False - Tab(3).ControlCount= 0 - TabCaption(4) = "数字I/O" - TabPicture(4) = "frmMain.frx":0694 - Tab(4).ControlEnabled= 0 'False - Tab(4).ControlCount= 0 - TabCaption(5) = "SPI接口" - TabPicture(5) = "frmMain.frx":06B0 - Tab(5).ControlEnabled= -1 'True - Tab(5).Control(0)= "Frame15" - Tab(5).Control(0).Enabled= 0 'False - Tab(5).ControlCount= 1 - Begin VB.Frame Frame15 - Caption = "以流模式读写兼容SPI的4线制同步串口,API=USBIO_StreamSPI4" - Height = 6255 - Left = 120 - TabIndex = 2 - Top = 480 - Width = 6975 - Begin VB.Frame Frame16 - Caption = "SPI字节中的位顺序" - Height = 615 - Left = 960 - TabIndex = 11 - Top = 4920 - Width = 5535 - Begin VB.OptionButton SPIMSB - Caption = "高位在前" - Height = 255 - Index = 0 - Left = 2040 - TabIndex = 13 - Top = 240 - Value = -1 'True - Width = 1095 - End - Begin VB.OptionButton SPILSB - Caption = "低位在前" - Height = 255 - Index = 1 - Left = 3840 - TabIndex = 12 - Top = 240 - Width = 1095 - End - End - Begin VB.CommandButton StreamSPIRW - Caption = "Read\Write" - Height = 495 - Left = 2640 - TabIndex = 9 - Top = 4320 - Width = 1695 - End - Begin VB.TextBox SPIWRBuf - Height = 3255 - Left = 840 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 8 - Top = 1080 - Width = 5535 - End - Begin VB.TextBox SPIWRLen - Height = 405 - Left = 2760 - TabIndex = 7 - Top = 360 - Width = 1575 - End - Begin VB.Label Label31 - Caption = "(<40H)" - Height = 255 - Left = 4560 - TabIndex = 10 - Top = 480 - Width = 735 - End - Begin VB.Label Label28 - Caption = "放置准备从DO/MOSI/D5写出的数据,返回后是从DI/MISO/D7读入的数据" - Height = 255 - Left = 840 - TabIndex = 6 - Top = 840 - Width = 5655 - End - Begin VB.Label Label29 - Caption = "SPI时序: SCK/D3引脚为时钟输出, 默认为低电平, DO/MOSI/D5引脚在时钟上升沿之前输出, DI/MISO/D7引脚在时钟下降沿之后输入." - Height = 495 - Left = 840 - TabIndex = 5 - Top = 5640 - Width = 5655 - End - Begin VB.Label Label19 - Caption = "数据缓冲区ioBuffer" - Height = 255 - Left = 960 - TabIndex = 4 - Top = 4440 - Width = 1575 - End - Begin VB.Label Label18 - Caption = "准备传输的数据字节数" - Height = 255 - Left = 840 - TabIndex = 3 - Top = 480 - Width = 1935 - End - End - End -End -Attribute VB_Name = "frmMain" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Option Explicit - -Dim hopen As Long - -Private Sub Form_Load() -mIndex = 0 - SSTab1.TabVisible(0) = False - SSTab1.TabVisible(1) = False - SSTab1.TabVisible(2) = False - SSTab1.TabVisible(3) = False - SSTab1.TabVisible(4) = False - 'SSTab1.TabVisible(5) = False -hopen = USBIO_OpenDevice(mIndex) -If (hopen = INVALID_HANDLE_VALUE) Then - mOpen = False -Else - mOpen = True -End If -'设置设备插拔通知 -If USBIO_SetDeviceNotify(mIndex, vbNullString, AddressOf mUSBIO_NOTIFY_ROUTINE) = False Then - MsgBox "设置设备插拔通知失败", vbExclamation, "USB2SPI DEMO" -End If -enablebtn (mOpen) -End Sub - -Private Sub Form_Unload(Cancel As Integer) -USBIO_SetDeviceNotify mIndex, vbNullString, 0& -If (mOpen = True) Then - USBIO_CloseDevice (mIndex) - -End If -End Sub - -Private Sub StreamSPIRW_Click() -Dim mWRLen As Long -'Dim mRdLen As Long -Dim ioBuff As arrRBuffer -'Dim iBuff As arrRBuffer -'Dim buffer As arrRBuffer - -mWRLen = HexToBcd(SPIWRLen.Text) -'mRdLen = HexToBcd(I2CRDLen.Text) -Dim mTheFirst As Boolean -mTheFirst = True - -'---------------------------------------- -If (SPIMSB(0).Value = True) Then - If (USBIO_SetStream(mIndex, &H81) = False) Then - MsgBox "设置SPI高位在前模式失败! ", vbExclamation, "USB2SPI DEMO" - Exit Sub - End If -ElseIf (SPILSB(1).Value = True) Then - If (USBIO_SetStream(mIndex, &H1) = False) Then - MsgBox "设置SPI低位在前模式失败! ", vbExclamation, "USB2SPI DEMO" - Exit Sub - End If -End If -'---------------------------------------- - -If (mWRLen > 0 And SPIWRBuf.Text = "") Then - MsgBox "请输入要准备传输的数据字节数!", vbExclamation, "USB2SPI DEMO" - Exit Sub -End If -'If ((mWRLen = 0) And (mRdLen = 0)) Then -' MsgBox "请输入读数据所需的长度!", vbExclamation, "USB2SPI DEMO" -' Exit Sub -'End If - - -If (mWRLen > Len(Trim(SPIWRBuf.Text)) \ 2) Then - mWRLen = Len(Trim(SPIWRBuf.Text)) \ 2 -End If - -Call mStrtoVal(SPIWRBuf.Text, ioBuff, mWRLen) '将输入的十六进制格式字符数据转成数值数据 - -If (mOpen = True) Then - If (USBIO_StreamSPI4(mIndex, &H80, mWRLen, ioBuff) = False) Then - MsgBox "SPI流模式读写数据失败!", vbExclamation, "USB2SPI DEMO" - Else - If (mWRLen > 0) Then '有数据返回 - Dim buff As String - Dim i As Long - For i = 0 To mWRLen - 1 - buff = buff & Hex2bit(ioBuff.buf(i)) + " " - Next - SPIWRBuf.Text = buff - End If - End If - SPIWRLen.Text = Hex(mWRLen) - 'I2CRDLen.Text = Hex(mRdLen) -Else - MsgBox "设备未打开!", vbExclamation, "USB2SPI DEMO" -End If -End Sub - -Private Sub USBIO_NOTIFY_ROUTINE_KeyUp(KeyCode As Integer, Shift As Integer) '设备插拔通知处理程序 - Dim iEventStatus As Long - iEventStatus = KeyCode '插拔事件 - If (iEventStatus = USBIO_DEVICE_ARRIVAL) Then ' 设备插入事件,已经插入 - If (USBIO_OpenDevice(mIndex) = INVALID_HANDLE_VALUE) Then - MsgBox "打开设备失败!", vbOK, "USB2SPI DEMO" - mOpen = False - Else - mOpen = True '打开成功 - End If - ElseIf (iEventStatus = USBIO_DEVICE_REMOVE) Then ' 设备拔出事件,已经拔出 - USBIO_CloseDevice (mIndex) - mOpen = False - End If - enablebtn (mOpen) '设备打开,按钮可用,设备没打开,按钮禁用 -End Sub - -Public Sub enablebtn(ByVal bEnable As Boolean) 'bEnable=true :各窗体按钮可用 ;=false:enable:各窗体按钮禁用 - With frmMain - - - '.StreamICRW.Enabled = bEnable - - .StreamSPIRW.Enabled = bEnable - - If (bEnable = True) Then '窗体标题显示 - frmMain.Caption = "USB2SPI **设备已插上" - - Else - frmMain.Caption = "USB2SPI **设备已拔出" - - End If - End With - - -End Sub diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" deleted file mode 100644 index 2e25bba..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.frx" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" deleted file mode 100644 index d1715e8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/Resource/frmMain.log" +++ /dev/null @@ -1,40 +0,0 @@ -行 24: 控件 SSTab1 的类 TabDlg.SSTab 不是一个已加载的控件类。 -行 30: 属性名 _ExtentX 在 SSTab1 中是无效的。 -行 31: 属性名 _ExtentY 在 SSTab1 中是无效的。 -行 32: 属性名 _Version 在 SSTab1 中是无效的。 -行 33: 属性名 Tabs 在 SSTab1 中是无效的。 -行 34: 属性名 Tab 在 SSTab1 中是无效的。 -行 35: 属性名 TabsPerRow 在 SSTab1 中是无效的。 -行 36: 属性名 TabHeight 在 SSTab1 中是无效的。 -行 46: 属性名 TabCaption(0) 在 SSTab1 中是无效的。 -行 47: 属性名 TabPicture(0) 在 SSTab1 中是无效的。 -行 48: 属性名 Tab(0).ControlEnabled 在 SSTab1 中是无效的。 -行 49: 属性名 Tab(0).Control(0) 在 SSTab1 中是无效的。 -行 50: 属性名 Tab(0).Control(1) 在 SSTab1 中是无效的。 -行 51: 属性名 Tab(0).ControlCount 在 SSTab1 中是无效的。 -行 52: 属性名 TabCaption(1) 在 SSTab1 中是无效的。 -行 53: 属性名 TabPicture(1) 在 SSTab1 中是无效的。 -行 54: 属性名 Tab(1).ControlEnabled 在 SSTab1 中是无效的。 -行 55: 属性名 Tab(1).Control(0) 在 SSTab1 中是无效的。 -行 56: 属性名 Tab(1).Control(0).Enabled 在 SSTab1 中是无效的。 -行 57: 属性名 Tab(1).Control(1) 在 SSTab1 中是无效的。 -行 58: 属性名 Tab(1).Control(1).Enabled 在 SSTab1 中是无效的。 -行 59: 属性名 Tab(1).ControlCount 在 SSTab1 中是无效的。 -行 60: 属性名 TabCaption(2) 在 SSTab1 中是无效的。 -行 61: 属性名 TabPicture(2) 在 SSTab1 中是无效的。 -行 62: 属性名 Tab(2).ControlEnabled 在 SSTab1 中是无效的。 -行 63: 属性名 Tab(2).Control(0) 在 SSTab1 中是无效的。 -行 64: 属性名 Tab(2).Control(0).Enabled 在 SSTab1 中是无效的。 -行 65: 属性名 Tab(2).ControlCount 在 SSTab1 中是无效的。 -行 66: 属性名 TabCaption(3) 在 SSTab1 中是无效的。 -行 67: 属性名 TabPicture(3) 在 SSTab1 中是无效的。 -行 68: 属性名 Tab(3).ControlEnabled 在 SSTab1 中是无效的。 -行 69: 属性名 Tab(3).Control(0) 在 SSTab1 中是无效的。 -行 70: 属性名 Tab(3).Control(1) 在 SSTab1 中是无效的。 -行 71: 属性名 Tab(3).Control(2) 在 SSTab1 中是无效的。 -行 72: 属性名 Tab(3).ControlCount 在 SSTab1 中是无效的。 -行 73: 属性名 TabCaption(4) 在 SSTab1 中是无效的。 -行 74: 属性名 TabPicture(4) 在 SSTab1 中是无效的。 -行 75: 属性名 Tab(4).ControlEnabled 在 SSTab1 中是无效的。 -行 76: 属性名 Tab(4).Control(0) 在 SSTab1 中是无效的。 -行 77: 属性名 Tab(4).ControlCount 在 SSTab1 中是无效的。 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" deleted file mode 100644 index 5bffdfc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USB2SPI_CN.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" deleted file mode 100644 index 28f6929..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/USB2SPI/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" deleted file mode 100644 index 12decb6..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/2. USB 2 IIC&SPI - I2C\343\200\201SPI\344\270\212\344\275\215\346\234\272\350\275\257\344\273\266/msstdfmt.zip" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" deleted file mode 100644 index 9697036..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341-I2C-labview-\345\272\224\347\224\250\350\257\264\346\230\216-\346\211\200\346\234\211\347\211\210\346\234\254\351\203\275\345\217\257\344\273\245\344\275\277\347\224\250.rar" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" deleted file mode 100644 index 4d46b27..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DP.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" deleted file mode 100644 index 79c90a5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS1.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" deleted file mode 100644 index 22ef59c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341DS2.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" deleted file mode 100644 index ccc419c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341EVT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" deleted file mode 100644 index 7241072..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" deleted file mode 100644 index fff2acd..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PAR.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" deleted file mode 100644 index 6d10ca5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PCB.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" deleted file mode 100644 index b93b4ce..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341PRT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" deleted file mode 100644 index d07cfad..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" deleted file mode 100644 index cc0d23f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/CH341SER.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" deleted file mode 100644 index a3fbca3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/EV341PCB.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" deleted file mode 100644 index 438717b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/USBIOX.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" deleted file mode 100644 index d0daaf8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341A\350\212\257\347\211\207\350\265\204\346\226\231/\350\265\204\346\226\231\345\214\205\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,141 +0,0 @@ -***************************************************************** -** 整理的CH341原始资料包,均可以从官方网站下载到。 ** -***************************************************************** - -开发网上资源 - -WCH电子论坛:http://www.wch.cn/bbs/Board.asp?S=101 - -最新驱动下载:http://www.wch.cn/download/index.asp - ------------------------------------------------------------------ -资料名称 CH341DP.ZIP -资料类型 应用资料 -资料大小 132KB -资料版本 1.3 -更新时间 2009-02-11 -软件简介 基于CH341的USB下载线的工具软件和原理图PCB -支持SPI下载、I2C下载、TTL串口下载、RS232串口下载, -支持AT89S5X、AVR-MEGA系列等单片机下载 ------------------------------------------------------------------ -资料名称 CH341EVT.ZIP -资料类型 应用资料 -资料大小 722KB -资料版本 1.1 -更新时间 2006-01-12 -软件简介 CH341综合功能评估板的使用说明及应用参考, -用于USB转异步串口、转打印口或EPP并口、转2线和4线串口, -演示数字I/O控制、读写兼容I2C的EEPROM,含识别CH341串口 -的源程序、外部EEPROM配置工具、演示和速度测试源程序等 ------------------------------------------------------------------ -资料名称 CH341DS1.PDF -资料类型 技术手册 -资料大小 198KB -资料版本 2.4 -更新时间 2008-02-18 -软件简介 CH341技术手册 -用于USB转串口/USB转并口/USB转打印口/USB转I2C两线串口 -该手册是有关USB转异步串口和USB转打印口的说明 ------------------------------------------------------------------ -资料名称 CH341DS2.PDF -资料类型 技术手册 -资料大小 182KB -资料版本 2.3 -更新时间 2007-11-12 -软件简介 CH341技术手册2 -用于USB转串口/USB转并口/USB转打印口/USB转I2C两线串口 -该手册为USB转并口及USB转同步串口的说明 ------------------------------------------------------------------ -资料名称 CH341SER.EXE -资料类型 应用资料 -资料大小 227KB -资料版本 3.3 -更新时间 2012-02-15 -软件简介 USB转串口CH341/CH340的WINDOWS驱动程序安装包 -支持WINDOWS 98/ME/2000/XP/Server 2003/VISTA/ -Server 2008/Win7 32位/64位,通过微软数字签名认证, -在计算机端将USB设备仿真为标准Serial串口设备COM? -包含识别CH34X串口号及监视CH34X设备插拔的库 -用于随产品发行到最终用户 ------------------------------------------------------------------ -资料名称 CH341PAR.EXE -资料类型 应用资料 -资料大小 185KB -资料版本 2.2 -更新时间 2011-04-29 -软件简介 USB转并口CH341的WINDOWS驱动程序和DLL动态库的安装包 -支持WINDOWS 98/ME/2000/XP/Server 2000/VISTA/ -Server 2008/Win7 32位/64位,通过微软数字签名认证, -支持USB转EPP/MEM并口,支持USB转同步串口:IIC/I2C、SPI等, -用于随产品发行到最终用户 ------------------------------------------------------------------ -资料名称 CH341PCB.ZIP -资料类型 辅助资料 -资料大小 103KB -资料版本 1.2 -更新时间 2006-11-12 -软件简介 CH341的USB转串口的原理图和PCB -串口含DB9的RS232、TTL的UART等各种版本, -打印口含DB36连接器、DB25插孔两种版本, -USB转打印口的原理图请参考CH340PCB中的CH340S打印口, -可以用于OEM产品制造商 ------------------------------------------------------------------ -资料名称 USBIOX.ZIP -资料类型 辅助资料 -资料大小 96.9KB -资料版本 2.2 -更新时间 2011-05-24 -软件简介 USB转并口CH341的WINDOWS驱动程序和DLL动态库, -支持WINDOWS 98/ME/2000/XP,支持USB转EPP/MEM并口, -支持USB转同步串口:IIC/I2C、SPI等, -无CH341和原始厂商标识,用于OEM产品制造商 ------------------------------------------------------------------ -资料名称 CH341SER.ZIP -资料类型 应用资料 -资料大小 187KB -资料版本 3.3 -更新时间 2012-02-15 -软件简介 USB转串口CH340/CH341的WINDOWS 32位/64位驱动程序 -支持WINDOWS 98/ME/2000/XP/Server 2003/VISTA/ -Server 2008/Win7 32位/64位,通过微软数字签名认证, -在计算机端仿真标准Serial串口设备COM?, -含串口监控调试工具 ------------------------------------------------------------------ -资料名称 CH341DPS.ZIP (无,厂家未开放,可以向厂家申请) -资料类型 应用资料 -资料大小 98.8KB -资料版本 1.3 -更新时间 2009-01-15 -软件简介 基于CH341的USB下载线的工具软件的源程序 -支持SPI下载、I2C下载, -支持AT89S5X、AVR-MEGA系列等单片机下载 ------------------------------------------------------------------ -资料名称 EV341PCB.ZIP -资料类型 辅助资料 -资料大小 117KB -资料版本 1.2 -更新时间 2005-05-20 -软件简介 CH341综合功能评估板的原理图和PCB, -用于USB转串口、USB转打印口、USB转并口、 -USB转兼容IIC的两线串口、USB转兼容SPI的4线串口等 ------------------------------------------------------------------ -资料名称 CH341PRT.ZIP -资料类型 应用资料 -资料大小 110KB -资料版本 1.2 -更新时间 2007-09-17 -软件简介 USB转打印口CH340或CH341的WINDOWS驱动程序 -将普通并口打印机转换为USB打印机,支持WINDOWS 98/ME -(WINDOWS 2000/XP不需要安装驱动程序) ------------------------------------------------------------------ -资料名称 CH341PAR.ZIP -资料类型 应用资料 -资料大小 56.1KB -资料版本 2.2 -更新时间 2011-04-29 -软件简介 USB转并口CH341的WINDOWS驱动程序和DLL动态库 -支持WINDOWS 98/ME/2000/XP/Server 2003/VISTA/ -Server 2008/Win7 32位/64位,通过微软数字签名认证, -支持USB转EPP/MEM并口,支持USB转同步串口:IIC/I2C、SPI等, -可用于USB转异步串口代替仿真串口驱动,参考INF说明 ------------------------------------------------------------------ \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" deleted file mode 100644 index ce462f8..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341EVT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" deleted file mode 100644 index 8a01458..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.H" +++ /dev/null @@ -1,665 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V1.9 -// 南京沁恒电子有限公司 作者: W.ch 2005.09 -// CH341-DLL V1.9 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI CH341OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI CH341CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI CH341GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI CH341DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI CH341GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI CH341ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI CH341ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI CH341AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI CH341InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI CH341ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI CH341WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI CH341EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI CH341MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI CH341SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI CH341ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI CH341GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI CH341GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI CH341SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI CH341SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI CH341StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI CH341ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI CH341WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI CH341GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI CH341Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI CH341StreamSPI3( // 处理SPI数据流,3线接口,时钟线为DCK2/SCL引脚,数据线为DIO/SDA引脚(准双向I/O),片选线为D0/D1/D2,速度约51K字节 -/* SPI时序: DCK2/SCL引脚为时钟输出, 默认为低电平, DIO/SDA引脚在时钟上升沿之前输出, DIO/SDA引脚在时钟下降沿之后输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DIO写出的数据,返回后是从DIO读入的数据 - - -BOOL WINAPI CH341StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前输出, DIN/D7引脚在时钟下降沿之后输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI CH341StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI CH341BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI CH341SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI CH341QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI CH341QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI CH341SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI CH341SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - CH341OpenDevice - CH341CloseDevice - CH341SetupSerial - CH341ReadData - CH341WriteData - CH341SetBufUpload - CH341QueryBufUpload - CH341SetBufDownload - CH341QueryBufDownload - CH341SetDeviceNotify - CH341GetStatus -// 以上是主要API,以下是次要API - CH341GetVersion - CH341DriverCommand - CH341GetDrvVersion - CH341ResetDevice - CH341GetDeviceDescr - CH341GetConfigDescr - CH341SetIntRoutine - CH341ReadInter - CH341AbortInter - CH341AbortRead - CH341AbortWrite - CH341ReadI2C - CH341WriteI2C - CH341SetExclusive - CH341SetTimeout - CH341GetDeviceName - CH341GetVerIC - CH341FlushBuffer - CH341WriteRead - CH341ResetInter - CH341ResetRead - CH341ResetWrite -*/ - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" deleted file mode 100644 index 3d99b31..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341DLL.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" deleted file mode 100644 index 9189730..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.APS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" deleted file mode 100644 index 527720d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CLW" +++ /dev/null @@ -1,310 +0,0 @@ -; CLW file contains information for the MFC ClassWizard - -[General Info] -Version=1 -LastClass=CCH341PARDlg -LastTemplate=CPropertyPage -NewFileInclude1=#include "stdafx.h" -NewFileInclude2=#include "ch341par.h" -LastPage=0 - -ClassCount=10 -Class1=CCH341PARApp -Class2=CAboutDlg -Class3=CCH341PARDlg -Class4=CCtrlSheet -Class5=CEppPage -Class6=CMemPage -Class7=COtherPage - -ResourceCount=9 -Resource1=IDD_DLGMEM -Resource2=IDD_BTDISPLAY -Resource3=IDD_DLGOTHER -Resource4=IDD_DLGEPP -Resource5=IDD_EEPROMRW -Class8=CI2CSPage -Resource6=IDD_ABOUTBOX -Resource7=IDD_DLGI2C2 -Class9=CLEDBTDisp -Class10=CEeprPage -Resource8=IDD_DLGBtDisp -Resource9=IDD_CH341PAR_DIALOG - -[CLS:CCH341PARApp] -Type=0 -BaseClass=CWinApp -HeaderFile=CH341PAR.h -ImplementationFile=CH341PAR.cpp - -[CLS:CAboutDlg] -Type=0 -BaseClass=CDialog -HeaderFile=CH341PARDlg.cpp -ImplementationFile=CH341PARDlg.cpp -Filter=D -LastObject=CAboutDlg -VirtualFilter=dWC - -[CLS:CCH341PARDlg] -Type=0 -BaseClass=CDialog -HeaderFile=CH341PARDlg.h -ImplementationFile=CH341PARDlg.cpp -LastObject=CCH341PARDlg -Filter=D -VirtualFilter=dWC - -[CLS:CCtrlSheet] -Type=0 -BaseClass=CPropertySheet -HeaderFile=CtrlSheet.h -ImplementationFile=CtrlSheet.cpp -Filter=W -VirtualFilter=hWC -LastObject=CCtrlSheet - -[CLS:CEppPage] -Type=0 -BaseClass=CPropertyPage -HeaderFile=EppPage.h -ImplementationFile=EppPage.cpp -LastObject=CEppPage -Filter=D -VirtualFilter=idWC - -[CLS:CMemPage] -Type=0 -BaseClass=CPropertyPage -HeaderFile=MemPage.h -ImplementationFile=MemPage.cpp -LastObject=CMemPage -Filter=D -VirtualFilter=idWC - -[CLS:COtherPage] -Type=0 -BaseClass=CPropertyPage -HeaderFile=OtherPage.h -ImplementationFile=OtherPage.cpp -LastObject=COtherPage -Filter=D -VirtualFilter=idWC - -[DLG:IDD_ABOUTBOX] -Type=1 -Class=CAboutDlg -ControlCount=4 -Control1=IDC_STATIC,static,1342177283 -Control2=IDC_STATIC,static,1342308480 -Control3=IDC_STATIC,static,1342308352 -Control4=IDOK,button,1342373889 - -[DLG:IDD_DLGEPP] -Type=1 -Class=CEppPage -ControlCount=20 -Control1=IDC_STATIC,button,1342177287 -Control2=IDC_STATIC,static,1342308352 -Control3=IDC_EDIT_EPPLEN0,edit,1350631552 -Control4=IDC_EDIT_EPPDATA0,edit,1352732740 -Control5=IDC_BUTTON_EPPREAD0,button,1342242816 -Control6=IDC_BUTTON_EPPWRITE0,button,1342242816 -Control7=IDC_EDIT_EPPLEN1,edit,1350631552 -Control8=IDC_EDIT_EPPDATA1,edit,1352728644 -Control9=IDC_BUTTON_EPPREAD1,button,1342242816 -Control10=IDC_BUTTON_EPPWRITE1,button,1342242816 -Control11=IDC_STATIC,button,1342177287 -Control12=IDC_STATIC,static,1342308352 -Control13=IDC_STATIC,static,1342308352 -Control14=IDC_STATIC,static,1342308352 -Control15=IDC_STATIC,static,1342308352 -Control16=IDC_STATIC,static,1342308352 -Control17=IDC_STATIC,static,1342308352 -Control18=IDC_STATIC,static,1342308352 -Control19=IDC_STATIC,static,1342308352 -Control20=IDC_STATIC,static,1342308352 - -[DLG:IDD_DLGMEM] -Type=1 -Class=CMemPage -ControlCount=20 -Control1=IDC_EDIT_MEMLEN0,edit,1350631552 -Control2=IDC_EDIT_MEMDATA0,edit,1352732740 -Control3=IDC_BUTTON_MEMREAD0,button,1342242816 -Control4=IDC_BUTTON_MEMWRITE0,button,1342242816 -Control5=IDC_EDIT_MEMLEN1,edit,1350631552 -Control6=IDC_EDIT_MEMDATA1,edit,1352732740 -Control7=IDC_BUTTON_MEMREAD1,button,1342242816 -Control8=IDC_BUTTON_MEMWRITE1,button,1342242816 -Control9=IDC_STATIC,button,1342177287 -Control10=IDC_STATIC,button,1342177287 -Control11=IDC_STATIC,static,1342308352 -Control12=IDC_STATIC,static,1342308352 -Control13=IDC_STATIC,static,1342308352 -Control14=IDC_STATIC,static,1342308352 -Control15=IDC_STATIC,static,1342308352 -Control16=IDC_STATIC,static,1342308352 -Control17=IDC_STATIC,static,1342308352 -Control18=IDC_STATIC,static,1342308352 -Control19=IDC_STATIC,static,1342308352 -Control20=IDC_STATIC,static,1342308352 - -[DLG:IDD_DLGOTHER] -Type=1 -Class=COtherPage -ControlCount=13 -Control1=IDC_EDIT_I2CDEVADD,edit,1350631552 -Control2=IDC_EDIT_I2CDATAADD,edit,1350631552 -Control3=IDC_EDIT_I2CDATA,edit,1350631552 -Control4=IDC_BUTTON_I2CREAD,button,1342242816 -Control5=IDC_BUTTON_I2CWRITE,button,1342242816 -Control6=IDC_STATIC,button,1342177287 -Control7=IDC_STATIC,static,1342308364 -Control8=IDC_STATIC,static,1342308364 -Control9=IDC_STATIC,static,1342308364 -Control10=IDC_STATIC,static,1342308352 -Control11=IDC_STATIC,static,1342308352 -Control12=IDC_STATIC,static,1342308352 -Control13=IDC_STATIC,static,1342308352 - -[DLG:IDD_DLGI2C2] -Type=1 -Class=CI2CSPage -ControlCount=14 -Control1=IDC_EDIT_I2CSWRLEN,edit,1350631552 -Control2=IDC_EDIT_I2CSWRDATA,edit,1352732740 -Control3=IDC_SEND,button,1342242816 -Control4=IDC_EDIT_I2CSRDLEN,edit,1350631552 -Control5=IDC_EDIT_I2CSRDDATA,edit,1352732740 -Control6=IDC_STATIC,button,1342177287 -Control7=IDC_STATIC,static,1342308352 -Control8=IDC_STATIC,static,1342308352 -Control9=IDC_STATIC,button,1342177287 -Control10=IDC_STATIC,static,1342308352 -Control11=IDC_STATIC,static,1342308352 -Control12=IDC_STATIC,button,1342177287 -Control13=IDC_STATIC,static,1342308352 -Control14=IDC_STATIC,static,1342308352 - -[CLS:CI2CSPage] -Type=0 -HeaderFile=I2CSPage.h -ImplementationFile=I2CSPage.cpp -BaseClass=CPropertyPage -Filter=D -LastObject=CI2CSPage -VirtualFilter=idWC - -[DLG:IDD_BTDISPLAY] -Type=1 -Class=? -ControlCount=12 -Control1=IDC_SLIDER1,msctls_trackbar32,1342242874 -Control2=IDC_SLIDER2,msctls_trackbar32,1342242874 -Control3=IDC_SLIDER3,msctls_trackbar32,1342242874 -Control4=IDC_SLIDER4,msctls_trackbar32,1342242874 -Control5=IDC_SLIDER5,msctls_trackbar32,1342242874 -Control6=IDC_SLIDER6,msctls_trackbar32,1342242874 -Control7=IDC_SLIDER7,msctls_trackbar32,1342242874 -Control8=IDC_SLIDER8,msctls_trackbar32,1342242874 -Control9=IDC_STATIC,static,1342308352 -Control10=IDC_STATIC,static,1342308352 -Control11=IDC_STATIC,static,1342177287 -Control12=IDC_STATIC,button,1342177287 - -[DLG:IDD_EEPROMRW] -Type=1 -Class=CEeprPage -ControlCount=32 -Control1=IDC_STATIC,button,1342177287 -Control2=IDC_WDateAddr,edit,1350631552 -Control3=IDC_WDateLen,edit,1350631552 -Control4=IDC_WDateBuf,edit,1352732740 -Control5=IDC_WrDate,button,1342242816 -Control6=IDC_RDateAddr,edit,1350631552 -Control7=IDC_RDateLen,edit,1350631552 -Control8=IDC_RdDate,button,1342242816 -Control9=IDC_STATIC,static,1342308352 -Control10=IDC_STATIC,static,1342308352 -Control11=IDC_STATIC,static,1342308352 -Control12=IDC_STATIC,button,1342177287 -Control13=IDC_RDateBuf,edit,1352732740 -Control14=IDC_STATIC,static,1342308352 -Control15=IDC_STATIC,static,1342308352 -Control16=IDC_STATIC,static,1342308352 -Control17=IDC_STATIC,button,1342177287 -Control18=IDC_RADIO1,button,1342308361 -Control19=IDC_RADIO2,button,1342177289 -Control20=IDC_RADIO3,button,1342177289 -Control21=IDC_RADIO4,button,1342177289 -Control22=IDC_RADIO5,button,1342177289 -Control23=IDC_RADIO6,button,1342177289 -Control24=IDC_RADIO7,button,1342177289 -Control25=IDC_RADIO8,button,1342177289 -Control26=IDC_RADIO9,button,1342177289 -Control27=IDC_RADIO10,button,1342177289 -Control28=IDC_RADIO11,button,1342177289 -Control29=IDC_RADIO12,button,1342177289 -Control30=IDC_RADIO13,button,1342177289 -Control31=IDC_STATIC,static,1342308352 -Control32=IDC_STATIC,static,1342308352 - -[CLS:CEeprPage] -Type=0 -HeaderFile=EeprPage.h -ImplementationFile=EeprPage.cpp -BaseClass=CPropertyPage -Filter=D -VirtualFilter=idWC -LastObject=IDC_WrDate - -[DLG:IDD_DLGBtDisp] -Type=1 -Class=CLEDBTDisp -ControlCount=30 -Control1=IDC_STATIC,button,1342177287 -Control2=IDC_ADD0,button,1342308361 -Control3=IDC_ADD1,button,1342177289 -Control4=IDC_STATIC,button,1342177287 -Control5=IDC_STATIC,static,1342308352 -Control6=IDC_STATIC,static,1342308352 -Control7=IDC_STATIC,button,1342177287 -Control8=IDC_CHECK1,button,1342242819 -Control9=IDC_CHECK2,button,1342242819 -Control10=IDC_CHECK3,button,1342242819 -Control11=IDC_CHECK4,button,1342242819 -Control12=IDC_CHECK5,button,1342242819 -Control13=IDC_CHECK6,button,1342242819 -Control14=IDC_CHECK7,button,1342242819 -Control15=IDC_CHECK8,button,1342242819 -Control16=IDC_BtRefresh,button,1342242816 -Control17=IDC_STATIC,static,1342308352 -Control18=IDC_STATIC,static,1342308352 -Control19=IDC_STATIC,button,1342177287 -Control20=IDC_CHECK9,button,1476460547 -Control21=IDC_CHECK10,button,1476460547 -Control22=IDC_CHECK11,button,1476460547 -Control23=IDC_CHECK12,button,1476460547 -Control24=IDC_CHECK13,button,1476460547 -Control25=IDC_CHECK14,button,1476460547 -Control26=IDC_CHECK15,button,1476460547 -Control27=IDC_CHECK16,button,1476460547 -Control28=IDC_STATIC,static,1342308352 -Control29=IDC_STATIC,static,1342308352 -Control30=IDC_STATIC,static,1342308352 - -[CLS:CLEDBTDisp] -Type=0 -HeaderFile=LEDBTDisp.h -ImplementationFile=LEDBTDisp.cpp -BaseClass=CPropertyPage -Filter=D -VirtualFilter=idWC -LastObject=CLEDBTDisp - -[DLG:IDD_CH341PAR_DIALOG] -Type=1 -Class=? -ControlCount=0 - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" deleted file mode 100644 index b642488..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.CPP" +++ /dev/null @@ -1,72 +0,0 @@ -// CH341PAR.cpp : Defines the class behaviors for the application. -// - -#include "stdafx.h" -#include "Total.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARApp - -BEGIN_MESSAGE_MAP(CCH341PARApp, CWinApp) - //{{AFX_MSG_MAP(CCH341PARApp) - // NOTE - the ClassWizard will add and remove mapping macros here. - // DO NOT EDIT what you see in these blocks of generated code! - //}}AFX_MSG - ON_COMMAND(ID_HELP, CWinApp::OnHelp) -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARApp construction - -CCH341PARApp::CCH341PARApp() -{ - // TODO: add construction code here, - // Place all significant initialization in InitInstance -} -///////////////////////////////////////////////////////////////////////////// -// The one and only CCH341PARApp object - -CCH341PARApp theApp; - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARApp initialization - -BOOL CCH341PARApp::InitInstance() -{ - AfxEnableControlContainer(); - - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. - -#ifdef _AFXDLL - Enable3dControls(); // Call this when using MFC in a shared DLL -#else - Enable3dControlsStatic(); // Call this when linking to MFC statically -#endif - - CCH341PARDlg dlg; - m_pMainWnd = &dlg; - int nResponse = dlg.DoModal(); - if (nResponse == IDOK) - { - // TODO: Place code here to handle when the dialog is - // dismissed with OK - } - else if (nResponse == IDCANCEL) - { - // TODO: Place code here to handle when the dialog is - // dismissed with Cancel - } - - // Since the dialog has been closed, return FALSE so that we exit the - // application, rather than start the application's message pump. - return FALSE; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" deleted file mode 100644 index dc3b4f6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.DSW" +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "CH341PAR"=.\CH341PAR.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" deleted file mode 100644 index 643217f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" deleted file mode 100644 index 7efa94f..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.H" +++ /dev/null @@ -1,49 +0,0 @@ -// CH341PAR.h : main header file for the CH341PAR application -// - -#if !defined(AFX_CH341PAR_H__BA8EDDAD_99F0_4548_AAF9_5CFF36B45429__INCLUDED_) -#define AFX_CH341PAR_H__BA8EDDAD_99F0_4548_AAF9_5CFF36B45429__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#ifndef __AFXWIN_H__ - #error include 'stdafx.h' before including this file for PCH -#endif - -#include "resource.h" // main symbols - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARApp: -// See CH341PAR.cpp for the implementation of this class -// - -class CCH341PARApp : public CWinApp -{ -public: - CCH341PARApp(); - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CCH341PARApp) - public: - virtual BOOL InitInstance(); - //}}AFX_VIRTUAL - -// Implementation - - //{{AFX_MSG(CCH341PARApp) - // NOTE - the ClassWizard will add and remove member functions here. - // DO NOT EDIT what you see in these blocks of generated code ! - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_CH341PAR_H__BA8EDDAD_99F0_4548_AAF9_5CFF36B45429__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" deleted file mode 100644 index d3d70b2..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.PLG" +++ /dev/null @@ -1,69 +0,0 @@ - - -
-

Build Log

-

---------------------Configuration: CH341PAR - Win32 Release-------------------- -

-

Command Lines

-Creating command line "rc.exe /l 0x804 /fo"Release/CH341PAR.res" /d "NDEBUG" /d "_AFXDLL" "D:\TaskFinished\CH341EVT\CH341PARA_VC\CH341PAR.rc"" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP126.tmp" with contents -[ -/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/CH341PAR.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c -"D:\TaskFinished\CH341EVT\CH341PARA_VC\CH341PAR.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\CH341PARDlg.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\CtrlSheet.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\EeprPage.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\EppPage.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\I2CSPage.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\LEDBTDisp.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\MemPage.cpp" -"D:\TaskFinished\CH341EVT\CH341PARA_VC\OtherPage.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP126.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP127.tmp" with contents -[ -/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/CH341PAR.pch" /Yc"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c -"D:\TaskFinished\CH341EVT\CH341PARA_VC\StdAfx.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP127.tmp" -Creating temporary file "C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP128.tmp" with contents -[ -CH341DLL.LIB /nologo /subsystem:windows /incremental:no /pdb:"Release/CH341PAR.pdb" /machine:I386 /out:"Release/CH341PAR.exe" -.\Release\CH341PAR.obj -.\Release\CH341PARDlg.obj -.\Release\CtrlSheet.obj -.\Release\EeprPage.obj -.\Release\EppPage.obj -.\Release\I2CSPage.obj -.\Release\LEDBTDisp.obj -.\Release\MemPage.obj -.\Release\OtherPage.obj -.\Release\StdAfx.obj -.\Release\CH341PAR.res -] -Creating command line "link.exe @C:\DOCUME~1\Owner\LOCALS~1\Temp\RSP128.tmp" -

Output Window

-Compiling resources... -Compiling... -StdAfx.cpp -Compiling... -CH341PAR.cpp -CH341PARDlg.cpp -CtrlSheet.cpp -EeprPage.cpp -EppPage.cpp -I2CSPage.cpp -LEDBTDisp.cpp -MemPage.cpp -OtherPage.cpp -Generating Code... -Linking... - - - -

Results

-CH341PAR.exe - 0 error(s), 0 warning(s) -
- - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" deleted file mode 100644 index e02d545..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dep" +++ /dev/null @@ -1,136 +0,0 @@ -# Microsoft Developer Studio Generated Dependency File, included by CH341PAR.mak - -.\CH341PAR.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\CH341PAR.rc : \ - ".\res\CH341PAR.ico"\ - ".\res\CH341PAR.rc2"\ - - -.\CH341PARDlg.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\CtrlSheet.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\EeprPage.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\EppPage.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\I2CSPage.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\LEDBTDisp.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\MemPage.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\OtherPage.cpp : \ - ".\CH341PAR.h"\ - ".\CH341PARDlg.h"\ - ".\CtrlSheet.h"\ - ".\EeprPage.h"\ - ".\EppPage.h"\ - ".\I2CSPage.h"\ - ".\LEDBTDisp.h"\ - ".\MemPage.h"\ - ".\OtherPage.h"\ - ".\StdAfx.h"\ - ".\Total.h"\ - - -.\StdAfx.cpp : \ - ".\StdAfx.h"\ - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" deleted file mode 100644 index 0c41aaa..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.dsp" +++ /dev/null @@ -1,200 +0,0 @@ -# Microsoft Developer Studio Project File - Name="CH341PAR" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=CH341PAR - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "CH341PAR.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "CH341PAR.mak" CFG="CH341PAR - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "CH341PAR - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "CH341PAR - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "CH341PAR - Win32 Release" - -# PROP BASE Use_MFC 6 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 6 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL" -# ADD RSC /l 0x804 /d "NDEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386 -# ADD LINK32 CH341DLL.LIB /nologo /subsystem:windows /machine:I386 - -!ELSEIF "$(CFG)" == "CH341PAR - Win32 Debug" - -# PROP BASE Use_MFC 6 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 6 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c -# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL" -# ADD RSC /l 0x804 /d "_DEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 CH341DLL.LIB /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "CH341PAR - Win32 Release" -# Name "CH341PAR - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\CH341PAR.cpp -# End Source File -# Begin Source File - -SOURCE=.\CH341PAR.rc -# End Source File -# Begin Source File - -SOURCE=.\CH341PARDlg.cpp -# End Source File -# Begin Source File - -SOURCE=.\CtrlSheet.cpp -# End Source File -# Begin Source File - -SOURCE=.\EeprPage.cpp -# End Source File -# Begin Source File - -SOURCE=.\EppPage.cpp -# End Source File -# Begin Source File - -SOURCE=.\I2CSPage.cpp -# End Source File -# Begin Source File - -SOURCE=.\LEDBTDisp.cpp -# End Source File -# Begin Source File - -SOURCE=.\MemPage.cpp -# End Source File -# Begin Source File - -SOURCE=.\OtherPage.cpp -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.cpp -# ADD CPP /Yc"stdafx.h" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\CH341DLL.H -# End Source File -# Begin Source File - -SOURCE=.\CH341PAR.h -# End Source File -# Begin Source File - -SOURCE=.\CH341PARDlg.h -# End Source File -# Begin Source File - -SOURCE=.\CtrlSheet.h -# End Source File -# Begin Source File - -SOURCE=.\EeprPage.h -# End Source File -# Begin Source File - -SOURCE=.\EppPage.h -# End Source File -# Begin Source File - -SOURCE=.\I2CSPage.h -# End Source File -# Begin Source File - -SOURCE=.\LEDBTDisp.h -# End Source File -# Begin Source File - -SOURCE=.\MemPage.h -# End Source File -# Begin Source File - -SOURCE=.\OtherPage.h -# End Source File -# Begin Source File - -SOURCE=.\Resource.h -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.h -# End Source File -# Begin Source File - -SOURCE=.\Total.h -# End Source File -# End Group -# Begin Source File - -SOURCE=.\res\CH341PAR.ico -# End Source File -# End Target -# End Project diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" deleted file mode 100644 index 0bf02ab..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.mak" +++ /dev/null @@ -1,269 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Based on CH341PAR.dsp -!IF "$(CFG)" == "" -CFG=CH341PAR - Win32 Debug -!MESSAGE No configuration specified. Defaulting to CH341PAR - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "CH341PAR - Win32 Release" && "$(CFG)" != "CH341PAR - Win32 Debug" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "CH341PAR.mak" CFG="CH341PAR - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "CH341PAR - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "CH341PAR - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF - -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "CH341PAR - Win32 Release" - -OUTDIR=.\Release -INTDIR=.\Release -# Begin Custom Macros -OutDir=.\Release -# End Custom Macros - -ALL : "$(OUTDIR)\CH341PAR.exe" - - -CLEAN : - -@erase "$(INTDIR)\CH341PAR.obj" - -@erase "$(INTDIR)\CH341PAR.pch" - -@erase "$(INTDIR)\CH341PAR.res" - -@erase "$(INTDIR)\CH341PARDlg.obj" - -@erase "$(INTDIR)\CtrlSheet.obj" - -@erase "$(INTDIR)\EeprPage.obj" - -@erase "$(INTDIR)\EppPage.obj" - -@erase "$(INTDIR)\I2CSPage.obj" - -@erase "$(INTDIR)\LEDBTDisp.obj" - -@erase "$(INTDIR)\MemPage.obj" - -@erase "$(INTDIR)\OtherPage.obj" - -@erase "$(INTDIR)\StdAfx.obj" - -@erase "$(INTDIR)\vc60.idb" - -@erase "$(OUTDIR)\CH341PAR.exe" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\CH341PAR.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c -MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 -RSC_PROJ=/l 0x804 /fo"$(INTDIR)\CH341PAR.res" /d "NDEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -BSC32_FLAGS=/nologo /o"$(OUTDIR)\CH341PAR.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -LINK32_FLAGS=CH341DLL.LIB /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\CH341PAR.pdb" /machine:I386 /out:"$(OUTDIR)\CH341PAR.exe" -LINK32_OBJS= \ - "$(INTDIR)\CH341PAR.obj" \ - "$(INTDIR)\CH341PARDlg.obj" \ - "$(INTDIR)\CtrlSheet.obj" \ - "$(INTDIR)\EeprPage.obj" \ - "$(INTDIR)\EppPage.obj" \ - "$(INTDIR)\I2CSPage.obj" \ - "$(INTDIR)\LEDBTDisp.obj" \ - "$(INTDIR)\MemPage.obj" \ - "$(INTDIR)\OtherPage.obj" \ - "$(INTDIR)\StdAfx.obj" \ - "$(INTDIR)\CH341PAR.res" - -"$(OUTDIR)\CH341PAR.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "CH341PAR - Win32 Debug" - -OUTDIR=.\Debug -INTDIR=.\Debug -# Begin Custom Macros -OutDir=.\Debug -# End Custom Macros - -ALL : "$(OUTDIR)\CH341PAR.exe" - - -CLEAN : - -@erase "$(INTDIR)\CH341PAR.obj" - -@erase "$(INTDIR)\CH341PAR.pch" - -@erase "$(INTDIR)\CH341PAR.res" - -@erase "$(INTDIR)\CH341PARDlg.obj" - -@erase "$(INTDIR)\CtrlSheet.obj" - -@erase "$(INTDIR)\EeprPage.obj" - -@erase "$(INTDIR)\EppPage.obj" - -@erase "$(INTDIR)\I2CSPage.obj" - -@erase "$(INTDIR)\LEDBTDisp.obj" - -@erase "$(INTDIR)\MemPage.obj" - -@erase "$(INTDIR)\OtherPage.obj" - -@erase "$(INTDIR)\StdAfx.obj" - -@erase "$(INTDIR)\vc60.idb" - -@erase "$(INTDIR)\vc60.pdb" - -@erase "$(OUTDIR)\CH341PAR.exe" - -@erase "$(OUTDIR)\CH341PAR.ilk" - -@erase "$(OUTDIR)\CH341PAR.pdb" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP_PROJ=/nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\CH341PAR.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c -MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 -RSC_PROJ=/l 0x804 /fo"$(INTDIR)\CH341PAR.res" /d "_DEBUG" /d "_AFXDLL" -BSC32=bscmake.exe -BSC32_FLAGS=/nologo /o"$(OUTDIR)\CH341PAR.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -LINK32_FLAGS=CH341DLL.LIB /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\CH341PAR.pdb" /debug /machine:I386 /out:"$(OUTDIR)\CH341PAR.exe" /pdbtype:sept -LINK32_OBJS= \ - "$(INTDIR)\CH341PAR.obj" \ - "$(INTDIR)\CH341PARDlg.obj" \ - "$(INTDIR)\CtrlSheet.obj" \ - "$(INTDIR)\EeprPage.obj" \ - "$(INTDIR)\EppPage.obj" \ - "$(INTDIR)\I2CSPage.obj" \ - "$(INTDIR)\LEDBTDisp.obj" \ - "$(INTDIR)\MemPage.obj" \ - "$(INTDIR)\OtherPage.obj" \ - "$(INTDIR)\StdAfx.obj" \ - "$(INTDIR)\CH341PAR.res" - -"$(OUTDIR)\CH341PAR.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ENDIF - -.c{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.c{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - - -!IF "$(NO_EXTERNAL_DEPS)" != "1" -!IF EXISTS("CH341PAR.dep") -!INCLUDE "CH341PAR.dep" -!ELSE -!MESSAGE Warning: cannot find "CH341PAR.dep" -!ENDIF -!ENDIF - - -!IF "$(CFG)" == "CH341PAR - Win32 Release" || "$(CFG)" == "CH341PAR - Win32 Debug" -SOURCE=.\CH341PAR.cpp - -"$(INTDIR)\CH341PAR.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\CH341PAR.rc - -"$(INTDIR)\CH341PAR.res" : $(SOURCE) "$(INTDIR)" - $(RSC) $(RSC_PROJ) $(SOURCE) - - -SOURCE=.\CH341PARDlg.cpp - -"$(INTDIR)\CH341PARDlg.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\CtrlSheet.cpp - -"$(INTDIR)\CtrlSheet.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\EeprPage.cpp - -"$(INTDIR)\EeprPage.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\EppPage.cpp - -"$(INTDIR)\EppPage.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\I2CSPage.cpp - -"$(INTDIR)\I2CSPage.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\LEDBTDisp.cpp - -"$(INTDIR)\LEDBTDisp.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\MemPage.cpp - -"$(INTDIR)\MemPage.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\OtherPage.cpp - -"$(INTDIR)\OtherPage.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\CH341PAR.pch" - - -SOURCE=.\StdAfx.cpp - -!IF "$(CFG)" == "CH341PAR - Win32 Release" - -CPP_SWITCHES=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\CH341PAR.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c - -"$(INTDIR)\StdAfx.obj" "$(INTDIR)\CH341PAR.pch" : $(SOURCE) "$(INTDIR)" - $(CPP) @<< - $(CPP_SWITCHES) $(SOURCE) -<< - - -!ELSEIF "$(CFG)" == "CH341PAR - Win32 Debug" - -CPP_SWITCHES=/nologo /MDd /W3 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\CH341PAR.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c - -"$(INTDIR)\StdAfx.obj" "$(INTDIR)\CH341PAR.pch" : $(SOURCE) "$(INTDIR)" - $(CPP) @<< - $(CPP_SWITCHES) $(SOURCE) -<< - - -!ENDIF - - -!ENDIF - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" deleted file mode 100644 index 0f839ac..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.opt" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" deleted file mode 100644 index 6876800..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PAR.rc" +++ /dev/null @@ -1,488 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Chinese (P.R.C.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) -#ifdef _WIN32 -LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -#pragma code_page(936) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#define _AFX_NO_SPLITTER_RESOURCES\r\n" - "#define _AFX_NO_OLE_RESOURCES\r\n" - "#define _AFX_NO_TRACKER_RESOURCES\r\n" - "#define _AFX_NO_PROPERTY_RESOURCES\r\n" - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n" - "#ifdef _WIN32\r\n" - "LANGUAGE 4, 2\r\n" - "#pragma code_page(936)\r\n" - "#endif //_WIN32\r\n" - "#include ""res\\CH341PAR.rc2"" // non-Microsoft Visual C++ edited resources\r\n" - "#include ""l.chs\\afxres.rc"" // Standard components\r\n" - "#endif\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\CH341PAR.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "关于 CH341PAR" -FONT 9, "宋体" -BEGIN - ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 - LTEXT "CH341PAR 1.1 版",IDC_STATIC,40,10,119,8,SS_NOPREFIX - LTEXT "版权所有 WCH (C) 1998-2005",IDC_STATIC,40,25,135,8 - DEFPUSHBUTTON "确定",IDOK,178,7,50,14,WS_GROUP -END - -IDD_DLGEPP DIALOG DISCARDABLE 0, 0, 301, 270 -STYLE DS_MODALFRAME | WS_POPUP | WS_DISABLED | WS_CAPTION -CAPTION "EPP并口" -FONT 10, "宋体" -BEGIN - GROUPBOX "读写数据,API=EppReadData和EppWriteData",IDC_STATIC,19, - 14,266,118 - LTEXT "EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input", - IDC_STATIC,26,26,230,11 - EDITTEXT IDC_EDIT_EPPLEN0,57,52,71,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_EPPDATA0,57,67,213,38,ES_MULTILINE | - ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL - PUSHBUTTON "Read",IDC_BUTTON_EPPREAD0,166,113,40,12 - PUSHBUTTON "Write",IDC_BUTTON_EPPWRITE0,208,113,40,12 - EDITTEXT IDC_EDIT_EPPLEN1,57,177,71,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_EPPDATA1,57,192,213,38,ES_MULTILINE | - ES_AUTOVSCROLL | WS_VSCROLL - PUSHBUTTON "Read",IDC_BUTTON_EPPREAD1,168,238,40,12 - PUSHBUTTON "Write",IDC_BUTTON_EPPWRITE1,211,238,40,12 - GROUPBOX "读写地址,API=EppReadAddr和EppWriteAddr",IDC_STATIC,20, - 141,266,116 - LTEXT "数据",IDC_STATIC,28,69,25,8 - LTEXT "长度",IDC_STATIC,28,53,28,10 - LTEXT "数据",IDC_STATIC,28,194,25,8 - LTEXT "长度",IDC_STATIC,28,178,28,10 - LTEXT "EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output", - IDC_STATIC,26,38,231,12 - LTEXT "EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input", - IDC_STATIC,26,152,231,11 - LTEXT "EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output", - IDC_STATIC,26,165,234,11 - LTEXT "(<1000H)",IDC_STATIC,131,53,50,9 - LTEXT "(<1000H)",IDC_STATIC,131,178,47,9 -END - -IDD_DLGMEM DIALOG DISCARDABLE 0, 0, 305, 281 -STYLE DS_MODALFRAME | WS_POPUP | WS_DISABLED | WS_CAPTION -CAPTION "MEM并口" -FONT 10, "宋体" -BEGIN - EDITTEXT IDC_EDIT_MEMLEN0,61,51,74,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MEMDATA0,61,68,209,39,ES_MULTILINE | - ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL - PUSHBUTTON "Read",IDC_BUTTON_MEMREAD0,167,116,40,12 - PUSHBUTTON "Write",IDC_BUTTON_MEMWRITE0,209,116,40,12 - EDITTEXT IDC_EDIT_MEMLEN1,61,179,74,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_MEMDATA1,61,196,209,39,ES_MULTILINE | - ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL - PUSHBUTTON "Read",IDC_BUTTON_MEMREAD1,169,241,40,12 - PUSHBUTTON "Write",IDC_BUTTON_MEMWRITE1,211,241,40,12 - GROUPBOX "读写地址0,API=MemReadAddr0和MemWriteAddr0",IDC_STATIC, - 20,14,264,122 - GROUPBOX "读写地址1,API=MemReadAddr1和MemWriteAddr1",IDC_STATIC, - 21,142,264,117 - LTEXT "数据",IDC_STATIC,29,68,25,8 - LTEXT "长度",IDC_STATIC,29,52,28,10 - LTEXT "数据",IDC_STATIC,29,196,25,8 - LTEXT "长度",IDC_STATIC,29,180,28,10 - LTEXT "MEM方式读地址0: WR#=1, DS#/RD#=0,AS#/ADDR=0,D0-D7=input", - IDC_STATIC,27,26,230,11 - LTEXT "MEM方式写地址0: WR#=0, DS#/RD#=1,AS#/ADDR=0,D0-D7=output", - IDC_STATIC,27,38,231,12 - LTEXT "MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input", - IDC_STATIC,27,153,231,11 - LTEXT "MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output", - IDC_STATIC,27,166,234,11 - LTEXT "(<1000H)",IDC_STATIC,136,54,38,9 - LTEXT "(<1000H)",IDC_STATIC,136,181,41,9 -END - -IDD_DLGOTHER DIALOG DISCARDABLE 0, 0, 297, 266 -STYLE DS_MODALFRAME | WS_POPUP | WS_DISABLED | WS_CAPTION -CAPTION "EEPROM配置" -FONT 10, "宋体" -BEGIN - EDITTEXT IDC_EDIT_I2CDEVADD,94,35,79,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_I2CDATAADD,94,67,79,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_I2CDATA,94,92,79,13,ES_AUTOHSCROLL - PUSHBUTTON "Read",IDC_BUTTON_I2CREAD,88,117,40,12 - PUSHBUTTON "Write",IDC_BUTTON_I2CWRITE,133,117,40,12 - GROUPBOX "读写串行EEPROM配置芯片:读取或写入一个字节数据", - IDC_STATIC,28,20,240,178 - CONTROL "设备地址",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,39,39,45,8 - CONTROL "数据单元地址",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | - WS_GROUP,39,70,52,10 - CONTROL "数据",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP, - 39,94,29,11 - LTEXT "** 设备地址一般是50H,A2=A1=A0=GND",IDC_STATIC,40,52, - 152,10 - LTEXT "** 仅适用于24C01,24C02,24C04,24C08,24C16",IDC_STATIC,41, - 145,182,10 - LTEXT "** 配置芯片中的内容请参考CH341手册中的说明",IDC_STATIC, - 41,156,182,10 - LTEXT "** API=CH341ReadI2C和CH341WriteI2C",IDC_STATIC,41,167, - 182,10 -END - -IDD_DLGI2C2 DIALOG DISCARDABLE 0, 0, 307, 286 -STYLE DS_MODALFRAME | WS_POPUP | WS_DISABLED | WS_CAPTION -CAPTION "两线串口" -FONT 10, "宋体" -BEGIN - EDITTEXT IDC_EDIT_I2CSWRLEN,61,40,69,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_I2CSWRDATA,61,60,207,38,ES_MULTILINE | - ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL - PUSHBUTTON "Read/Write",IDC_SEND,213,35,53,17 - EDITTEXT IDC_EDIT_I2CSRDLEN,61,140,69,12,ES_AUTOHSCROLL - EDITTEXT IDC_EDIT_I2CSRDDATA,61,160,207,38,ES_MULTILINE | - ES_AUTOVSCROLL | ES_WANTRETURN | WS_VSCROLL - GROUPBOX "写入数据",IDC_STATIC,32,22,242,92 - LTEXT "长度",IDC_STATIC,39,42,16,8 - LTEXT "数据",IDC_STATIC,39,60,16,9 - GROUPBOX "读入数据",IDC_STATIC,32,125,242,87 - LTEXT "长度",IDC_STATIC,39,142,16,8 - LTEXT "数据",IDC_STATIC,39,160,16,9 - GROUPBOX "以流模式读写兼容I2C的两线同步串口,API=CH341StreamI2C", - IDC_STATIC,15,8,277,248 - LTEXT "(<400H)",IDC_STATIC,133,42,35,9 - LTEXT "(<400H)",IDC_STATIC,133,141,51,9 -END - -IDD_EEPROMRW DIALOG DISCARDABLE 0, 0, 307, 274 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "EEPROM读写" -FONT 10, "宋体" -BEGIN - GROUPBOX "EEPROM型号",IDC_STATIC,11,11,55,247 - EDITTEXT IDC_WDateAddr,80,30,86,14,ES_AUTOHSCROLL - EDITTEXT IDC_WDateLen,80,57,85,14,ES_AUTOHSCROLL - EDITTEXT IDC_WDateBuf,80,83,205,42,ES_MULTILINE | ES_AUTOVSCROLL | - ES_WANTRETURN | WS_VSCROLL - PUSHBUTTON "Write",IDC_WrDate,222,57,41,13 - EDITTEXT IDC_RDateAddr,80,156,86,14,ES_AUTOHSCROLL - EDITTEXT IDC_RDateLen,80,182,85,14,ES_AUTOHSCROLL - PUSHBUTTON "Read",IDC_RdDate,222,182,41,13 - LTEXT "数据单元起始地址",IDC_STATIC,80,21,85,8 - LTEXT "写入长度",IDC_STATIC,80,46,43,8 - LTEXT "多个数据(16进制,两字符一组)",IDC_STATIC,80,73,133,8 - GROUPBOX "写入数据,API=CH341WriteEEPROM",IDC_STATIC,72,11,223, - 121 - EDITTEXT IDC_RDateBuf,80,209,207,42,ES_MULTILINE | ES_AUTOVSCROLL | - ES_WANTRETURN | WS_VSCROLL - LTEXT "数据单元起始地址",IDC_STATIC,80,147,86,8 - LTEXT "读取长度",IDC_STATIC,80,172,43,8 - LTEXT "多个数据(16进制,两字符一组)",IDC_STATIC,80,198,132,8 - GROUPBOX "读出数据,API=CH341ReadEEPROM",IDC_STATIC,72,137,223, - 121 - CONTROL "24C01",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | - WS_GROUP,13,23,48,8 - CONTROL "24C02",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,13,41,48, - 8 - CONTROL "24C04",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,13,59,48, - 8 - CONTROL "24C08",IDC_RADIO4,"Button",BS_AUTORADIOBUTTON,13,77,48, - 8 - CONTROL "24C16",IDC_RADIO5,"Button",BS_AUTORADIOBUTTON,13,95,48, - 8 - CONTROL "24C32",IDC_RADIO6,"Button",BS_AUTORADIOBUTTON,13,113,48, - 8 - CONTROL "24C64",IDC_RADIO7,"Button",BS_AUTORADIOBUTTON,13,131,48, - 8 - CONTROL "24C128",IDC_RADIO8,"Button",BS_AUTORADIOBUTTON,13,149, - 48,8 - CONTROL "24C256",IDC_RADIO9,"Button",BS_AUTORADIOBUTTON,13,167, - 48,8 - CONTROL "24C512",IDC_RADIO10,"Button",BS_AUTORADIOBUTTON,13,185, - 48,8 - CONTROL "24C1024",IDC_RADIO11,"Button",BS_AUTORADIOBUTTON,13,203, - 48,8 - CONTROL "24C2048",IDC_RADIO12,"Button",BS_AUTORADIOBUTTON,13,221, - 48,8 - CONTROL "24C4096",IDC_RADIO13,"Button",BS_AUTORADIOBUTTON,13,239, - 48,8 - LTEXT "(<400H)",IDC_STATIC,168,60,51,9 - LTEXT "(<400H)",IDC_STATIC,167,184,51,9 -END - -IDD_DLGBtDisp DIALOG DISCARDABLE 0, 0, 299, 254 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "数字I/O" -FONT 10, "宋体" -BEGIN - GROUPBOX "输入:8位开关状态",IDC_STATIC,199,24,77,210 - CONTROL "地址0",IDC_ADD0,"Button",BS_AUTORADIOBUTTON | WS_GROUP, - 31,204,35,10 - CONTROL "地址1",IDC_ADD1,"Button",BS_AUTORADIOBUTTON,31,215,35, - 10 - GROUPBOX "选择MEM读写地址",IDC_STATIC,23,193,79,38 - LTEXT "选中:灯灭",IDC_STATIC,134,193,42,8 - LTEXT "未选中:灯亮",IDC_STATIC,127,205,48,8 - GROUPBOX "输出:LED显示控制",IDC_STATIC,115,24,74,209 - CONTROL "LED1",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,40,32,10 - CONTROL "LED2",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,60,32,10 - CONTROL "LED3",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,80,32,10 - CONTROL "LED4",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,99,32,10 - CONTROL "LED5",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,117,32,10 - CONTROL "LED6",IDC_CHECK6,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,137,32,10 - CONTROL "LED7",IDC_CHECK7,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,155,32,10 - CONTROL "LED8",IDC_CHECK8,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 139,172,32,10 - PUSHBUTTON "点此刷新状态",IDC_BtRefresh,209,217,54,12 - LTEXT "输出演示:LED复选框控制评估板中8个LED状态",IDC_STATIC, - 19,29,87,18 - LTEXT "输入演示:8位开关状态是点""刷新""按纽获得评估板中拨码开关的当前状态", - IDC_STATIC,19,58,90,27 - GROUPBOX "",IDC_STATIC,15,14,276,228 - CONTROL "ON1",IDC_CHECK9,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,41,28,10 - CONTROL "ON2",IDC_CHECK10,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,60,28,10 - CONTROL "ON3",IDC_CHECK11,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,79,28,10 - CONTROL "ON4",IDC_CHECK12,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,97,28,10 - CONTROL "ON5",IDC_CHECK13,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,117,28,10 - CONTROL "ON6",IDC_CHECK14,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,136,28,10 - CONTROL "ON7",IDC_CHECK15,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,154,28,10 - CONTROL "ON8",IDC_CHECK16,"Button",BS_AUTOCHECKBOX | WS_DISABLED | - WS_TABSTOP,222,172,28,10 - LTEXT "ON:选中",IDC_STATIC,215,193,42,8 - LTEXT "OFF:不选中",IDC_STATIC,212,205,48,8 - LTEXT "所用API与MEM并口相同,只是长度总是1字节",IDC_STATIC,19, - 169,87,18 -END - -IDD_CH341PAR_DIALOG DIALOG DISCARDABLE 0, 0, 281, 210 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION -CAPTION "CH341EVT" -FONT 10, "System" -BEGIN -END - - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,2,0,0 - PRODUCTVERSION 1,2,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "080404b0" - BEGIN - VALUE "Comments", "\0" - VALUE "CompanyName", "\0" - VALUE "FileDescription", "CH341PAR Microsoft 基础类应用程序\0" - VALUE "FileVersion", "1, 2, 0, 0\0" - VALUE "InternalName", "CH341PAR\0" - VALUE "LegalCopyright", "版权所有 (C) 2004\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "CH341PAR.EXE\0" - VALUE "PrivateBuild", "\0" - VALUE "ProductName", "CH341PAR 应用程序\0" - VALUE "ProductVersion", "1, 2, 0, 0\0" - VALUE "SpecialBuild", "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x804, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_ABOUTBOX, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 228 - TOPMARGIN, 7 - BOTTOMMARGIN, 48 - END - - IDD_DLGEPP, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 294 - TOPMARGIN, 7 - BOTTOMMARGIN, 263 - END - - IDD_DLGMEM, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 299 - TOPMARGIN, 7 - BOTTOMMARGIN, 268 - END - - IDD_DLGOTHER, DIALOG - BEGIN - LEFTMARGIN, 4 - RIGHTMARGIN, 290 - TOPMARGIN, 7 - BOTTOMMARGIN, 259 - END - - IDD_DLGI2C2, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 300 - TOPMARGIN, 7 - BOTTOMMARGIN, 275 - END - - IDD_EEPROMRW, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 300 - TOPMARGIN, 7 - BOTTOMMARGIN, 267 - END - - IDD_DLGBtDisp, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 292 - TOPMARGIN, 7 - BOTTOMMARGIN, 247 - END - - IDD_CH341PAR_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 274 - TOPMARGIN, 7 - BOTTOMMARGIN, 201 - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_ABOUTBOX "关于 CH341PAR(&A)..." -END - -#endif // Chinese (P.R.C.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#define _AFX_NO_SPLITTER_RESOURCES -#define _AFX_NO_OLE_RESOURCES -#define _AFX_NO_TRACKER_RESOURCES -#define _AFX_NO_PROPERTY_RESOURCES - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) -#ifdef _WIN32 -LANGUAGE 4, 2 -#pragma code_page(936) -#endif //_WIN32 -#include "res\CH341PAR.rc2" // non-Microsoft Visual C++ edited resources -#include "l.chs\afxres.rc" // Standard components -#endif - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" deleted file mode 100644 index ec326a1..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.cpp" +++ /dev/null @@ -1,280 +0,0 @@ -// CH341PARDlg.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - - - CCtrlSheet * m_sheet; - CEppPage m_epp; - CMemPage m_mem; - COtherPage m_other; - CI2CSPage m_i2cs; - CLEDBTDisp m_btdis; - CEeprPage m_eeppromwr; - ULONG inde; - HWND mainhwnd; - void CALLBACK CH341_NOTIFY_ROUTINE (ULONG iEventStatus ); // 设备事件通知回调程序 - -///////////////////////////////////////////////////////////////////////////// -// CAboutDlg dialog used for App About -class CAboutDlg : public CDialog -{ -public: - CAboutDlg(); - -// Dialog Data - //{{AFX_DATA(CAboutDlg) - enum { IDD = IDD_ABOUTBOX }; - //}}AFX_DATA - - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CAboutDlg) - //}}AFX_VIRTUAL - -// Implementation -protected: - //{{AFX_MSG(CAboutDlg) - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) -{ - //{{AFX_DATA_INIT(CAboutDlg) - //}}AFX_DATA_INIT -} - -BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) - //{{AFX_MSG_MAP(CAboutDlg) - // No message handlers - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARDlg dialog - -CCH341PARDlg::CCH341PARDlg(CWnd* pParent /*=NULL*/) - : CDialog(CCH341PARDlg::IDD, pParent) -{ - //{{AFX_DATA_INIT(CCH341PARDlg) - // NOTE: the ClassWizard will add member initialization here - //}}AFX_DATA_INIT - // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 - m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); -// p_Dlg = this; -} - -void CCH341PARDlg::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CCH341PARDlg) -// DDX_Control(pDX, IDOK, m_ok); - //}}AFX_DATA_MAP -} - -BEGIN_MESSAGE_MAP(CCH341PARDlg, CDialog) - //{{AFX_MSG_MAP(CCH341PARDlg) - ON_WM_DESTROY() - ON_WM_KEYUP() - //}}AFX_MSG_MAP - -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARDlg message handlers - -BOOL CCH341PARDlg::OnInitDialog() -{ - CDialog::OnInitDialog(); - - // Add "About..." menu item to system menu. - - // IDM_ABOUTBOX must be in the system command range. - ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); - ASSERT(IDM_ABOUTBOX < 0xF000); - - CMenu* pSysMenu = GetSystemMenu(FALSE); - if (pSysMenu != NULL) - { - CString strAboutMenu; - strAboutMenu.LoadString(IDS_ABOUTBOX); - if (!strAboutMenu.IsEmpty()) - { - pSysMenu->AppendMenu(MF_SEPARATOR); - pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); - } - } - - // Set the icon for this dialog. The framework does this automatically - // when the application's main window is not a dialog - SetIcon(m_hIcon, TRUE); // Set big icon - SetIcon(m_hIcon, FALSE); // Set small icon - - // TODO: Add extra initialization here - - mIndex = 0; //打开的设备序号 - m_open = FALSE; //设备打开标志 - - if(CH341OpenDevice(mIndex) == INVALID_HANDLE_VALUE) - { - //MessageBox("请插上设备!","CH341PAR",MB_OK|MB_ICONSTOP); - m_open = FALSE; - } - else - m_open = true; - - m_sheet = new CCtrlSheet(_T("CH341EVT")); - m_epp.p_Dlg = this; - m_mem.p_Dlg = this; - m_other.p_Dlg = this; - m_i2cs.p_Dlg =this; - m_btdis.p_Dlg =this; - m_eeppromwr.p_Dlg =this; - m_sheet->AddPage(&m_epp); - m_sheet->AddPage(&m_mem); - m_sheet->AddPage(&m_other); - m_sheet->AddPage(&m_i2cs); - m_sheet->AddPage(&m_eeppromwr); - m_sheet->AddPage(&m_btdis); - - mainhwnd=GetSafeHwnd(); - CH341SetDeviceNotify(mIndex,NULL,CH341_NOTIFY_ROUTINE); //注册监视通知 - - m_sheet->DoModal(); - - this->OnOK(); - return TRUE; // return TRUE unless you set the focus to a control -} - - -BOOL CCH341PARDlg::mClose() //关闭CH341设备 -{ - CH341CloseDevice(mIndex); - m_open = FALSE; - return TRUE; -} - -void CCH341PARDlg::OnDestroy() -{ - mClose(); - CH341SetDeviceNotify(mIndex,NULL,NULL); //注销监视通知 - CDialog::OnDestroy(); -} - - - -void CALLBACK CH341_NOTIFY_ROUTINE ( // 设备事件通知回调程序 - ULONG iEventStatus) -{ //由于中断程序中不能对系统资源操作过多,所以插拔事件处理过程通过PostMessage()放到 CCH341PARDlg::OnKeyUp()过程中 - ::PostMessage(mainhwnd,WM_KEYUP,iEventStatus,0); -} - -void CCH341PARDlg::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) //插拔事件过程 -{ - ULONG iEventStatus; - iEventStatus=nChar; //插拔事件 - - if(iEventStatus==CH341_DEVICE_ARRIVAL){ // 设备插入事件,已经插入 - if(CH341OpenDevice(mIndex) == INVALID_HANDLE_VALUE) { - MessageBox("打开设备失败!","CH341PAR",MB_OK|MB_ICONSTOP); - m_open = FALSE; - } - else - m_open = TRUE; //打开成功 - } - else if(iEventStatus==CH341_DEVICE_REMOVE){ // 设备拔出事件,已经拔出 - CH341CloseDevice(mIndex); - m_open = FALSE; - } - enablebtn(m_open); //设备打开,按钮可用,设备没打开,按钮禁用 -} -//设置按钮是否可用 -void CCH341PARDlg::enablebtn(BOOL bEnable) //bEnable=true :able ;=false:enable -{ - ::EnableWindow(::GetDlgItem(m_mem.GetSafeHwnd(), IDC_BUTTON_MEMREAD1), bEnable); - ::EnableWindow(::GetDlgItem(m_mem.GetSafeHwnd(), IDC_BUTTON_MEMWRITE1), bEnable); - ::EnableWindow(::GetDlgItem(m_mem.GetSafeHwnd(), IDC_BUTTON_MEMREAD0), bEnable); - ::EnableWindow(::GetDlgItem(m_mem.GetSafeHwnd(), IDC_BUTTON_MEMWRITE0), bEnable); - - ::EnableWindow(::GetDlgItem(m_epp.GetSafeHwnd(), IDC_BUTTON_EPPREAD0), bEnable); - ::EnableWindow(::GetDlgItem(m_epp.GetSafeHwnd(), IDC_BUTTON_EPPWRITE0), bEnable); - ::EnableWindow(::GetDlgItem(m_epp.GetSafeHwnd(), IDC_BUTTON_EPPREAD1), bEnable); - ::EnableWindow(::GetDlgItem(m_epp.GetSafeHwnd(), IDC_BUTTON_EPPWRITE1), bEnable); - - ::EnableWindow(::GetDlgItem(m_i2cs.GetSafeHwnd(), IDC_SEND), bEnable); - - ::EnableWindow(::GetDlgItem(m_btdis.GetSafeHwnd(), IDC_BtRefresh), bEnable); - - ::EnableWindow(::GetDlgItem(m_eeppromwr.GetSafeHwnd(), IDC_WrDate), bEnable); - ::EnableWindow(::GetDlgItem(m_eeppromwr.GetSafeHwnd(), IDC_RdDate), bEnable); - - ::EnableWindow(::GetDlgItem(m_other.GetSafeHwnd(), IDC_BUTTON_I2CREAD), bEnable); - ::EnableWindow(::GetDlgItem(m_other.GetSafeHwnd(), IDC_BUTTON_I2CWRITE), bEnable); - - if(m_btdis.formshow==TRUE && bEnable) //数字I/O窗口已初始化,刷新LED,按拔码开关状态 - { - m_btdis.OnCheck8(); - m_btdis.OnBtRefresh(); - } - - if(bEnable) //窗体标题显示 - m_sheet->SetWindowText("CH341EVT **设备已插上"); - else - m_sheet->SetWindowText("CH341EVT **设备已拔出"); - -} - -UCHAR CCH341PARDlg::mCharToBcd(UCHAR iChar) -{ - UCHAR mBCD; - if ( iChar >= '0' && iChar <= '9' ) mBCD = iChar -'0'; - else if ( iChar >= 'A' && iChar <= 'F' ) mBCD = iChar - 'A' + 0x0a; - else if ( iChar >= 'a' && iChar <= 'f' ) mBCD = iChar - 'a' + 0x0a; - else mBCD = 0x00; - return( mBCD ); -} - -PUCHAR CCH341PARDlg::mStrtoVal(PUCHAR str, ULONG strlen) -{ - ULONG i,j; - ULONG len; - UCHAR strRev[mMAX_BUFFER_LENGTH]; - if( strlen % 2 != 0 ) - { str[strlen] = 0; - strlen += 1; - } - len = strlen / 2; - for(i=0,j=0;j=0;i--) - { iChar=Char[i]; - if ( iChar >= '0' && iChar <= '9' ) - mBCD = mBCD+(iChar -'0')*de; - else if ( iChar >= 'A' && iChar <= 'F' ) - mBCD =mBCD+ (iChar - 'A' + 0x0a)*de; - else if ( iChar >= 'a' && iChar <= 'f' ) - mBCD =mBCD+ (iChar - 'a' + 0x0a)*de; - else return(0); - de*=16; - } - return(mBCD); -} \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" deleted file mode 100644 index 6cb1aae..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CH341PARDlg.h" +++ /dev/null @@ -1,57 +0,0 @@ -// CH341PARDlg.h : header file -// - -#if !defined(AFX_CH341PARDLG_H__792438EF_8C82_4EA0_905B_30A7A46AE668__INCLUDED_) -#define AFX_CH341PARDLG_H__792438EF_8C82_4EA0_905B_30A7A46AE668__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -///////////////////////////////////////////////////////////////////////////// -// CCH341PARDlg dialog -class CCH341PARDlg : public CDialog -{ -// Construction -public: - - ULONG mIndex; - BOOL m_open; - CCH341PARDlg(CWnd* pParent = NULL); // standard constructor - PUCHAR mStrtoVal(PUCHAR str,ULONG strlen); - UCHAR mCharToBcd(UCHAR iChar); - ULONG CCH341PARDlg::mStrToBcd(CString str); - BOOL mClose(); - void enablebtn(BOOL bEnable); - -// Dialog Data - //{{AFX_DATA(CCH341PARDlg) - enum { IDD = IDD_CH341PAR_DIALOG }; - CButton m_ok; - //}}AFX_DATA - - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CCH341PARDlg) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - HICON m_hIcon; - - // Generated message map functions - //{{AFX_MSG(CCH341PARDlg) - virtual BOOL OnInitDialog(); - afx_msg void OnDestroy(); - afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags); - //}}AFX_MSG - - DECLARE_MESSAGE_MAP() -}; - -//CCH341PARDlg * p_Dlg; -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_CH341PARDLG_H__792438EF_8C82_4EA0_905B_30A7A46AE668__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" deleted file mode 100644 index 8a6d714..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Ch341par.ncb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" deleted file mode 100644 index bc90f41..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.cpp" +++ /dev/null @@ -1,49 +0,0 @@ -// CtrlSheet.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CCtrlSheet - -IMPLEMENT_DYNAMIC(CCtrlSheet, CPropertySheet) - -CCtrlSheet::CCtrlSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) - :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) -{ -} - -CCtrlSheet::CCtrlSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) - :CPropertySheet(pszCaption, pParentWnd, iSelectPage) -{ -} - -CCtrlSheet::~CCtrlSheet() -{ -// CCH341PARDlg * pDlg ; -// pDlg = new -// pDlg->EndDialog(0); -} - - -BEGIN_MESSAGE_MAP(CCtrlSheet, CPropertySheet) - //{{AFX_MSG_MAP(CCtrlSheet) - // NOTE - the ClassWizard will add and remove mapping macros here. - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CCtrlSheet message handlers - -BOOL CCtrlSheet::OnInitDialog() -{ - BOOL bResult = CPropertySheet::OnInitDialog(); - return bResult; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" deleted file mode 100644 index 557407c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/CtrlSheet.h" +++ /dev/null @@ -1,52 +0,0 @@ -#if !defined(AFX_CTRLSHEET_H__E4B21F55_9B55_4BC5_9CFA_6BCD1FAC4F58__INCLUDED_) -#define AFX_CTRLSHEET_H__E4B21F55_9B55_4BC5_9CFA_6BCD1FAC4F58__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// CtrlSheet.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CCtrlSheet - -class CCtrlSheet : public CPropertySheet -{ - DECLARE_DYNAMIC(CCtrlSheet) - -// Construction -public: - CCtrlSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); - CCtrlSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); - -// Attributes -public: - -// Operations -public: - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CCtrlSheet) - public: - virtual BOOL OnInitDialog(); - //}}AFX_VIRTUAL - -// Implementation -public: - virtual ~CCtrlSheet(); - - // Generated message map functions -protected: - //{{AFX_MSG(CCtrlSheet) - // NOTE - the ClassWizard will add and remove member functions here. - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_CTRLSHEET_H__E4B21F55_9B55_4BC5_9CFA_6BCD1FAC4F58__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" deleted file mode 100644 index 31c3565..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.cpp" +++ /dev/null @@ -1,205 +0,0 @@ -// EeprPage.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CEeprPage property page - -IMPLEMENT_DYNCREATE(CEeprPage, CPropertyPage) - -CEeprPage::CEeprPage() : CPropertyPage(CEeprPage::IDD) -{ - //{{AFX_DATA_INIT(CEeprPage) - m_rddataaddr = _T(""); - m_rddatabuf = _T(""); - m_rddatalen = _T(""); - m_wrdataaddr = _T(""); - m_wrdatabuf = _T(""); - m_wrdatalen = _T(""); - m_eepsel = 0; - //}}AFX_DATA_INIT -} - -CEeprPage::~CEeprPage() -{ -} - -void CEeprPage::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CEeprPage) - DDX_Text(pDX, IDC_RDateAddr, m_rddataaddr); - DDV_MaxChars(pDX, m_rddataaddr, 6); - DDX_Text(pDX, IDC_RDateBuf, m_rddatabuf); - DDX_Text(pDX, IDC_RDateLen, m_rddatalen); - DDV_MaxChars(pDX, m_rddatalen, 8); - DDX_Text(pDX, IDC_WDateAddr, m_wrdataaddr); - DDV_MaxChars(pDX, m_wrdataaddr, 6); - DDX_Text(pDX, IDC_WDateBuf, m_wrdatabuf); - DDX_Text(pDX, IDC_WDateLen, m_wrdatalen); - DDV_MaxChars(pDX, m_wrdatalen, 8); - DDX_Radio(pDX, IDC_RADIO1, m_eepsel); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CEeprPage, CPropertyPage) - //{{AFX_MSG_MAP(CEeprPage) - ON_BN_CLICKED(IDC_WrDate, OnWrDate) - ON_BN_CLICKED(IDC_RdDate, OnRdDate) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CEeprPage message handlers - -void CEeprPage::OnWrDate() -{ - - UCHAR mData=0; - ULONG mDataAddr=0; - ULONG mLen=0; - UCHAR mBuff[mMAX_BUFFER_LENGTH*2]=""; - UCHAR buffer[mMAX_BUFFER_LENGTH]=""; - UpdateData(TRUE); - mLen=p_Dlg->mStrToBcd(m_wrdatalen); - if(strlen(m_wrdataaddr) == 0|| strlen(m_wrdatalen)==0) - { - MessageBox("请输入数据单元地址,长度","CH341",MB_OK); - return; - } - if(mLen > strlen(m_wrdatabuf)/2) //在输入长度和数据长度中取小值 - mLen = strlen(m_wrdatabuf)/2; - memcpy(mBuff,m_wrdatabuf,mLen*2); - memcpy(buffer, p_Dlg->mStrtoVal(&mBuff[0],mLen*2),mLen); ////m - mDataAddr = p_Dlg->mStrToBcd(m_wrdataaddr); - if(p_Dlg->m_open) - { if( !CH341WriteEEPROM( p_Dlg->mIndex,etype(m_eepsel), mDataAddr,mLen,buffer ) ) - { mLen=0; - MessageBox("读E2PROM数据失败!","CH341",MB_OK|MB_ICONSTOP); - } - m_wrdatalen.Format("%X", mLen); - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(false); - -} - -void CEeprPage::OnRdDate() -{ - UCHAR mData=0; - ULONG mDataAddr=0; - ULONG mlen=0; - UCHAR mBuff[mMAX_BUFFER_LENGTH]=""; - UpdateData(TRUE); - mlen=p_Dlg->mStrToBcd(m_rddatalen); - if(strlen(m_rddataaddr) == 0 ) - { - MessageBox("请输入数据单元地址,长度","CH341",MB_OK); - return; - } - mDataAddr =p_Dlg->mStrToBcd(m_rddataaddr); - if(p_Dlg->m_open) - { if( !CH341ReadEEPROM( p_Dlg->mIndex,etype(m_eepsel), mDataAddr,mlen,mBuff ) ) - { m_rddatalen.Format("%x",0); - MessageBox("读E2PROM数据失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { CHAR buffer[mMAX_BUFFER_LENGTH * 3]; - ULONG i,j=0; - for(i=0; i=97 && buffer[j]<=122) //小写字母转为大写字母 - buffer[j]=buffer[j]-32; - if (buffer[j+1]>=97 && buffer[j+1]<=122) //小写字母转为大写字母 - buffer[j+1]=buffer[j+1]-32; - j += 3; - } - buffer[j] = '\0'; - m_rddatabuf = _T(buffer); - m_rddatalen.Format("%x", mlen); - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(false); - -} - -_EEPROM_TYPE CEeprPage::etype(int EppSelId) //根据单选按纽,选择E2P器件型号 -{ - _EEPROM_TYPE iEepromID; - switch(EppSelId) - { - case 0: - iEepromID=ID_24C01; - break; - case 1: - iEepromID=ID_24C02; - break; - case 2: - iEepromID=ID_24C04; - break; - case 3: - iEepromID=ID_24C08; - break; - case 4: - iEepromID=ID_24C16; - break; - case 5: - iEepromID=ID_24C32; - break; - case 6: - iEepromID=ID_24C64; - break; - case 7: - iEepromID=ID_24C128; - break; - case 8: - iEepromID=ID_24C256; - break; - case 9: - iEepromID=ID_24C512; - break; - case 10: - iEepromID=ID_24C1024; - break; - case 11: - iEepromID=ID_24C2048; - break; - case 12: - iEepromID=ID_24C4096; - break; - default: - iEepromID=ID_24C01; - break; - } - return(iEepromID); -} - -BOOL CEeprPage::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - return TRUE; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" deleted file mode 100644 index c0b3f66..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EeprPage.h" +++ /dev/null @@ -1,60 +0,0 @@ -#if !defined(AFX_EEPRPAGE_H__BC66D2D0_60AA_476E_803B_ECC4EF2373E8__INCLUDED_) -#define AFX_EEPRPAGE_H__BC66D2D0_60AA_476E_803B_ECC4EF2373E8__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// EeprPage.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CEeprPage dialog - -class CEeprPage : public CPropertyPage -{ - DECLARE_DYNCREATE(CEeprPage) - -// Construction -public: - CEeprPage(); - ~CEeprPage(); - ULONG mIndex; - CCH341PARDlg * p_Dlg; - BOOL m_open; - _EEPROM_TYPE CEeprPage::etype(int EppSelId); -// Dialog Data - //{{AFX_DATA(CEeprPage) - enum { IDD = IDD_EEPROMRW }; - CString m_rddataaddr; - CString m_rddatabuf; - CString m_rddatalen; - CString m_wrdataaddr; - CString m_wrdatabuf; - CString m_wrdatalen; - int m_eepsel; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(CEeprPage) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(CEeprPage) - afx_msg void OnWrDate(); - afx_msg void OnRdDate(); - virtual BOOL OnInitDialog(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_EEPRPAGE_H__BC66D2D0_60AA_476E_803B_ECC4EF2373E8__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" deleted file mode 100644 index 04a9a9c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.cpp" +++ /dev/null @@ -1,233 +0,0 @@ -// EppPage.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CEppPage property page - -IMPLEMENT_DYNCREATE(CEppPage, CPropertyPage) - -CEppPage::CEppPage() : CPropertyPage(CEppPage::IDD) -{ - //{{AFX_DATA_INIT(CEppPage) - m_eppdata0 = _T(""); - m_eppdata1 = _T(""); - m_epplen0 = _T(""); - m_epplen1 = _T(""); - //}}AFX_DATA_INIT -} - -CEppPage::~CEppPage() -{ -} - -void CEppPage::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CEppPage) - DDX_Text(pDX, IDC_EDIT_EPPDATA0, m_eppdata0); - DDX_Text(pDX, IDC_EDIT_EPPDATA1, m_eppdata1); - DDX_Text(pDX, IDC_EDIT_EPPLEN0, m_epplen0); - DDX_Text(pDX, IDC_EDIT_EPPLEN1, m_epplen1); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CEppPage, CPropertyPage) - //{{AFX_MSG_MAP(CEppPage) - ON_BN_CLICKED(IDC_BUTTON_EPPREAD0, OnButtonEppread0) - ON_BN_CLICKED(IDC_BUTTON_EPPWRITE0, OnButtonEppwrite0) - ON_BN_CLICKED(IDC_BUTTON_EPPREAD1, OnButtonEppread1) - ON_BN_CLICKED(IDC_BUTTON_EPPWRITE1, OnButtonEppwrite1) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CEppPage message handlers - -void CEppPage::OnButtonEppread0() //EPP方式读数据 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen = p_Dlg->mStrToBcd(m_epplen0); - if(mLen <= 0) - { - MessageBox("请输入读取长度","CH341",MB_OK); - return; - } - if(p_Dlg->m_open) - { - try - { - if(!CH341EppReadData(p_Dlg->mIndex, &mBuf[0],&mLen)) - { m_epplen0.Format("%x", 0); - MessageBox("EPP方式读数据失败! ","CH341",MB_OK|MB_ICONSTOP); - } - else - { - CHAR buffer[mMAX_BUFFER_LENGTH * 3]; - ULONG i,j=0; - for(i=0; i=97 && buffer[j]<=122) //小写字母转为大写字母 - buffer[j]=buffer[j]-32; - if (buffer[j+1]>=97 && buffer[j+1]<=122) //小写字母转为大写字母 - buffer[j+1]=buffer[j+1]-32; - j += 3; - } - - buffer[j] = '\0'; - m_epplen0.Format("%x", mLen); - m_eppdata0 = buffer; - } - } - catch( CException * ) - { - TRACE("Error: %d",GetLastError()); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(false); -} - -void CEppPage::OnButtonEppwrite0() //EPP方式写数据 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH*2]=""; - UCHAR buffer[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen =p_Dlg->mStrToBcd(m_epplen0); - if(mLen<=0 || strlen(m_eppdata0) == 0) - { - MessageBox("请输入写数据和长度!","CH341",MB_OK); - return; - } - if(mLen > strlen(m_eppdata0)/2) //在输入长度和数据长度中取小值 - mLen = strlen(m_eppdata0)/2; - memcpy(mBuf,m_eppdata0,mLen*2); - memcpy(buffer, p_Dlg->mStrtoVal(&mBuf[0],mLen*2),mLen); ////m - if(p_Dlg->m_open) - { - if(!CH341EppWriteData( p_Dlg->mIndex, &buffer[0], &mLen ) ) - { - m_epplen0.Format("%x", 0); - // UpdateData(FALSE); - MessageBox("EPP写数据块0失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - m_epplen0.Format("%x", mLen); //返回写入的数据个数 - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - }UpdateData(FALSE); -} - -void CEppPage::OnButtonEppread1() //EPP方式读地址 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen =p_Dlg->mStrToBcd( m_epplen1); - if(mLen<=0) - { - MessageBox("请输入读数据长度","CH341",MB_OK); - return; - } - if(p_Dlg->m_open) - { - - if(!CH341EppReadAddr(p_Dlg->mIndex, &mBuf[0], &mLen )) - { m_epplen1.Format("%x", 0); - MessageBox("EPP方式读地址失败! ","CH341",MB_OK|MB_ICONSTOP); - } - else - { - CHAR buffer[mMAX_BUFFER_LENGTH * 3]; - ULONG i,j=0; - for(i=0; i=97 && buffer[j]<=122) //小写字母转为大写字母 - buffer[j]=buffer[j]-32; - if (buffer[j+1]>=97 && buffer[j+1]<=122) //小写字母转为大写字母 - buffer[j+1]=buffer[j+1]-32; - j += 3; - } - buffer[j] = '\0'; - m_eppdata1 =buffer; - m_epplen1.Format("%x", mLen); - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - }UpdateData(FALSE); -} - -void CEppPage::OnButtonEppwrite1() //EPP方式写地址 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH*2]=""; - UCHAR buffer[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen= p_Dlg->mStrToBcd(m_epplen1); - - if(mLen<=0 || strlen(m_eppdata1) == 0) - { - MessageBox("请输入写数据和长度!","CH341",MB_OK); - return; - } - if(mLen > strlen(m_eppdata1)/2) - mLen = strlen(m_eppdata1)/2; - memcpy(mBuf,m_eppdata1,mLen*2); - memcpy(buffer, p_Dlg->mStrtoVal(&mBuf[0],mLen*2),mLen); - if(p_Dlg->m_open) - { - if(!CH341EppWriteAddr( p_Dlg->mIndex, &buffer[0], &mLen ) ) - { - m_epplen1.Format("%x", 0); - MessageBox("EPP方式写地址失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - m_epplen1.Format("%x", mLen); - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - }UpdateData(FALSE); -} - - -BOOL CEppPage::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - return TRUE; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" deleted file mode 100644 index cc12a06..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/EppPage.h" +++ /dev/null @@ -1,59 +0,0 @@ -#if !defined(AFX_EPPPAGE_H__7431B9C5_C72E_4E12_9808_CFEA4DB6F14F__INCLUDED_) -#define AFX_EPPPAGE_H__7431B9C5_C72E_4E12_9808_CFEA4DB6F14F__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// EppPage.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CEppPage dialog - -class CEppPage : public CPropertyPage -{ - DECLARE_DYNCREATE(CEppPage) - -// Construction -public: - ULONG mIndex; - CCH341PARDlg * p_Dlg; - BOOL m_open; - CEppPage(); - ~CEppPage(); - -// Dialog Data - //{{AFX_DATA(CEppPage) - enum { IDD = IDD_DLGEPP }; - CString m_eppdata0; - CString m_eppdata1; - CString m_epplen0; - CString m_epplen1; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(CEppPage) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(CEppPage) - afx_msg void OnButtonEppread0(); - afx_msg void OnButtonEppwrite0(); - afx_msg void OnButtonEppread1(); - afx_msg void OnButtonEppwrite1(); - virtual BOOL OnInitDialog(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_EPPPAGE_H__7431B9C5_C72E_4E12_9808_CFEA4DB6F14F__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" deleted file mode 100644 index 7add0f5..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.cpp" +++ /dev/null @@ -1,133 +0,0 @@ -// I2CSPage.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CI2CSPage property page - -IMPLEMENT_DYNCREATE(CI2CSPage, CPropertyPage) - -CI2CSPage::CI2CSPage() : CPropertyPage(CI2CSPage::IDD) -{ - //{{AFX_DATA_INIT(CI2CSPage) - m_srddatabuf = _T(""); - m_swrdatabuf = _T(""); - m_srddatalen = _T(""); - m_swrdatalen = _T(""); - //}}AFX_DATA_INIT -} - -CI2CSPage::~CI2CSPage() -{ -} - -void CI2CSPage::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CI2CSPage) - DDX_Text(pDX, IDC_EDIT_I2CSRDDATA, m_srddatabuf); - DDX_Text(pDX, IDC_EDIT_I2CSWRDATA, m_swrdatabuf); - DDX_Text(pDX, IDC_EDIT_I2CSRDLEN, m_srddatalen); - DDX_Text(pDX, IDC_EDIT_I2CSWRLEN, m_swrdatalen); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CI2CSPage, CPropertyPage) - //{{AFX_MSG_MAP(CI2CSPage) - ON_BN_CLICKED(IDC_SEND, OnSend) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CI2CSPage message handlers - -void CI2CSPage::OnSend() -{ - UCHAR mwBuf[mMAX_BUFFER_LENGTH*2]=""; - char tembuf[mMAX_BUFFER_LENGTH*3]=""; - UCHAR wbuffer[mMAX_BUFFER_LENGTH]=""; - UCHAR rbuffer[mMAX_BUFFER_LENGTH]=""; - ULONG mwlen=0,mrlen=0; - UpdateData(TRUE); - mwlen = p_Dlg->mStrToBcd(m_swrdatalen); - mrlen=p_Dlg->mStrToBcd(m_srddatalen); - if (mwlen==0 && mrlen==0) - { - MessageBox("请输入长度","CH341",MB_OK); - return; - } - - else if(strlen(m_swrdatabuf) == 0 && (mwlen>0)) - { - MessageBox("请输入要写入的数据","CH341",MB_OK); - return; - } - else if(mrlen < 0 ) - { - MessageBox("请输入读数据的长度","CH341",MB_OK); - return; - } - - if (mwlen > strlen(m_swrdatabuf)/2) - mwlen = strlen(m_swrdatabuf)/2; - memcpy(mwBuf,m_swrdatabuf,mwlen*2); - memcpy(wbuffer, p_Dlg->mStrtoVal(mwBuf,mwlen*2),mwlen); - - if(p_Dlg->m_open) - { - try - { - if(!CH341StreamI2C (p_Dlg->mIndex, mwlen, &wbuffer[0], mrlen, &rbuffer[0] )) - { - m_swrdatalen.Format("%x", 0); - m_srddatalen.Format("%x", 0); //返回已读写的数据个数 - MessageBox("流模式读写数据失败!","CH341",MB_OK|MB_ICONSTOP); - } - else //发送成功 - { - m_swrdatalen.Format("%x", mwlen); - m_srddatalen.Format("%x", mrlen); //返回已读写的数据个数 - UINT i=0,j=0; - for(i=0; i=97 && tembuf[j]<=122) //小写字母转为大写字母 - tembuf[j]=tembuf[j]-32; - if (tembuf[j+1]>=97 && tembuf[j+1]<=122) //小写字母转为大写字母 - tembuf[j+1]=tembuf[j+1]-32; - j += 3; - } - m_srddatabuf=tembuf; - - }UpdateData(FALSE); - } - catch( CException * ) - { - TRACE("Error: %d",GetLastError()); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - -} - -BOOL CI2CSPage::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - return TRUE; -} \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" deleted file mode 100644 index 65357cb..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/I2CSPage.h" +++ /dev/null @@ -1,54 +0,0 @@ -#if !defined(AFX_I2CSPAGE_H__946D91A9_79D2_4CAE_9C09_D143E71BA1FC__INCLUDED_) -#define AFX_I2CSPAGE_H__946D91A9_79D2_4CAE_9C09_D143E71BA1FC__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// I2CSPage.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CI2CSPage dialog - -class CI2CSPage : public CPropertyPage -{ -DECLARE_DYNCREATE(CI2CSPage) -// Construction -public: - ULONG mIndex; - CCH341PARDlg * p_Dlg; - BOOL m_open; - CI2CSPage(); - ~CI2CSPage(); -// Dialog Data - //{{AFX_DATA(CI2CSPage) - enum { IDD = IDD_DLGI2C2 }; - CString m_srddatabuf; - CString m_swrdatabuf; - CString m_srddatalen; - CString m_swrdatalen; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(CI2CSPage) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(CI2CSPage) - afx_msg void OnSend(); - virtual BOOL OnInitDialog(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_I2CSPAGE_H__946D91A9_79D2_4CAE_9C09_D143E71BA1FC__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" deleted file mode 100644 index a3cfbcb..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.cpp" +++ /dev/null @@ -1,303 +0,0 @@ -// LEDBTDisp.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CLEDBTDisp property page - -IMPLEMENT_DYNCREATE(CLEDBTDisp, CPropertyPage) - -CLEDBTDisp::CLEDBTDisp() : CPropertyPage(CLEDBTDisp::IDD) -{ - //{{AFX_DATA_INIT(CLEDBTDisp) - m_add0 = 0; - m_nbt1val = FALSE; - m_nbt2val = FALSE; - m_nbt3val = FALSE; - m_nbt4val = FALSE; - m_nbt5val = FALSE; - m_nbt6val = FALSE; - m_nbt7val = FALSE; - m_nbt8val = FALSE; - m_led1val = FALSE; - m_led2val = FALSE; - m_led3val = FALSE; - m_led4val = FALSE; - m_led5val = FALSE; - m_led6val = FALSE; - m_led7val = FALSE; - m_led8val = FALSE; - formshow=FALSE; - //}}AFX_DATA_INIT -} - -CLEDBTDisp::~CLEDBTDisp() -{ -} - -void CLEDBTDisp::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CLEDBTDisp) - DDX_Radio(pDX, IDC_ADD0, m_add0); - DDX_Check(pDX, IDC_CHECK9, m_nbt1val); - DDX_Check(pDX, IDC_CHECK10, m_nbt2val); - DDX_Check(pDX, IDC_CHECK11, m_nbt3val); - DDX_Check(pDX, IDC_CHECK12, m_nbt4val); - DDX_Check(pDX, IDC_CHECK13, m_nbt5val); - DDX_Check(pDX, IDC_CHECK14, m_nbt6val); - DDX_Check(pDX, IDC_CHECK15, m_nbt7val); - DDX_Check(pDX, IDC_CHECK16, m_nbt8val); - DDX_Check(pDX, IDC_CHECK1, m_led1val); - DDX_Check(pDX, IDC_CHECK2, m_led2val); - DDX_Check(pDX, IDC_CHECK3, m_led3val); - DDX_Check(pDX, IDC_CHECK4, m_led4val); - DDX_Check(pDX, IDC_CHECK5, m_led5val); - DDX_Check(pDX, IDC_CHECK6, m_led6val); - DDX_Check(pDX, IDC_CHECK7, m_led7val); - DDX_Check(pDX, IDC_CHECK8, m_led8val); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CLEDBTDisp, CPropertyPage) - //{{AFX_MSG_MAP(CLEDBTDisp) - ON_BN_CLICKED(IDC_CHECK1, OnCheck1) - ON_BN_CLICKED(IDC_CHECK2, OnCheck2) - ON_BN_CLICKED(IDC_CHECK3, OnCheck3) - ON_BN_CLICKED(IDC_CHECK4, OnCheck4) - ON_BN_CLICKED(IDC_CHECK5, OnCheck5) - ON_BN_CLICKED(IDC_CHECK6, OnCheck6) - ON_BN_CLICKED(IDC_CHECK7, OnCheck7) - ON_BN_CLICKED(IDC_BtRefresh, OnBtRefresh) - ON_BN_CLICKED(IDC_CHECK8, OnCheck8) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CLEDBTDisp message handlers -bool CLEDBTDisp::MemWriteDate(void) -{ - UCHAR mBuf[1]=""; - UpdateData(true); - mBuf[0]=(m_led1val<<7)|(m_led2val<<6)|(m_led3val<<5)|(m_led4val<<4)| - (m_led5val<<3)|(m_led6val<<2)|(m_led7val<<1)|(m_led8val<<0); //组合按钮键值; - ULONG mLen=1; //数据长度 - if(p_Dlg->m_open) - { - try - { - if (m_add0==0) //用地址0方式发送数据 - { - if(!CH341MemWriteAddr0( p_Dlg->mIndex, mBuf, &mLen ) ) - { - //MessageBox("MEM写数据块0失败!","CH341",MB_OK|MB_ICONSTOP); - return(false); - } - } - else if(m_add0==1) //用地址1方式发送数据 - { - if(!CH341MemWriteAddr1( p_Dlg->mIndex, mBuf, &mLen ) ) - { - //MessageBox("MEM写数据块1失败!","CH341",MB_OK|MB_ICONSTOP); - return(false); - } - } - } - catch( CException * ) - { - TRACE("Error: %d",GetLastError()); - return(false); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - return(false); - } - return(true); -} - - - -void CLEDBTDisp::OnBtRefresh() -{ UCHAR mBuf[1]=""; - ULONG mLen=0; - mLen =1; - UpdateData(true); - if(p_Dlg->m_open) - { - if (m_add0==0) - { - if(!CH341MemReadAddr0(p_Dlg->mIndex, &mBuf[0], &mLen )) - { - MessageBox("MEM地址方式0读组合按钮失败! ","CH341",MB_OK|MB_ICONSTOP); - return; - } - } - else if(m_add0=1) - { - if(!CH341MemReadAddr1(p_Dlg->mIndex, &mBuf[0], &mLen )) - { - MessageBox("MEM地址方式1读组合按钮失败! ","CH341",MB_OK|MB_ICONSTOP); - return; - } - } - //按钮状态显示 - if (!(mBuf[0]&1)) - m_nbt1val=TRUE; - else - m_nbt1val=FALSE; - if (!(mBuf[0]& 2)) - m_nbt2val=TRUE; - else - m_nbt2val=FALSE; - if (!(mBuf[0]& 4)) - m_nbt3val=TRUE; - else - m_nbt3val=FALSE; - if (!(mBuf[0] &8)) - m_nbt4val=TRUE; - else - m_nbt4val=FALSE; - if (!(mBuf[0]& 16)) - m_nbt5val=TRUE; - else - m_nbt5val=FALSE; - if (!(mBuf[0]& 32)) - m_nbt6val=TRUE; - else - m_nbt6val=FALSE; - if (!(mBuf[0]&64)) - m_nbt7val=TRUE; - else - m_nbt7val=FALSE; - if (!(mBuf[0]&128)) - m_nbt8val=TRUE; - else - m_nbt8val=FALSE; - UpdateData(false); - } - else - { - // MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - -} - - -BOOL CLEDBTDisp::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - formshow=TRUE; - return TRUE; -} - -BOOL CLEDBTDisp::OnSetActive() -{ - if(p_Dlg->m_open) //设备打开,在当前页被激活时刷新LED,按钮状态 - { - CLEDBTDisp::OnCheck8(); - CLEDBTDisp::OnBtRefresh(); - } - - return CPropertyPage::OnSetActive(); -} - - - -void CLEDBTDisp::OnCheck1() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} -} - -void CLEDBTDisp::OnCheck2() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} -} - -void CLEDBTDisp::OnCheck3() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} -} - -void CLEDBTDisp::OnCheck4() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} - -} - -void CLEDBTDisp::OnCheck5() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} - -} - -void CLEDBTDisp::OnCheck6() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} - -} - -void CLEDBTDisp::OnCheck7() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); -} - -} - -void CLEDBTDisp::OnCheck8() -{ -if(p_Dlg->m_open) -{ -if (MemWriteDate()==false) //发LED状态 - MessageBox("发送LED状态值失败!","CH341",MB_OK|MB_ICONSTOP); - -} -} - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" deleted file mode 100644 index 647f684..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/LEDBTDisp.h" +++ /dev/null @@ -1,84 +0,0 @@ -#if !defined(AFX_LEDBTDISP_H__A6F4744C_ACE0_4FF0_B449_AEED0ED575A4__INCLUDED_) -#define AFX_LEDBTDISP_H__A6F4744C_ACE0_4FF0_B449_AEED0ED575A4__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// LEDBTDisp.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CLEDBTDisp dialog - -class CLEDBTDisp : public CPropertyPage -{ - DECLARE_DYNCREATE(CLEDBTDisp) - bool CLEDBTDisp::MemWriteDate(void);//向并口用MEM方式发送一个数据 -// void CLEDBTDisp::OnSendLEDval(); //发送LED状态值 -// Construction -public: - BOOL m_open; - UINT temx; - BOOL formshow; - ULONG mIndex; - - CLEDBTDisp(); - ~CLEDBTDisp(); - CCH341PARDlg * p_Dlg; - - void OnCheck8(); - void OnBtRefresh(); - virtual BOOL OnInitDialog(); - -// Dialog Data - //{{AFX_DATA(CLEDBTDisp) - enum { IDD = IDD_DLGBtDisp }; - int m_add0; - BOOL m_nbt1val; - BOOL m_nbt2val; - BOOL m_nbt3val; - BOOL m_nbt4val; - BOOL m_nbt5val; - BOOL m_nbt6val; - BOOL m_nbt7val; - BOOL m_nbt8val; - BOOL m_led1val; - BOOL m_led2val; - BOOL m_led3val; - BOOL m_led4val; - BOOL m_led5val; - BOOL m_led6val; - BOOL m_led7val; - BOOL m_led8val; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(CLEDBTDisp) - public: - virtual BOOL OnSetActive(); - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(CLEDBTDisp) - afx_msg void OnCheck1(); - afx_msg void OnCheck2(); - afx_msg void OnCheck3(); - afx_msg void OnCheck4(); - afx_msg void OnCheck5(); - afx_msg void OnCheck6(); - afx_msg void OnCheck7(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_LEDBTDISP_H__A6F4744C_ACE0_4FF0_B449_AEED0ED575A4__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" deleted file mode 100644 index c506a7b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.cpp" +++ /dev/null @@ -1,240 +0,0 @@ -// MemPage.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CMemPage property page - -IMPLEMENT_DYNCREATE(CMemPage, CPropertyPage) - -CMemPage::CMemPage() : CPropertyPage(CMemPage::IDD) -{ - //{{AFX_DATA_INIT(CMemPage) - m_memdata0 = _T(""); - m_memdata1 = _T(""); - m_memlen0 = _T(""); - m_memlen1 = _T(""); - //}}AFX_DATA_INIT -} - -CMemPage::~CMemPage() -{ -} - -void CMemPage::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CMemPage) - DDX_Text(pDX, IDC_EDIT_MEMDATA0, m_memdata0); - DDX_Text(pDX, IDC_EDIT_MEMDATA1, m_memdata1); - DDX_Text(pDX, IDC_EDIT_MEMLEN0, m_memlen0); - DDX_Text(pDX, IDC_EDIT_MEMLEN1, m_memlen1); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CMemPage, CPropertyPage) - //{{AFX_MSG_MAP(CMemPage) - ON_BN_CLICKED(IDC_BUTTON_MEMREAD0, OnButtonMemread0) - ON_BN_CLICKED(IDC_BUTTON_MEMWRITE0, OnButtonMemwrite0) - ON_BN_CLICKED(IDC_BUTTON_MEMREAD1, OnButtonMemread1) - ON_BN_CLICKED(IDC_BUTTON_MEMWRITE1, OnButtonMemwrite1) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CMemPage message handlers - -void CMemPage::OnButtonMemread0() //MEM方式读地址0 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen = p_Dlg->mStrToBcd(m_memlen0); - if(mLen <= 0) - { - MessageBox("请输入读数据长度","CH341",MB_OK); - return; - } - if(p_Dlg->m_open) - { - try - { - if(!CH341MemReadAddr0(p_Dlg->mIndex, &mBuf[0], &mLen )) - { m_memlen0.Format("%x", 0); - MessageBox("MEM方式读地址0失败! ","CH341",MB_OK|MB_ICONSTOP); - } - else - { - CHAR buffer[mMAX_BUFFER_LENGTH * 3]=""; - ULONG i,j=0; - for(i=0; i=97 && buffer[j]<=122) //小写字母转为大写字母 - buffer[j]=buffer[j]-32; - if (buffer[j+1]>=97 && buffer[j+1]<=122) //小写字母转为大写字母 - buffer[j+1]=buffer[j+1]-32; - j += 3; - } - buffer[j] = '\0'; - m_memdata0 = _T(buffer); - m_memlen0.Format("%x", mLen); - - } - } - catch( CException * ) - { - TRACE("Error: %d",GetLastError()); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(FALSE); -} - -void CMemPage::OnButtonMemwrite0() //MEM方式写地址0 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH*2]=""; - UCHAR buffer[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen =p_Dlg->mStrToBcd(m_memlen0); - - - if(mLen <= 0 || strlen(m_memdata0) == 0) - { - MessageBox("请输入写数据和长度","CH341",MB_OK); - return; - } - if(mLen > strlen(m_memdata0)/2) - mLen = strlen(m_memdata0)/2; - memcpy(mBuf,m_memdata0,mLen*2); - memcpy(buffer, p_Dlg->mStrtoVal(&mBuf[0],mLen*2),mLen); - if(p_Dlg->m_open) - { - try - { - if(!CH341MemWriteAddr0( p_Dlg->mIndex, &buffer[0], &mLen ) ) - { m_memlen0.Format("%x", 0); - MessageBox("MEM方式写地址0失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - m_memlen0.Format("%x", mLen); - - } - } - catch( CException * ) - { - TRACE("Error: %d",GetLastError()); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(FALSE); -} - -void CMemPage::OnButtonMemread1() //MEM方式读地址1 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen =p_Dlg->mStrToBcd(m_memlen1); - - if(mLen <= 0) - { - MessageBox("请输入读数据长度","CH341",MB_OK); - return; - } - - if(p_Dlg->m_open) - { - if(!CH341MemReadAddr1(p_Dlg->mIndex, &mBuf[0], &mLen )) - { m_memlen1.Format("%x", 0); - MessageBox("MEM方式读地址1失败! ","CH341",MB_OK|MB_ICONSTOP); - } - else - { - CHAR buffer[mMAX_BUFFER_LENGTH * 3]; - ULONG i,j=0; - for(i=0; i=97 && buffer[j]<=122) //小写字母转为大写字母 - buffer[j]=buffer[j]-32; - if (buffer[j+1]>=97 && buffer[j+1]<=122) //小写字母转为大写字母 - buffer[j+1]=buffer[j+1]-32; - j += 3; - } - buffer[j] = '\0'; - m_memdata1 = _T(buffer); - m_memlen1.Format("%x", mLen); - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - }UpdateData(FALSE); -} - -void CMemPage::OnButtonMemwrite1() //MEM方式写地址1 -{ - UCHAR mBuf[mMAX_BUFFER_LENGTH*2]=""; - UCHAR buffer[mMAX_BUFFER_LENGTH]=""; - ULONG mLen=0; - UpdateData(TRUE); - mLen =p_Dlg->mStrToBcd(m_memlen1); - if(mLen <= 0 || strlen(m_memdata1) == 0) - { - MessageBox("请输入写数据和长度","CH341",MB_OK); - return; - } - - if(mLen > strlen(m_memdata1)/2) - mLen = strlen(m_memdata1)/2; - memcpy(mBuf,m_memdata1,mLen*2); - memcpy(buffer, p_Dlg->mStrtoVal(&mBuf[0],mLen*2),mLen); - if(p_Dlg->m_open) - { - if(!CH341MemWriteAddr1( p_Dlg->mIndex, &buffer[0], &mLen ) ) - { m_memlen1.Format("%x", 0); - MessageBox("MEM方式写地址1失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - m_memlen1.Format("%x", mLen); - - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } UpdateData(FALSE); -} - -BOOL CMemPage::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - return TRUE; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" deleted file mode 100644 index 49f4d21..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/MemPage.h" +++ /dev/null @@ -1,59 +0,0 @@ -#if !defined(AFX_MEMPAGE_H__0DBAC116_A791_46F4_9896_8CABF04797D6__INCLUDED_) -#define AFX_MEMPAGE_H__0DBAC116_A791_46F4_9896_8CABF04797D6__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// MemPage.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// CMemPage dialog - -class CMemPage : public CPropertyPage -{ - DECLARE_DYNCREATE(CMemPage) - -// Construction -public: - ULONG mIndex; - CCH341PARDlg * p_Dlg; - BOOL m_open; - CMemPage(); - ~CMemPage(); - -// Dialog Data - //{{AFX_DATA(CMemPage) - enum { IDD = IDD_DLGMEM }; - CString m_memdata0; - CString m_memdata1; - CString m_memlen0; - CString m_memlen1; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(CMemPage) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(CMemPage) - afx_msg void OnButtonMemread0(); - afx_msg void OnButtonMemwrite0(); - afx_msg void OnButtonMemread1(); - afx_msg void OnButtonMemwrite1(); - virtual BOOL OnInitDialog(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_MEMPAGE_H__0DBAC116_A791_46F4_9896_8CABF04797D6__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" deleted file mode 100644 index 7c82f3b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.cpp" +++ /dev/null @@ -1,181 +0,0 @@ -// OtherPage.cpp : implementation file -// - -#include "stdafx.h" -#include "Total.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// COtherPage property page - -IMPLEMENT_DYNCREATE(COtherPage, CPropertyPage) - -COtherPage::COtherPage() : CPropertyPage(COtherPage::IDD) -{ - //{{AFX_DATA_INIT(COtherPage) - m_data = _T(""); - m_dataaddr = _T(""); - m_devaddr = _T("50"); - //}}AFX_DATA_INIT -} - -COtherPage::~COtherPage() -{ -} - -void COtherPage::DoDataExchange(CDataExchange* pDX) -{ - CPropertyPage::DoDataExchange(pDX); - //{{AFX_DATA_MAP(COtherPage) - DDX_Text(pDX, IDC_EDIT_I2CDATA, m_data); - DDV_MaxChars(pDX, m_data, 2); - DDX_Text(pDX, IDC_EDIT_I2CDATAADD, m_dataaddr); - DDV_MaxChars(pDX, m_dataaddr, 2); - DDX_Text(pDX, IDC_EDIT_I2CDEVADD, m_devaddr); - DDV_MaxChars(pDX, m_devaddr, 2); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(COtherPage, CPropertyPage) - //{{AFX_MSG_MAP(COtherPage) - ON_BN_CLICKED(IDC_BUTTON_I2CREAD, OnButtonI2cread) - ON_BN_CLICKED(IDC_BUTTON_I2CWRITE, OnButtonI2cwrite) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// COtherPage message handlers - -void COtherPage::OnButtonI2cread() //读I2C -{ - UCHAR mData=0; - UCHAR mDataAddr=0; - UCHAR mDevAddr=0; - UpdateData(TRUE); - if(strlen(m_dataaddr) == 0 ) - { - MessageBox("请输入数据单元地址","CH341",MB_OK); - return; - } - else if(strlen(m_devaddr) == 0) - { - MessageBox("请输入设备地址","CH341",MB_OK); - return; - } - if(strlen(m_dataaddr) > 2 || strlen(m_devaddr) > 2) - { - MessageBox("设备地址和数据单元地址都应不大于十六进制FFH","CH341",MB_OK); - return; - } - - if(strlen(m_dataaddr) > 1) - { - mDataAddr = (p_Dlg->mCharToBcd(m_dataaddr.GetAt(0)) << 4) + (p_Dlg->mCharToBcd(m_dataaddr.GetAt(1))); - } - else - { - mDataAddr = p_Dlg->mCharToBcd(m_dataaddr.GetAt(0)); - } - if(strlen(m_devaddr) > 1) - { - mDevAddr = (p_Dlg->mCharToBcd(m_devaddr.GetAt(0)) << 4) + (p_Dlg->mCharToBcd(m_devaddr.GetAt(1))); - } - else - { - mDevAddr = p_Dlg->mCharToBcd(m_devaddr.GetAt(0)); - } - if(p_Dlg->m_open) - { - if( !CH341ReadI2C( p_Dlg->mIndex, mDevAddr, mDataAddr, &mData ) ) - { - MessageBox("I2C读数据失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - CHAR mtemp[4]=""; - sprintf(&mtemp[0],"%2X",mData); //两位十六进制数加一个空格 - m_data=mtemp; - UpdateData(false); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } - UpdateData(false); -} - -void COtherPage::OnButtonI2cwrite() //写I2C -{ - UCHAR mData; - UCHAR mDataAddr; - UCHAR mDevAddr; - UpdateData(TRUE); - - if(strlen(m_dataaddr) == 0 || strlen(m_devaddr) == 0 || strlen(m_data) == 0) - { - MessageBox("请输入设备地址、数据单元地址和数据","CH341",MB_OK); - return; - } - if(strlen(m_dataaddr) > 2 || strlen(m_devaddr) > 2 || strlen(m_data) > 2) - { - MessageBox("设备地址、数据单元地址和待写入数据都应不大于十六进制FFH","CH341",MB_OK); - return; - } - - if(strlen(m_dataaddr) > 1) - { - mDataAddr = (p_Dlg->mCharToBcd(m_dataaddr.GetAt(0)) << 4) + (p_Dlg->mCharToBcd(m_dataaddr.GetAt(1))); - } - else - { - mDataAddr = p_Dlg->mCharToBcd(m_dataaddr.GetAt(0)); - } - if(strlen(m_devaddr) > 1) - { - mDevAddr = (p_Dlg->mCharToBcd(m_devaddr.GetAt(0)) << 4) + (p_Dlg->mCharToBcd(m_devaddr.GetAt(1))); - } - else - { - mDevAddr = p_Dlg->mCharToBcd(m_devaddr.GetAt(0)); - } - if(strlen(m_data) > 1) - { - mData = (p_Dlg->mCharToBcd(m_data.GetAt(0)) << 4) + (p_Dlg->mCharToBcd(m_data.GetAt(1))); - } - else - { - mData = p_Dlg->mCharToBcd(m_data.GetAt(0)); - } - if(p_Dlg->m_open) - { - if(!CH341WriteI2C( p_Dlg->mIndex, mDevAddr, mDataAddr, mData)) - { - MessageBox("I2C写数据失败!","CH341",MB_OK|MB_ICONSTOP); - } - else - { - MessageBox("I2C写数据成功!","CH341",MB_OK); - } - } - else - { - MessageBox("设备未打开!","CH341",MB_OK|MB_ICONSTOP); - } -} - - -BOOL COtherPage::OnInitDialog() -{ - CPropertyPage::OnInitDialog(); - - p_Dlg->enablebtn(p_Dlg->m_open ); //初始化按钮 - - return TRUE; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" deleted file mode 100644 index d566231..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/OtherPage.h" +++ /dev/null @@ -1,56 +0,0 @@ -#if !defined(AFX_OTHERPAGE_H__DDA810B7_F37F_47EB_8D2E_3FB5F0100165__INCLUDED_) -#define AFX_OTHERPAGE_H__DDA810B7_F37F_47EB_8D2E_3FB5F0100165__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 -// OtherPage.h : header file -// - -///////////////////////////////////////////////////////////////////////////// -// COtherPage dialog - -class COtherPage : public CPropertyPage -{ - DECLARE_DYNCREATE(COtherPage) - -// Construction -public: - ULONG mIndex; - CCH341PARDlg * p_Dlg; - BOOL m_open; - COtherPage(); - ~COtherPage(); - -// Dialog Data - //{{AFX_DATA(COtherPage) - enum { IDD = IDD_DLGOTHER }; - CString m_data; - CString m_dataaddr; - CString m_devaddr; - //}}AFX_DATA - - -// Overrides - // ClassWizard generate virtual function overrides - //{{AFX_VIRTUAL(COtherPage) - protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - //}}AFX_VIRTUAL - -// Implementation -protected: - // Generated message map functions - //{{AFX_MSG(COtherPage) - afx_msg void OnButtonI2cread(); - afx_msg void OnButtonI2cwrite(); - virtual BOOL OnInitDialog(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - -}; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_OTHERPAGE_H__DDA810B7_F37F_47EB_8D2E_3FB5F0100165__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" deleted file mode 100644 index 76eaeb6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.RC2" +++ /dev/null @@ -1,13 +0,0 @@ - -// CH341PAR.RC2 - resources Microsoft Visual C++ does not edit directly -// - -#ifdef APSTUDIO_INVOKED - #error this file is not editable by Microsoft Visual C++ -#endif //APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// Add manually edited resources here... - -///////////////////////////////////////////////////////////////////////////// diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" deleted file mode 100644 index 87cb41e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/RES/CH341PAR.ico" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" deleted file mode 100644 index 0911c4a..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.cpp" +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// CH341PAR.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" deleted file mode 100644 index 93745b4..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/StdAfx.h" +++ /dev/null @@ -1,27 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if !defined(AFX_STDAFX_H__7944AA31_1FE8_439B_B04F_D297023866B9__INCLUDED_) -#define AFX_STDAFX_H__7944AA31_1FE8_439B_B04F_D297023866B9__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers - -#include // MFC core and standard components -#include // MFC extensions -#include // MFC Automation classes -//#include // MFC support for Internet Explorer 4 Common Controls -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__7944AA31_1FE8_439B_B04F_D297023866B9__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" deleted file mode 100644 index eeaab68..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/Total.h" +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _TOTAL_H -#define _TOTAL_H - -//#define WINVER 0x0501 //Windows XP -//#define WINVER 0x0500 //Windows 2000 -//#define WINVER 0x0500 //Windows - - #include "CH341PAR.h" - #include "CH341PARDlg.h" - #include "CtrlSheet.h" - #include "EppPage.h" - #include "MemPage.h" - #include "OtherPage.h" - #include "CH341DLL.h" - #include "I2CSPage.h" - #include "EeprPage.h" - #include "LEDBTDisp.h" -#endif \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" deleted file mode 100644 index 076938e..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341PAR/resource.h" +++ /dev/null @@ -1,98 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by CH341PAR.rc -// -#define IDM_ABOUTBOX 0x0010 -#define IDD_ABOUTBOX 100 -#define IDS_ABOUTBOX 102 -#define IDD_CH341PAR_DIALOG 103 -#define IDR_MAINFRAME 104 -#define IDD_DLGEPP 105 -#define IDD_DLGMEM 106 -#define IDD_DLGOTHER 107 -#define IDD_DLGI2C2 108 -#define IDD_BtDisplay 109 -#define IDD_MEMBtDisp 110 -#define IDD_EEPROMRW 111 -#define IDD_DLGBtDisp 112 -#define IDC_EDIT_I2CDEVADD 113 -#define IDC_EDIT_I2CDATAADD 114 -#define IDC_EDIT_MEMDATA1 115 -#define IDC_EDIT_I2CSRDLEN 116 -#define IDC_EDIT_MEMLEN1 117 -#define IDC_BUTTON_I2CREAD 118 -#define IDC_BUTTON_I2CWRITE 119 -#define IDC_BUTTON_MEMREAD1 120 -#define IDC_EDIT_I2CDATA 121 -#define IDC_BUTTON_MEMWRITE1 122 -#define IDC_EDIT_I2CSRDDATA 123 -#define IDC_EDIT_EPPDATA0 124 -#define IDC_EDIT_EPPLEN0 125 -#define IDC_EDIT_EPPDATA1 126 -#define IDC_EDIT_EPPLEN1 127 -#define IDC_BUTTON_EPPREAD0 128 -#define IDC_BUTTON_EPPWRITE0 129 -#define IDC_BUTTON_EPPREAD1 130 -#define IDC_BUTTON_EPPWRITE1 131 -#define IDC_EDIT_MEMDATA0 132 -#define IDC_EDIT_MEMLEN0 133 -#define IDC_BUTTON_MEMREAD0 134 -#define IDC_BUTTON_MEMWRITE0 135 -#define IDC_WrDate 136 -#define IDC_SEND 137 -#define IDC_RdDate 138 -#define IDC_EDIT_I2CSWRLEN 139 -#define IDC_EDIT_I2CSWRDATA 140 -#define IDC_ADD0 141 -#define IDC_ADD1 142 -#define IDC_WDateAddr 143 -#define IDC_WDateLen 144 -#define IDC_WDateBuf 145 -#define IDC_RDateAddr 146 -#define IDC_RDateLen 147 -#define IDC_RDateBuf 148 -#define IDC_EDIT7 149 -#define IDC_EDIT8 150 -#define IDC_CHECK1 151 -#define IDC_CHECK2 152 -#define IDC_CHECK3 153 -#define IDC_CHECK4 154 -#define IDC_CHECK5 155 -#define IDC_CHECK6 156 -#define IDC_CHECK7 157 -#define IDC_CHECK8 158 -#define IDC_BtRefresh 159 -#define IDC_CHECK9 160 -#define IDC_CHECK10 161 -#define IDC_CHECK11 162 -#define IDC_CHECK12 163 -#define IDC_CHECK13 164 -#define IDC_CHECK14 165 -#define IDC_CHECK15 166 -#define IDC_CHECK16 167 -#define IDC_RADIO1 168 -#define IDC_RADIO2 169 -#define IDC_RADIO3 170 -#define IDC_RADIO4 171 -#define IDC_RADIO5 172 -#define IDC_RADIO6 173 -#define IDC_RADIO7 174 -#define IDC_RADIO8 175 -#define IDC_RADIO9 176 -#define IDC_RADIO10 177 -#define IDC_RADIO11 178 -#define IDC_RADIO12 179 -#define IDC_RADIO13 180 -#define IDC_EDIT1 183 -#define IDC_EDIT2 184 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 181 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 185 -#define _APS_NEXT_SYMED_VALUE 183 -#endif -#endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" deleted file mode 100644 index 2baa1c8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341DLL.BAS" +++ /dev/null @@ -1,616 +0,0 @@ -Attribute VB_Name = "CH341DLL" -Option Explicit -' 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http:'www.winchiphead.com ** -'**************************************** -'** DLL for USB interface chip CH341 ** -'** C, VC5.0 ** -'**************************************** -' -' USB总线接口芯片CH341并口应用层接口库 V1.6 -' 南京沁恒电子有限公司 作者: W.ch 2005.04 -' CH341-DLL V1.6 -' 运行环境: Windows 98/ME, Windows 2000/XP -' support USB chip: CH341, CH341A -' USB => Parallel, I2C, SPI, JTAG ... -' -Public Enum EEPROM_TYPE ' EEPROM型号定义 - ID_24C01 = 0 - ID_24C02 = 1 - ID_24C04 = 2 - ID_24C08 = 3 - ID_24C16 = 4 - ID_24C32 = 5 - ID_24C64 = 6 - ID_24C128 = 7 - ID_24C256 = 8 - ID_24C512 = 9 - ID_24C1024 = 10 - ID_24C2048 = 11 - ID_24C4096 = 12 -End Enum - -Type mUspValue - mUspValueLow As Byte ' 02H 值参数低字节 - mUspValueHigh As Byte ' 03H 值参数高字节 -End Type -Type mUspIndex - mUspIndexLow As Byte ' 04H 索引参数低字节 - mUspIndexHigh As Byte ' 05H 索引参数高字节 -End Type -Type USB_SETUP_PKT ' USB控制传输的建立阶段的数据请求包结构 - mUspReqType As Byte ' 00H 请求类型 - mUspRequest As Byte ' 01H 请求代码 - mUspValue As mUspValue ' 02H-03H 值参数 - mUspIndex As mUspIndex ' 04H-05H 索引参数 - mLength As Integer ' 06H-07H 数据阶段的数据长度 -End Type - -Public Const INVALID_HANDLE_VALUE = -1 '错误码 -Public Const mCH341_PACKET_LENGTH = 32 ' CH341支持的数据包的长度 -Public Const mCH341_PKT_LEN_SHORT = 8 ' CH341支持的短数据包的长度 - -Type WIN32_COMMAND '定义WIN32命令接口结构 - mFunction As Long '输入时指定功能代码或者管道号 - '输出时返回操作状态 - mLength As Long '存取长度,返回后续数据的长度 - mBuffer(mCH341_PACKET_LENGTH - 1) As Byte '数据缓冲区,长度为0至255B -End Type -Public mWIN32_COMMAND As WIN32_COMMAND - -Public Const FILE_DEVICE_UNKNOWN = &H22 -Public Const FILE_ANY_ACCESS = 0 -Public Const METHOD_BUFFERED = 0 -' WIN32应用层接口命令 -Public Const IOCTL_CH341_COMMAND = (FILE_DEVICE_UNKNOWN * (2 ^ 16) + FILE_ANY_ACCESS * 2 ^ 14 + &HF34 * 2 ^ 2 + METHOD_BUFFERED) ' 专用接口 - -Const mWIN32_COMMAND_HEAD = 8 ' WIN32命令接口的头长度 - -Public Const mCH341_MAX_NUMBER = 16 ' 最多同时连接的CH341数 - -Public Const mMAX_BUFFER_LENGTH = &H1000 ' 数据缓冲区最大长度4096 - -Public Const mMAX_COMMAND_LENGTH = (mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH) ' 最大数据长度加上命令结构头的长度 - -Public Const mDEFAULT_BUFFER_LEN = &H400 ' 数据缓冲区默认长度1024 - -Public Const mDEFAULT_COMMAND_LEN = (mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN) ' 默认数据长度加上命令结构头的长度 - - -' CH341端点地址 -Public Const mCH341_ENDP_INTER_UP = &H81 ' CH341的中断数据上传端点的地址 -Public Const mCH341_ENDP_INTER_DOWN = &H1 ' CH341的中断数据下传端点的地址 -Public Const mCH341_ENDP_DATA_UP = &H82 ' CH341的数据块上传端点的地址 -Public Const mCH341_ENDP_DATA_DOWN = &H2 ' CH341的数据块下传端点的地址 - - -' 设备层接口提供的管道操作命令 -Public Const mPipeDeviceCtrl = &H4 ' CH341的综合控制管道 -Public Const mPipeInterUp = &H5 ' CH341的中断数据上传管道 -Public Const mPipeDataUp = &H6 ' CH341的数据块上传管道 -Public Const mPipeDataDown = &H7 ' CH341的数据块下传管道 - -' 应用层接口的功能代码 -Public Const mFuncNoOperation = &H0 ' 无操作 -Public Const mFuncGetVersion = &H1 ' 获取驱动程序版本号 -Public Const mFuncGetConfig = &H2 ' 获取USB设备配置描述符 -Public Const mFuncSetTimeout = &H9 ' 设置USB通讯超时 -Public Const mFuncSetExclusive = &HB ' 设置独占使用 -Public Const mFuncResetDevice = &HC ' 复位USB设备 -Public Const mFuncResetPipe = &HD ' 复位USB管道 -Public Const mFuncAbortPipe = &HE ' 取消USB管道的数据请求 - -' CH341并口专用的功能代码 -Public Const mFuncSetParaMode = &HF ' 设置并口模式 -Public Const mFuncReadData0 = &H10 ' 从并口读取数据块0 -Public Const mFuncReadData1 = &H11 ' 从并口读取数据块1 -Public Const mFuncWriteData0 = &H12 ' 向并口写入数据块0 -Public Const mFuncWriteData1 = &H13 ' 向并口写入数据块1 -Public Const mFuncWriteRead = &H14 ' 先输出再输入 - - -' USB设备标准请求代码 -Public Const mUSB_CLR_FEATURE = &H1 -Public Const mUSB_SET_FEATURE = &H3 -Public Const mUSB_GET_STATUS = &H0 -Public Const mUSB_SET_ADDRESS = &H5 -Public Const mUSB_GET_DESCR = &H6 -Public Const mUSB_SET_DESCR = &H7 -Public Const mUSB_GET_CONFIG = &H8 -Public Const mUSB_SET_CONFIG = &H9 -Public Const mUSB_GET_INTERF = &HA -Public Const mUSB_SET_INTERF = &HB -Public Const mUSB_SYNC_FRAME = &HC - -' CH341控制传输的厂商专用请求类型 -Public Const mCH341_VENDOR_READ = &HC0 ' 通过控制传输实现的CH341厂商专用读操作 -Public Const mCH341_VENDOR_WRITE = &H40 ' 通过控制传输实现的CH341厂商专用写操作 - -' CH341控制传输的厂商专用请求代码 -Public Const mCH341_PARA_INIT = &HB1 ' 初始化并口 -Public Const mCH341_I2C_STATUS = &H52 ' 获取I2C接口的状态 -Public Const mCH341_I2C_COMMAND = &H53 ' 发出I2C接口的命令 - -' CH341并口操作命令代码 -Public Const mCH341_PARA_CMD_R0 = &HAC ' 从并口读数据0 -Public Const mCH341_PARA_CMD_R1 = &HAD ' 从并口读数据1 -Public Const mCH341_PARA_CMD_W0 = &HA6 ' 向并口写数据0 -Public Const mCH341_PARA_CMD_W1 = &HA7 ' 向并口写数据1 -Public Const mCH341_PARA_CMD_STS = &HA0 ' 获取并口状态 - -' CH341A并口操作命令代码 -Public Const mCH341A_CMD_SET_OUTPUT = &HA1 ' 设置并口输出 -Public Const mCH341A_CMD_IO_ADDR = &HA2 ' MEM带地址读写/输入输出,从次字节开始为命令流 -Public Const mCH341A_CMD_SPI_STREAM = &HA8 ' SPI接口的命令包,从次字节开始为数据流 -Public Const mCH341A_CMD_SIO_STREAM = &HA9 ' SIO接口的命令包,从次字节开始为数据流 -Public Const mCH341A_CMD_I2C_STREAM = &HAA ' I2C接口的命令包,从次字节开始为I2C命令流 -Public Const mCH341A_CMD_UIO_STREAM = &HAB ' UIO接口的命令包,从次字节开始为命令流 - -' CH341A控制传输的厂商专用请求代码 -Public Const mCH341A_BUF_CLEAR = &HB2 ' 清除未完成的数据 -Public Const mCH341A_I2C_CMD_X = &H54 ' 发出I2C接口的命令,立即执行 -Public Const mCH341A_DELAY_MS = &H5E ' 以亳秒为单位延时指定时间 -Public Const mCH341A_GET_VER = &H5F ' 获取芯片版本 - -Public Const mCH341_EPP_IO_MAX = mCH341_PACKET_LENGTH - 1 ' CH341在EPP/MEM方式下单次读写数据块的最大长度 -Public Const mCH341A_EPP_IO_MAX = &HFF ' CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -Public Const mCH341A_CMD_IO_ADDR_W = &H0 ' MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -Public Const mCH341A_CMD_IO_ADDR_R = &H80 ' MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -Public Const mCH341A_CMD_I2C_STM_STA = &H74 ' I2C接口的命令流:产生起始位 -Public Const mCH341A_CMD_I2C_STM_STO = &H75 ' I2C接口的命令流:产生停止位 -Public Const mCH341A_CMD_I2C_STM_OUT = &H0 'I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -Public Const mCH341A_CMD_I2C_STM_IN = &HC0 ' I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -'#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -Public Const mCH341A_CMD_I2C_STM_SET = &H60 ' I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -Public Const mCH341A_CMD_I2C_STM_US = &H40 ' I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -Public Const mCH341A_CMD_I2C_STM_MS = &H50 ' I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -Public Const mCH341A_CMD_I2C_STM_DLY = &HF ' I2C接口的命令流单个命令延时的最大值 -Public Const mCH341A_CMD_I2C_STM_END = &H0 ' I2C接口的命令流:命令包提前结束 - -Public Const mCH341A_CMD_UIO_STM_IN = &H0 ' UIO接口的命令流:输入数据D7-D0 -Public Const mCH341A_CMD_UIO_STM_DIR = &H40 ' UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -Public Const mCH341A_CMD_UIO_STM_OUT = &H80 'UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -Public Const mCH341A_CMD_UIO_STM_US = &HC0 ' UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -Public Const mCH341A_CMD_UIO_STM_END = &H20 ' UIO接口的命令流:命令包提前结束 - - -' CH341并口工作模式 -Public Const mCH341_PARA_MODE_EPP = &H0 ' CH341并口工作模式为EPP方式 -Public Const mCH341_PARA_MODE_EPP17 = &H0 ' CH341A并口工作模式为EPP方式V1.7 -Public Const mCH341_PARA_MODE_EPP19 = &H1 ' CH341A并口工作模式为EPP方式V1.9 -Public Const mCH341_PARA_MODE_MEM = &H2 ' CH341并口工作模式为MEM方式 - - -' 直接输入的状态信号的位定义 -Public Const mStateBitERR = &H100 ' 只读,ERR#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitPEMP = &H200 ' 只读,PEMP引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitINT = &H400 ' 只读,INT#引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSLCT = &H800 ' 只读,SLCT引脚输入状态,1:高电平,0:低电平 -Public Const mStateBitSDA = &H800000 ' 只读,SDA引脚输入状态,1:高电平,0:低电平 - - - - -Declare Function CH341OpenDevice Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long -' 打开CH341设备,返回句柄,出错则无效 -' iIndex 指定CH341设备序号,0对应第一个设备 - -Declare Sub CH341CloseDevice Lib "CH341DLL.DLL" (ByVal iIndex As Long) -' 关闭CH341设备 -' iIndex 指定CH341设备序号 - -Declare Function CH341GetVersion Lib "CH341DLL.DLL" () As Long -' 获得DLL版本号,返回版本号 - -Declare Function CH341DriverCommand Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef ioCommand As WIN32_COMMAND) As Long -' 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 -' iIndex, ' 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 -' ioCommand 命令结构的地址 -' 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -' 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -' 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -' 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -' 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -' 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - -Declare Function CH341GetDrvVersion Lib "CH341DLL.DLL" () As Long -' 获得驱动程序版本号,返回版本号,出错则返回0 - -Declare Function CH341ResetDevice Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -'复位USB设备 -' iIndex 指定CH341设备序号 - -Declare Function CH341GetDeviceDescr Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取设备描述符 -' iIndex, 指定CH341设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341GetConfigDescr Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取配置描述符 -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存描述符 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341SetIntRoutine Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iIntRoutine As Long) As Boolean -'设定中断服务程序 -' 指定CH341设备序号 -'指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 -' sub mPCH341_INT_ROUTINE ( 中断服务程序 -' ULONG iStatus ) 中断状态数据,见下行 -' 位7-位0对应CH341的D7-D0引脚 -' 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - -Declare Function CH341ReadInter Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 读取中断数据 -' iIndex, 指定CH341设备序号 -' iStatus 指向一个双字单元,用于保存读取的中断状态数据,见下行 -' 位7-位0对应CH341的D7-D0引脚 -' 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - -Declare Function CH341AbortInter Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' 放弃中断数据读操作 -' iIndex 指定CH341设备序号 - -Declare Function CH341SetParaMode Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean -' 设置并口模式 -' iIndex 指定CH341设备序号 -' iMode 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - -Declare Function CH341InitParallel Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean - -' 复位并初始化并口,RST#输出低电平脉冲 -' iIndex 指定CH341设备序号 -' iMode 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - -Declare Function CH341ReadData0 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从0#端口读取数据块 - ' iIndex 指定CH341设备序号 - ' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - ' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341ReadData1 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 从1#端口读取数据块 -' iIndex, 指定CH341设备序号 -' oBuffer 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341AbortRead Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块读操作 -' iIndex 指定CH341设备序号 - -Declare Function CH341WriteData0 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向0#端口写出数据块 -' iIndex, 指定CH341设备序号 -' iBuffer 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341WriteData1 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 向1#端口写出数据块 -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341AbortWrite Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' 放弃数据块写操作 -' iIndex 指定CH341设备序号 - -Declare Function CH341GetStatus Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' 通过CH341直接输入数据和状态 -' iIndex, 指定CH341设备序号 -' iStatus 指向一个双字单元,用于保存状态数据,见下行 -' 位7-位0对应CH341的D7-D0引脚 -' 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -' 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - -Declare Function CH341ReadI2C Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByRef oByte As Byte) As Boolean - -' 从I2C接口读取一个字节数据 -' iIndex, 指定CH341设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' oByte 指向一个字节单元,用于保存读取的字节数据 - -Declare Function CH341WriteI2C Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iDevice As Byte, ByVal iAddr As Byte, ByVal iByte As Byte) As Boolean - -' 向I2C接口写入一个字节数据 -' iIndex, 指定CH341设备序号 -' iDevice, 低7位指定I2C设备地址 -' iAddr, 指定数据单元的地址 -' iByte 待写入的字节数据 - -Declare Function CH341EppReadData Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341EppReadAddr Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的地址数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341EppWriteData Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341EppWriteAddr Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的地址数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341EppSetAddr Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iAddr As Byte) As Boolean -' EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output -' iIndex, 指定CH341设备序号 -' iAddr 指定EPP地址 - -Declare Function CH341MemReadAddr0 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存从地址0读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341MemReadAddr1 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存从地址1读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341MemWriteAddr0 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备向地址0写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341MemWriteAddr1 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备向地址1写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341SetExclusive Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iExclusive As Long) As Boolean -' 设置独占使用当前CH341设备 -' iIndex, 指定CH341设备序号 -' iExclusive 为0则设备可以共享使用,非0则独占使用 - -Declare Function CH341SetTimeout Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iWriteTimeout As Long, ByVal iReadTimeout As Long) As Boolean -' 设置USB数据读写的超时 -' iIndex, // 指定CH341设备序号 -' iWriteTimeout 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) -' iReadTimeout 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - -Declare Function CH341ReadData Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef oBuffer As Any, ByRef ioLength As Long) As Boolean -' 读取数据块 -' iIndex, 指定CH341设备序号 -' oBuffer, 指向一个足够大的缓冲区,用于保存读取的数据 -' ioLength 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Declare Function CH341WriteData Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iBuffer As Any, ByRef ioLength As Long) As Boolean -' 写出数据块 -' iIndex, 指定CH341设备序号 -' iBuffer, 指向一个缓冲区,放置准备写出的数据 -' ioLength 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Declare Function CH341GetDeviceName Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long '''' -' 返回指向CH341设备名称的缓冲区,出错则返回NULL -' iIndex 指定CH341设备序号,0对应第一个设备 - -Declare Function CH341GetVerIC Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long -' 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A -' iIndex 指定CH341设备序号 - -Declare Function CH341FlushBuffer Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' 清空CH341的缓冲区 -' iIndex 指定CH341设备序号 - -Declare Function CH341WriteRead Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadStep As Long, ByVal iReadTimes As Long, ByRef oReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' CH341WriteRead 执行数据流命令,先输出再输入 -' iIndex, 指定CH341设备序号 -' iWriteLength, 写长度,准备写出的长度 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据 -' iReadStep, 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) -' iReadTimes, 准备读取的次数 -' oReadLength, 指向长度单元,返回后为实际读取的长度 -' oReadBuffer 指向一个足够大的缓冲区,用于保存读取的数据 - -Declare Function CH341SetStream Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean - -' CH341SetStream 设置串口流模式 -' iIndex, 指定CH341设备序号 -' iMode 指定模式,见下行 -' 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz,10=快速/400KHz,11=高速/750KHz -' 位2: SPI的I/O数/IO引脚, 0=单入单出(D5出/D7入),1=双入双出(D5出D4出/D7入D6入) -' 其它保留,必须为0 - -Declare Function CH341SetDelaymS Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iDelay As Long) As Boolean -' CH341SetDelaymS 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ' iIndex, 指定CH341设备序号 - ' iDelay 指定延时的毫秒数 - -Declare Function CH341StreamI2C Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iWriteLength As Long, ByRef iWriteBuffer As Any, ByVal iReadLength As Long, ByRef oReadBuffer As Any) As Boolean -' CH341StreamI2C 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 -' iIndex, 指定CH341设备序号 -' iWriteLength, 准备写出的数据字节数 -' iWriteBuffer, 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 -' iReadLength, 准备读取的数据字节数 -' oReadBuffer 指向一个缓冲区,返回后是读入的数据 -Declare Function CH341ReadEEPROM Lib "CH341DLL.DLL" (ByVal iIndexas As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef oBuffer As Any) As Boolean -' CH341ReadEEPROM 从EEPROM中读取数据块,速度约56K字节 -' i Index 指定CH341设备序号 -' iEepromID 指定EEPROM型号 -' iAddr 指定数据单元的地址 -' iLength 准备读取的数据字节数 -' oBuffer 指向一个缓冲区,返回后是读入的数据 - -Declare Function CH341WriteEEPROM Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iEepromID As EEPROM_TYPE, ByVal iAddr As Long, ByVal iLength As Long, ByRef iBuffer As Any) As Boolean -' CH341WriteEEPROM 向EEPROM中写入数据块 -' iIndex, 指定CH341设备序号 -' iEepromID, 指定EEPROM型号 -' iAddr, 指定数据单元的地址 -' iLength, 准备写出的数据字节数 -' iBuffer 指向一个缓冲区,放置准备写出的数据 - -Declare Function CH341GetInput Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iStatus As Long) As Boolean -' CH341GetInput 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 -' iIndex, 指定CH341设备序号 -' iStatus 指向一个双字单元,用于保存状态数据,参考下面的位说明 -' 位7-位0对应CH341的D7-D0引脚 -' 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -' 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - -Declare Function CH341SetOutput Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iEnable As Long, ByVal iSetDirOut As Long, ByVal iSetDataOut As Long) As Boolean -' CH341SetOutput 设置CH341的I/O方向,并通过CH341直接输出数据 -' ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** -' iIndex, 指定CH341设备序号 -' iEnable, 数据有效标志,参考下面的位说明 -'// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -'// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -'// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -'// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -'// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 -' iSetDirOut, 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 -' iSetDataOut 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -'// 位7-位0对应CH341的D7-D0引脚 -'// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -'// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -'// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - -Declare Function CH341Set_D5_D0 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iSetDirOut As Long, ByVal iSetDataOut As Long) As Boolean -' CH341Set_D5_D0 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -' ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** -' iIndex, 指定CH341设备序号 -' iSetDirOut, 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 -' iSetDataOut 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -'// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - -Declare Function CH341StreamSPI3 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' CH341StreamSPI3 处理SPI数据流,3线接口,时钟线为DCK2/SCL引脚,数据线为DIO/SDA引脚(准双向I/O),片选线为D0/D1/D2,速度约51K字节 -' SPI时序: DCK2/SCL引脚为时钟输出, 默认为低电平, DIO/SDA引脚在时钟上升沿之前输出, DIO/SDA引脚在时钟下降沿之后输入 -' iIndex, 指定CH341设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer 指向一个缓冲区,放置准备从DIO写出的数据,返回后是从DIO读入的数据 - -Declare Function CH341StreamSPI4 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' CH341StreamSPI4 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -' SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前输出, DIN/D7引脚在时钟下降沿之后输入 -' iIndex, 指定CH341设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - -Declare Function CH341StreamSPI5 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any, ByRef ioBuffer2 As Any) As Boolean -' CH341StreamSPI5 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -' SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 -' iIndex, 指定CH341设备序号 -' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 -' iLength, 准备传输的数据字节数 -' ioBuffer, 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 -' ioBuffer2 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - -Declare Function CH341BitStreamSPI Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean -' CH341BitStreamSPI 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 -' iIndex, 指定CH341设备序号 -' iLength, 准备传输的数据位数,一次最多896,建议不超过256 -' ioBuffer 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -'/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ -'/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -'/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - -Declare Function CH341SetBufUpload Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean ' 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' CH341SetBufUpload ' 设定内部缓冲上传模式 -' iIndex, 0指定CH341设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - -Declare Function CH341QueryBufUpload Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long -' CH341QueryBufUpload 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 -' iIndex 指定CH341设备序号,0对应第一个设备 - -Declare Function CH341SetBufDownload Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iEnableOrClear As Long) As Boolean -' CH341SetBufDownload 设定内部缓冲下传模式 -' iIndex, 指定CH341设备序号,0对应第一个设备 -' iEnableOrClear 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -' 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - -Declare Function CH341QueryBufDownload Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long ' 指定CH341设备序号,0对应第一个设备 -' CH341QueryBufDownload 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 -' iIndex 指定CH341设备序号,0对应第一个设备 - - -Declare Function CH341ResetInter Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' CH341ResetInter 复位中断数据读操作 -' iIndex 指定CH341设备序号 - -Declare Function CH341ResetRead Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' CH341ResetRead 复位数据块读操作 -' iIndex 指定CH341设备序号 - -Declare Function CH341ResetWrite Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Boolean -' CH341ResetRead 复位数据块读操作 -' iIndex 指定CH341设备序号 - -'typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( ' 设备事件通知回调程序 -' ULONG iEventStatus ); ' 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -Public Const CH341_DEVICE_ARRIVAL = 3 ' 设备插入事件,已经插入 -Public Const CH341_DEVICE_REMOVE_PEND = 1 ' 设备将要拔出 -Public Const CH341_DEVICE_REMOVE = 0 ' 设备拔出事件,已经拔出 - -Declare Function CH341SetDeviceNotify Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByRef iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean -' CH341SetDeviceNotify 设定设备事件通知程序 -' iIndex, 指定CH341设备序号,0对应第一个设备 -' iDeviceID, 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 -' iNotifyRoutine (函数地址)指定设备事件回调程序, 为NULL则取消事件通知, 否则在检测到事件时调用该程序 - - -Declare Function CH341SetupSerial Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iParityMode As Long, ByVal iBaudRate As Long) As Boolean -' CH341SetupSerial 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 -' iIndex, 指定CH341设备序号,0对应第一个设备 -' iParityMode, 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY -' iBaudRate 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - -'/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 -' CH341OpenDevice -' CH341CloseDevice -' CH341SetupSerial -' CH341ReadData -' CH341WriteData -' CH341SetBufUpload -' CH341QueryBufUpload -' CH341SetBufDownload -' CH341QueryBufDownload -' CH341SetDeviceNotify -' CH341GetStatus -' 以上是主要API,以下是次要API -' CH341GetVersion -' CH341DriverCommand -' CH341GetDrvVersion -' CH341ResetDevice -' CH341GetDeviceDescr -' CH341GetConfigDescr -' CH341SetIntRoutine -' CH341ReadInter -' CH341AbortInter -' CH341AbortRead -' CH341AbortWrite -' CH341ReadI2C -' CH341WriteI2C -' CH341SetExclusive -' CH341SetTimeout -' CH341GetDeviceName -' CH341GetVerIC -' CH341FlushBuffer -' CH341WriteRead -' CH341ResetInter -' CH341ResetRead -' CH341ResetWrite -'*/ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" deleted file mode 100644 index d6a5ae7..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" deleted file mode 100644 index 87cb41e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.ICO" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" deleted file mode 100644 index cefdb3c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBP" +++ /dev/null @@ -1,42 +0,0 @@ -Type=Exe -Form=frmMain.frm -Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\System32\stdole2.tlb#OLE Automation -Object={BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0; TABCTL32.OCX -Module=Module1; Module1.bas -Reference=*\G{6B263850-900B-11D0-9484-00A0C91110ED}#1.0#0#C:\WINDOWS\System32\MSSTDFMT.DLL#Microsoft Data Formatting Object Library -Module=CH341DLL; CH341DLL.bas -IconForm="frmMain" -Startup="frmMain" -HelpFile="" -Title="CH341PAR" -ExeName32="CH341PAR(VB).exe" -Command32="" -Name="工程1" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=2 -RevisionVer=0 -AutoIncrementVer=0 -ServerSupportFiles=0 -VersionCompanyName="南京沁恒电子有限公司" -VersionProductName="CH341PAR 应用程序" -CompilationType=-1 -OptimizationType=0 -FavorPentiumPro(tm)=0 -CodeViewDebugInfo=0 -NoAliasing=0 -BoundsCheck=0 -OverflowCheck=0 -FlPointCheck=0 -FDIVCheck=0 -UnroundedFP=0 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 - -[MS Transaction Server] -AutoRefresh=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" deleted file mode 100644 index 1aae6bb..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/CH341PAR.VBW" +++ /dev/null @@ -1,3 +0,0 @@ -frmMain = 44, 58, 481, 544, Z, 22, 29, 459, 516, C -Module1 = 66, 87, 503, 573, -CH341DLL = 88, 116, 667, 572, diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" deleted file mode 100644 index 8a1cbfb..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/MSSCCPRJ.SCC" +++ /dev/null @@ -1,5 +0,0 @@ -[SCC] -SCC=This is a source code control file -[CH341PAR.vbp] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" deleted file mode 100644 index 9c4bd6d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/Module1.bas" +++ /dev/null @@ -1,97 +0,0 @@ -Attribute VB_Name = "Module1" -Option Explicit - -Type arrRBuffer - buf(mMAX_BUFFER_LENGTH - 1) As Byte -End Type - -Public Const WM_KEYUP = &H101 -Public Const BN_CLICK = &H101 -Public eepromid As EEPROM_TYPE 'eeprom型号 -Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long - -Public mIndex As Long -Public mOpen As Boolean - - -Public Function mCharToBcd(ByVal iChar As String) As Byte ' 输入的ASCII字符 - Dim mBCD As Byte - If iChar >= "0" And iChar <= "9" Then - mBCD = iChar - "0" - ElseIf iChar >= "A" And iChar <= "F" Then - mBCD = Asc(iChar) - Asc("A") + &HA - ElseIf iChar >= "a" And iChar <= "f" Then - mBCD = Asc(iChar) - Asc("a") + &HA - Else - mBCD = &HFF - End If - mCharToBcd = mBCD -End Function - -Sub mStrtoVal(str As String, ByRef strOut As arrRBuffer, strleng As Long) - Dim i, j As Long - Dim mLen As Long - Dim strRev(mMAX_BUFFER_LENGTH - 1) As Byte - mLen = strleng * 2 - j = 0 - For i = 0 To mLen - 1 Step 2 - If (mCharToBcd(Mid(str, i + 1, 1)) = &HFF Or mCharToBcd(Mid(str, i + 2, 1)) = &HFF) Then - GoTo con - End If - ' strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - strRev(j) = mCharToBcd(Mid(str, i + 1, 1)) * 16 + mCharToBcd(Mid(str, i + 2, 1)) - Debug.Print Hex(strRev(j)) - j = j + 1 -con: Next - j = 0 - While (j < strleng) - strOut.buf(j) = strRev(j) - j = j + 1 - Wend -End Sub - -Function Hex2bit(var As Byte) As String -If var < 16 Then - Hex2bit = "0" & Hex(var) - Else - Hex2bit = Hex(var) -End If -End Function -Function HexToBcd(str As String) As Long '将文本框中输入的十六进制值转换成BCD码 -Dim Length As Integer -Dim X As String -Dim i As Long -str = Trim(str) -Length = Len(str) -For i = 0 To Length - 1 -X = Mid(str, Length - i, 1) -Select Case X - Case "a", "A" - HexToBcd = HexToBcd + 10 * (16 ^ i) - Case "b", "B" - HexToBcd = HexToBcd + 11 * (16 ^ i) - Case "c", "C" - HexToBcd = HexToBcd + 12 * (16 ^ i) - Case "d", "D" - HexToBcd = HexToBcd + 13 * (16 ^ i) - Case "e", "E" - HexToBcd = HexToBcd + 14 * (16 ^ i) - Case "f", "F" - HexToBcd = HexToBcd + 15 * (16 ^ i) - Case "0" To "9" - HexToBcd = HexToBcd + Val(X) * 16 ^ i - Case Else - 'MsgBox "非十六进制数", vbCritical, "信息提示" - HexToBcd = 0 -End Select -Next i -End Function - -' 设备事件通知回调程序' 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 -Public Sub mPCH341_NOTIFY_ROUTINE(ByVal iEventStatus As Long) - PostMessage frmMain.CH341_NOTIFY_ROUTINE.hwnd, WM_KEYUP, iEventStatus, 0 '将接收到的插拔事件值发到插拔处理程序中 -End Sub - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" deleted file mode 100644 index 2c0486b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frm" +++ /dev/null @@ -1,1665 +0,0 @@ -VERSION 5.00 -Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX" -Begin VB.Form frmMain - Caption = "CH341EVT" - ClientHeight = 7230 - ClientLeft = 60 - ClientTop = 450 - ClientWidth = 7515 - Icon = "frmMain.frx":0000 - LinkTopic = "Form1" - ScaleHeight = 7230 - ScaleWidth = 7515 - StartUpPosition = 3 '窗口缺省 - Begin VB.CommandButton CH341_NOTIFY_ROUTINE - Caption = "模拟处理设备挺拔中断事件" - Enabled = 0 'False - Height = 330 - Left = 2535 - TabIndex = 115 - Top = 6660 - Visible = 0 'False - Width = 3255 - End - Begin TabDlg.SSTab SSTab1 - Height = 6960 - Left = 105 - TabIndex = 0 - Top = 90 - Width = 7305 - _ExtentX = 12885 - _ExtentY = 12277 - _Version = 393216 - Tabs = 5 - Tab = 1 - TabsPerRow = 5 - TabHeight = 520 - BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} - Name = "宋体" - Size = 9.75 - Charset = 134 - Weight = 400 - Underline = 0 'False - Italic = 0 'False - Strikethrough = 0 'False - EndProperty - TabCaption(0) = "EPP 并口" - TabPicture(0) = "frmMain.frx":0442 - Tab(0).ControlEnabled= 0 'False - Tab(0).Control(0)= "Frame2" - Tab(0).Control(1)= "Frame1" - Tab(0).ControlCount= 2 - TabCaption(1) = "MEM 并口" - TabPicture(1) = "frmMain.frx":045E - Tab(1).ControlEnabled= -1 'True - Tab(1).Control(0)= "Frame4" - Tab(1).Control(0).Enabled= 0 'False - Tab(1).Control(1)= "Frame3" - Tab(1).Control(1).Enabled= 0 'False - Tab(1).ControlCount= 2 - TabCaption(2) = "两线串口" - TabPicture(2) = "frmMain.frx":047A - Tab(2).ControlEnabled= 0 'False - Tab(2).Control(0)= "Frame5" - Tab(2).Control(0).Enabled= 0 'False - Tab(2).ControlCount= 1 - TabCaption(3) = "EEPROM读写" - TabPicture(3) = "frmMain.frx":0496 - Tab(3).ControlEnabled= 0 'False - Tab(3).Control(0)= "Frame10" - Tab(3).Control(1)= "Frame9" - Tab(3).Control(2)= "Frame8" - Tab(3).ControlCount= 3 - TabCaption(4) = "数字I/O" - TabPicture(4) = "frmMain.frx":04B2 - Tab(4).ControlEnabled= 0 'False - Tab(4).Control(0)= "Frame11" - Tab(4).ControlCount= 1 - Begin VB.Frame Frame5 - Caption = "以流模式读写兼容I2C的两线同步串口,API=CH341StreamI2C" - Height = 6435 - Left = -74835 - TabIndex = 101 - Top = 450 - Width = 6975 - Begin VB.Frame Frame7 - Caption = "写入数据" - Height = 2865 - Left = 450 - TabIndex = 108 - Top = 240 - Width = 6120 - Begin VB.CommandButton StreamICRW - Caption = "Write\Read" - Height = 375 - Left = 4575 - TabIndex = 114 - Top = 330 - Width = 1185 - End - Begin VB.TextBox I2CWRBuf - Height = 1770 - Left = 1125 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 110 - Top = 840 - Width = 4695 - End - Begin VB.TextBox I2CWRLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1140 - TabIndex = 109 - Top = 330 - Width = 2415 - End - Begin VB.Label Label17 - Caption = "数据" - Height = 255 - Left = 300 - TabIndex = 113 - Top = 840 - Width = 615 - End - Begin VB.Label Label24 - Caption = "长度" - Height = 255 - Left = 300 - TabIndex = 112 - Top = 390 - Width = 495 - End - Begin VB.Label Label25 - Caption = "(<400H)" - Height = 180 - Left = 3630 - TabIndex = 111 - Top = 427 - Width = 855 - End - End - Begin VB.Frame Frame6 - Caption = "读取数据" - Height = 2865 - Left = 465 - TabIndex = 102 - Top = 3210 - Width = 6120 - Begin VB.TextBox I2CRDLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1050 - TabIndex = 104 - Top = 315 - Width = 2415 - End - Begin VB.TextBox I2CRDBuf - Height = 1770 - Left = 1050 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 103 - Top = 825 - Width = 4695 - End - Begin VB.Label Label26 - Caption = "长度" - Height = 255 - Left = 330 - TabIndex = 107 - Top = 375 - Width = 495 - End - Begin VB.Label Label27 - Caption = "数据" - Height = 255 - Left = 330 - TabIndex = 106 - Top = 825 - Width = 615 - End - Begin VB.Label Label30 - Caption = "(<400H)" - Height = 180 - Left = 3555 - TabIndex = 105 - Top = 412 - Width = 855 - End - End - End - Begin VB.Frame Frame11 - Height = 6015 - Left = -74925 - TabIndex = 73 - Top = 600 - Width = 7140 - Begin VB.Frame Frame14 - Caption = "输出:LED显示控制" - Height = 5475 - Left = 2835 - TabIndex = 88 - Top = 270 - Width = 1830 - Begin VB.CheckBox Led - Caption = "LED1" - Height = 255 - Index = 0 - Left = 615 - TabIndex = 96 - Top = 300 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED2" - Height = 255 - Index = 1 - Left = 615 - TabIndex = 95 - Top = 825 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED3" - Height = 255 - Index = 2 - Left = 615 - TabIndex = 94 - Top = 1365 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED4" - Height = 255 - Index = 3 - Left = 615 - TabIndex = 93 - Top = 1890 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED5" - Height = 255 - Index = 4 - Left = 600 - TabIndex = 92 - Top = 2415 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED6" - Height = 255 - Index = 5 - Left = 615 - TabIndex = 91 - Top = 2940 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED7" - Height = 255 - Index = 6 - Left = 615 - TabIndex = 90 - Top = 3480 - Width = 945 - End - Begin VB.CheckBox Led - Caption = "LED8" - Height = 255 - Index = 7 - Left = 615 - TabIndex = 89 - Top = 4005 - Width = 945 - End - Begin VB.Label Label40 - Caption = " 选中:灯灭 未选中:灯亮" - Height = 480 - Left = 405 - TabIndex = 97 - Top = 4500 - Width = 1110 - End - End - Begin VB.Frame Frame12 - Caption = "输入:8位开关状态" - Height = 5430 - Left = 5055 - TabIndex = 77 - Top = 300 - Width = 1830 - Begin VB.CheckBox swit - Caption = "ON1" - Enabled = 0 'False - Height = 225 - Index = 0 - Left = 570 - TabIndex = 86 - Top = 300 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON2" - Enabled = 0 'False - Height = 225 - Index = 1 - Left = 570 - TabIndex = 85 - Top = 825 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON3" - Enabled = 0 'False - Height = 225 - Index = 2 - Left = 570 - TabIndex = 84 - Top = 1350 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON4" - Enabled = 0 'False - Height = 225 - Index = 3 - Left = 570 - TabIndex = 83 - Top = 1875 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON5" - Enabled = 0 'False - Height = 225 - Index = 4 - Left = 570 - TabIndex = 82 - Top = 2415 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON6" - Enabled = 0 'False - Height = 225 - Index = 5 - Left = 570 - TabIndex = 81 - Top = 2940 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON7" - Enabled = 0 'False - Height = 225 - Index = 6 - Left = 570 - TabIndex = 80 - Top = 3465 - Width = 720 - End - Begin VB.CheckBox swit - Caption = "ON8" - Enabled = 0 'False - Height = 225 - Index = 7 - Left = 570 - TabIndex = 79 - Top = 3990 - Width = 720 - End - Begin VB.CommandButton evtbtrefresh - Caption = "点此刷新状态" - Height = 315 - Left = 240 - TabIndex = 78 - Top = 4905 - Width = 1305 - End - Begin VB.Label Label41 - Caption = " ON:选中 OFF:不选中" - Height = 435 - Left = 450 - TabIndex = 87 - Top = 4440 - Width = 1065 - End - End - Begin VB.Frame Frame13 - Caption = "选择MEM读写地址" - Height = 1020 - Left = 330 - TabIndex = 74 - Top = 4575 - Width = 1935 - Begin VB.OptionButton memadd0 - Caption = "地址0" - Height = 210 - Index = 0 - Left = 270 - TabIndex = 76 - Top = 315 - Value = -1 'True - Width = 840 - End - Begin VB.OptionButton memadd1 - Caption = "地址1" - Height = 210 - Index = 1 - Left = 270 - TabIndex = 75 - Top = 645 - Width = 840 - End - End - Begin VB.Label Label42 - Caption = "输出演示:LED复选框控制评估板中8个LED状态" - Height = 510 - Left = 270 - TabIndex = 100 - Top = 360 - Width = 2325 - End - Begin VB.Label Label43 - Caption = "输入演示:8位开关状态是点""刷新""按纽获得评估板中拨码开关的当前状态" - Height = 885 - Left = 270 - TabIndex = 99 - Top = 1230 - Width = 2325 - End - Begin VB.Label Label44 - Caption = "所用API与MEM并口相同,只是长度总是1字节" - Height = 450 - Left = 315 - TabIndex = 98 - Top = 4005 - Width = 2310 - End - End - Begin VB.Frame Frame8 - Caption = "写入数据,API=CH341WriteEEPROM" - Height = 3180 - Left = -73215 - TabIndex = 64 - Top = 420 - Width = 5415 - Begin VB.TextBox WrDataLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 345 - TabIndex = 68 - Text = "0" - Top = 1305 - Width = 2415 - End - Begin VB.TextBox WrDataBuf - Height = 1025 - Left = 345 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 67 - Top = 1995 - Width = 4695 - End - Begin VB.TextBox WrDataAddr - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 330 - TabIndex = 66 - Text = "0" - Top = 570 - Width = 2415 - End - Begin VB.CommandButton eepromWrDate - Caption = "Write" - Height = 375 - Left = 4035 - TabIndex = 65 - Top = 1230 - Width = 975 - End - Begin VB.Label Label38 - Caption = "写入长度" - Height = 255 - Left = 330 - TabIndex = 72 - Top = 1020 - Width = 810 - End - Begin VB.Label Label37 - Caption = "(<400H)" - Height = 255 - Left = 1125 - TabIndex = 71 - Top = 1020 - Width = 765 - End - Begin VB.Label Label36 - Caption = "多个数据(16进制,两字符一组)" - Height = 225 - Left = 330 - TabIndex = 70 - Top = 1725 - Width = 3075 - End - Begin VB.Label Label33 - Caption = "数据单元起始地址" - Height = 255 - Left = 315 - TabIndex = 69 - Top = 270 - Width = 1650 - End - End - Begin VB.Frame Frame9 - Caption = "读出数据,API=CH341ReadEEPROM" - Height = 3180 - Left = -73230 - TabIndex = 55 - Top = 3645 - Width = 5415 - Begin VB.CommandButton eepromRdDate - Caption = "Read" - Height = 375 - Left = 4035 - TabIndex = 59 - Top = 1245 - Width = 975 - End - Begin VB.TextBox RdDataAddr - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 315 - TabIndex = 58 - Text = "0" - Top = 540 - Width = 2415 - End - Begin VB.TextBox RdDataBuf - Height = 1025 - Left = 315 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 57 - Top = 1995 - Width = 4695 - End - Begin VB.TextBox RdDataLen - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 315 - TabIndex = 56 - Text = "0" - Top = 1305 - Width = 2415 - End - Begin VB.Label Label39 - Caption = "数据单元起始地址" - Height = 255 - Left = 315 - TabIndex = 63 - Top = 270 - Width = 1650 - End - Begin VB.Label Label35 - Caption = "多个数据(16进制,两字符一组)" - Height = 225 - Left = 330 - TabIndex = 62 - Top = 1725 - Width = 3075 - End - Begin VB.Label Label34 - Caption = "(<400H)" - Height = 255 - Left = 1125 - TabIndex = 61 - Top = 1020 - Width = 765 - End - Begin VB.Label Label32 - Caption = "读取长度" - Height = 255 - Left = 330 - TabIndex = 60 - Top = 1020 - Width = 795 - End - End - Begin VB.Frame Frame10 - Caption = "EEPROM型号" - Height = 6405 - Left = -74895 - TabIndex = 41 - Top = 420 - Width = 1620 - Begin VB.OptionButton eppromtype - Caption = "24C4096" - Height = 255 - Index = 12 - Left = 180 - TabIndex = 54 - Top = 5190 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C2048" - Height = 255 - Index = 11 - Left = 180 - TabIndex = 53 - Top = 4777 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C1024" - Height = 255 - Index = 10 - Left = 180 - TabIndex = 52 - Top = 4370 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C512" - Height = 255 - Index = 9 - Left = 180 - TabIndex = 51 - Top = 3963 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C256" - Height = 255 - Index = 8 - Left = 180 - TabIndex = 50 - Top = 3556 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C128" - Height = 255 - Index = 7 - Left = 180 - TabIndex = 49 - Top = 3149 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C64" - Height = 255 - Index = 6 - Left = 180 - TabIndex = 48 - Top = 2742 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C32" - Height = 255 - Index = 5 - Left = 180 - TabIndex = 47 - Top = 2335 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C16" - Height = 255 - Index = 4 - Left = 180 - TabIndex = 46 - Top = 1928 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C08" - Height = 255 - Index = 3 - Left = 180 - TabIndex = 45 - Top = 1521 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C04" - Height = 255 - Index = 2 - Left = 180 - TabIndex = 44 - Top = 1114 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C02" - Height = 255 - Index = 1 - Left = 165 - TabIndex = 43 - Top = 707 - Width = 1320 - End - Begin VB.OptionButton eppromtype - Caption = "24C01" - Height = 255 - Index = 0 - Left = 180 - TabIndex = 42 - Top = 300 - Value = -1 'True - Width = 1320 - End - End - Begin VB.Frame Frame1 - Caption = "读写数据,API=EppReadData和EppWriteData" - Height = 2865 - Left = -74400 - TabIndex = 31 - Top = 585 - Width = 6120 - Begin VB.TextBox eppData0 - Height = 1020 - Left = 1020 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 35 - Top = 1275 - Width = 4695 - End - Begin VB.TextBox eppLen0 - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1035 - TabIndex = 34 - Top = 825 - Width = 1905 - End - Begin VB.CommandButton eppRead0 - Caption = "Read" - Height = 375 - Left = 3600 - TabIndex = 33 - Top = 2385 - Width = 975 - End - Begin VB.CommandButton eppWrite0 - Caption = "Write" - Height = 390 - Left = 4740 - TabIndex = 32 - Top = 2370 - Width = 975 - End - Begin VB.Label Label1 - Caption = "EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input" - Height = 180 - Left = 405 - TabIndex = 40 - Top = 255 - Width = 4455 - End - Begin VB.Label Label2 - Caption = "EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output" - Height = 255 - Left = 405 - TabIndex = 39 - Top = 540 - Width = 4575 - End - Begin VB.Label Label3 - Caption = "数据" - Height = 255 - Left = 390 - TabIndex = 38 - Top = 1335 - Width = 615 - End - Begin VB.Label Label4 - Caption = "长度" - Height = 255 - Left = 405 - TabIndex = 37 - Top = 885 - Width = 495 - End - Begin VB.Label Label20 - Caption = "(<1000H)" - Height = 285 - Left = 3015 - TabIndex = 36 - Top = 885 - Width = 855 - End - End - Begin VB.Frame Frame2 - Caption = "读写地址,API=EppReadAddr和EppWriteAddr" - Height = 2865 - Left = -74400 - TabIndex = 21 - Top = 3660 - Width = 6120 - Begin VB.TextBox eppData1 - Height = 1025 - Left = 1035 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 25 - Top = 1305 - Width = 4695 - End - Begin VB.TextBox eppLen1 - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1035 - TabIndex = 24 - Top = 855 - Width = 2415 - End - Begin VB.CommandButton eppRead1 - Caption = "Read" - Height = 375 - Left = 3660 - TabIndex = 23 - Top = 2400 - Width = 975 - End - Begin VB.CommandButton eppWrite1 - Caption = "Write" - Height = 375 - Left = 4755 - TabIndex = 22 - Top = 2400 - Width = 975 - End - Begin VB.Label Label5 - Caption = "EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input" - Height = 180 - Left = 345 - TabIndex = 30 - Top = 285 - Width = 4455 - End - Begin VB.Label Label6 - Caption = "EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output" - Height = 180 - Left = 345 - TabIndex = 29 - Top = 570 - Width = 4455 - End - Begin VB.Label Label7 - Caption = "数据" - Height = 255 - Left = 375 - TabIndex = 28 - Top = 1320 - Width = 615 - End - Begin VB.Label Label8 - Caption = "长度" - Height = 255 - Left = 345 - TabIndex = 27 - Top = 900 - Width = 495 - End - Begin VB.Label Label21 - Caption = "(<1000H)" - Height = 285 - Left = 3510 - TabIndex = 26 - Top = 930 - Width = 855 - End - End - Begin VB.Frame Frame3 - Caption = "读写地址0,API=MemReadAddr0和MemWriteAddr0" - Height = 2865 - Left = 585 - TabIndex = 11 - Top = 540 - Width = 6120 - Begin VB.TextBox memData0 - Height = 1025 - Left = 1140 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 15 - Top = 1275 - Width = 4695 - End - Begin VB.TextBox memLen0 - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1140 - TabIndex = 14 - Top = 825 - Width = 2415 - End - Begin VB.CommandButton memRead0 - Caption = "Read" - Height = 375 - Left = 3720 - TabIndex = 13 - Top = 2370 - Width = 975 - End - Begin VB.CommandButton memWrite0 - Caption = "Write" - Height = 375 - Left = 4875 - TabIndex = 12 - Top = 2370 - Width = 975 - End - Begin VB.Label Label10 - Caption = "数据" - Height = 255 - Left = 300 - TabIndex = 20 - Top = 1275 - Width = 615 - End - Begin VB.Label Label11 - Caption = "MEM方式写地址0: WR#=0, DS#/RD#=1,AS#/ADDR=0,D0-D7=output" - Height = 255 - Left = 300 - TabIndex = 19 - Top = 540 - Width = 5295 - End - Begin VB.Label Label12 - Caption = "MEM方式读地址0: WR#=1, DS#/RD#=0,AS#/ADDR=0,D0-D7=input" - Height = 180 - Left = 300 - TabIndex = 18 - Top = 255 - Width = 5415 - End - Begin VB.Label Label9 - Caption = "长度" - Height = 255 - Left = 300 - TabIndex = 17 - Top = 885 - Width = 495 - End - Begin VB.Label Label22 - Caption = "(<1000H)" - Height = 285 - Left = 3585 - TabIndex = 16 - Top = 870 - Width = 855 - End - End - Begin VB.Frame Frame4 - Caption = "读写地址1,API=MemReadAddr1和MemWriteAddr1" - Height = 2865 - Left = 630 - TabIndex = 1 - Top = 3720 - Width = 6120 - Begin VB.TextBox memLen1 - BeginProperty DataFormat - Type = 0 - Format = "0" - HaveTrueFalseNull= 0 - FirstDayOfWeek = 0 - FirstWeekOfYear = 0 - LCID = 2052 - SubFormatType = 0 - EndProperty - Height = 375 - Left = 1050 - TabIndex = 5 - Top = 840 - Width = 2415 - End - Begin VB.TextBox memData1 - Height = 1025 - Left = 1050 - MultiLine = -1 'True - ScrollBars = 2 'Vertical - TabIndex = 4 - Top = 1290 - Width = 4695 - End - Begin VB.CommandButton memRead1 - Caption = "Read" - Height = 375 - Left = 3645 - TabIndex = 3 - Top = 2385 - Width = 975 - End - Begin VB.CommandButton memWrite1 - Caption = "Write" - Height = 375 - Left = 4710 - TabIndex = 2 - Top = 2385 - Width = 975 - End - Begin VB.Label Label13 - Caption = "长度" - Height = 255 - Left = 330 - TabIndex = 10 - Top = 900 - Width = 495 - End - Begin VB.Label Label14 - Caption = "数据" - Height = 255 - Left = 330 - TabIndex = 9 - Top = 1290 - Width = 615 - End - Begin VB.Label Label15 - Caption = "MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output" - Height = 180 - Left = 375 - TabIndex = 8 - Top = 600 - Width = 5655 - End - Begin VB.Label Label16 - Caption = "MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input" - Height = 180 - Left = 375 - TabIndex = 7 - Top = 315 - Width = 5535 - End - Begin VB.Label Label23 - Caption = "(<1000H)" - Height = 285 - Left = 3555 - TabIndex = 6 - Top = 855 - Width = 855 - End - End - End -End -Attribute VB_Name = "frmMain" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Option Explicit - -Dim hopen As Long - -Private Sub eepromRdDate_Click() - Dim mDataAddr As Long - Dim mLen As Long - Dim buffer As arrRBuffer - Dim bu() As Byte - mLen = HexToBcd(RdDataLen) - - If (RdDataAddr.Text = "") Then - MsgBox "请输入数据单元起始地址!", vbExclamation, "CH341" - Exit Sub - End If - If (mLen <= 0) Then - MsgBox "请输入读取长度!", vbExclamation, "CH341" - Exit Sub - End If - mDataAddr = HexToBcd(RdDataAddr) - If (mOpen = True) Then - If (CH341ReadEEPROM(mIndex, eepromid, mDataAddr, mLen, buffer)) Then - Dim buff As String - Dim i As Long - For i = 0 To mLen - 1 - buff = buff & Hex2bit(buffer.buf(i)) & " " - Next i - RdDataBuf.Text = buff - Else - MsgBox "读E2PROM数据失败!", vbExclamation, "CH341" - End If - RdDataLen.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub eepromWrDate_Click() - Dim mData As Byte - Dim mDataAddr As Long - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(WrDataLen.Text) - If (WrDataAddr.Text = "") Then - MsgBox "请输入数据单元起始地址!", vbExclamation, "CH341" - Exit Sub - End If - If (mLen <= 0 Or WrDataBuf.Text = "") Then - MsgBox "请输入要写入的数据,长度!", vbExclamation, "CH341" - Exit Sub - End If - - If (mLen > (Len(WrDataBuf) \ 2)) Then '在输入长度和数据长度中取小值 - mLen = Len(WrDataBuf) \ 2 - End If - - mDataAddr = HexToBcd(WrDataAddr.Text) - Call mStrtoVal(WrDataBuf.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - - If (mOpen = True) Then - If (CH341WriteEEPROM(mIndex, eepromid, mDataAddr, mLen, buffer) = False) Then - MsgBox "读E2PROM数据失败!", vbExclamation, "CH341" - End If - WrDataLen.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub eppRead0_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(eppLen0.Text) - If (mLen <= 0) Then - MsgBox "请输入读取长度", vbExclamation, "CH341" - Exit Sub - End If - If (mOpen = True) Then - If (CH341EppReadData(mIndex, buffer, mLen)) Then - Dim buff As String - Dim i As Long - buff = "" - For i = 0 To mLen - 1 Step 1 - buff = buff & Hex2bit(buffer.buf(i)) & " " - Next - eppData0.Text = buff - Else - MsgBox "EPP方式读数据失败! ", vbExclamation, "CH341" - End If - eppLen0.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub eppRead1_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(eppLen1.Text) - If (mLen <= 0) Then - MsgBox "请输入读取数据的长度", vbExclamation, "CH341" - Exit Sub - End If - If (mOpen = True) Then - If (CH341EppReadAddr(mIndex, buffer, mLen)) Then - Dim buff As String - Dim i, j As Long - j = 0 - For i = 0 To mLen - 1 - buff = buff & Hex2bit(buffer.buf(i)) + " " - Next - eppData1.Text = buff - Else - MsgBox "EPP读数据块1失败! ", vbExclamation, "CH341" - End If - eppLen1.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub eppromtype_Click(Index As Integer) -Select Case Index - Case 0 - eepromid = ID_24C01 - Case 1 - eepromid = ID_24C02 - Case 2 - eepromid = ID_24C04 - Case 3 - eepromid = ID_24C08 - Case 4 - eepromid = ID_24C16 - Case 5 - eepromid = ID_24C32 - Case 6 - eepromid = ID_24C64 - Case 7 - eepromid = ID_24C128 - Case 8 - eepromid = ID_24C256 - Case 9 - eepromid = ID_24C512 - Case 10 - eepromid = ID_24C1024 - Case 11 - eepromid = ID_24C2048 - Case 12 - eepromid = ID_24C4096 - End Select -End Sub - -Private Sub eppWrite0_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(eppLen0.Text) - If (mLen <= 0 Or Len(eppData0.Text) = 0) Then - MsgBox "请输入要写的数据,长度!", vbExclamation, "CH341" - Exit Sub - End If - If (mLen > Len(eppData0.Text) \ 2) Then - mLen = Len(eppData0.Text) \ 2 - End If - Call mStrtoVal(eppData0.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - - If (mOpen = True) Then - If (CH341EppWriteData(mIndex, buffer, mLen) = False) Then - MsgBox "EPP写数据块0失败!", vbExclamation, "CH341" - End If - eppLen0.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub eppWrite1_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(eppLen1.Text) - - If (mLen <= 0 Or Len(eppData1.Text) = 0) Then - MsgBox "请输入写数据和长度!", vbExclamation, "CH341" - Exit Sub - End If - - If (mLen > Len(eppData1.Text) \ 2) Then - mLen = Len(eppData1.Text) \ 2 - End If - - Call mStrtoVal(eppData1.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - If (mOpen = True) Then - If (CH341EppWriteAddr(mIndex, buffer, mLen) = False) Then - MsgBox "EPP写数据块1失败!", vbExclamation, "CH341" - End If - eppLen1.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub evtbtrefresh_Click() -Dim mBuf(0) As Byte -Dim mLen As Long - -If mOpen = True Then -mLen = 1 -If (memadd0(0).Value = True) Then - If (CH341MemReadAddr0(mIndex, mBuf(0), mLen) = False) Then - MsgBox "MEM地址方式读拔码开关状态失败! ", vbExclamation, "CH341" - Exit Sub - End If -ElseIf (memadd1(1).Value = True) Then - If (CH341MemReadAddr1(mIndex, mBuf(0), mLen) = False) Then - MsgBox "MEM地址方式1读拔码开关状态失败! ", vbExclamation, "CH341" - Exit Sub - End If -End If -'按钮状态显示 - If ((mBuf(0) And 1) = 0) Then - swit(0).Value = 1 - Else - swit(0).Value = 0 - End If - If ((mBuf(0) And 2) = 0) Then - swit(1).Value = 1 - Else - swit(1).Value = 0 - End If - If ((mBuf(0) And 4) = 0) Then - swit(2).Value = 1 - Else - swit(2).Value = 0 - End If - If ((mBuf(0) And 8) = 0) Then - swit(3).Value = 1 - Else - swit(3).Value = 0 - End If - If ((mBuf(0) And 16) = 0) Then - swit(4).Value = 1 - Else - swit(4).Value = 0 - End If - If ((mBuf(0) And 32) = 0) Then - swit(5).Value = 1 - Else - swit(5).Value = 0 - End If - If ((mBuf(0) And 64) = 0) Then - swit(6).Value = 1 - Else - swit(6).Value = 0 - End If - If ((mBuf(0) And 128) = 0) Then - swit(7).Value = 1 - Else - swit(7).Value = 0 - End If -Else - MsgBox "设备未打开!", vbExclamation, "CH341" -End If -End Sub - -Private Sub Form_Load() -mIndex = 0 -hopen = CH341OpenDevice(mIndex) -If (hopen = INVALID_HANDLE_VALUE) Then - 'MsgBox "打开设备失败", vbExclamation, "CH341PAR" - mOpen = False -Else - mOpen = True -End If -'设置设备插拔通知 -If CH341SetDeviceNotify(mIndex, vbNullString, AddressOf mPCH341_NOTIFY_ROUTINE) = False Then - MsgBox "设置设备插拔通知失败", vbExclamation, "CH341PAR" -End If -enablebtn (mOpen) -End Sub - -Private Sub Form_Unload(Cancel As Integer) -CH341SetDeviceNotify mIndex, vbNullString, 0& -If (mOpen = True) Then - CH341CloseDevice (mIndex) -End If -End Sub - -Private Sub Led_Click(Index As Integer) -Dim mBuf(0) As Byte -Dim mLen As Long -If (mOpen = True) Then - mLen = 1 - mBuf(0) = CByte((Led(0).Value * (2 ^ 7)) + (Led(1).Value * (2 ^ 6)) + (Led(2).Value * (2 ^ 5)) + (Led(3).Value * (2 ^ 4)) + (Led(4).Value * (2 ^ 3)) + (Led(5).Value * (2 ^ 2)) + (Led(6).Value * (2 ^ 1)) + (Led(7).Value * (2 ^ 0))) '组合按钮键值 - If (memadd0(0).Value = True) Then '地址0 - If (CH341MemWriteAddr0(mIndex, mBuf(0), mLen) = False) Then - MsgBox "发送LED状态值失败!", vbExclamation, "CH341" - End If - ElseIf (memadd1(1).Value = True) Then - If (CH341MemWriteAddr1(mIndex, mBuf(0), mLen) = False) Then - MsgBox "发送LED状态值失败!", vbExclamation, "CH341" - End If - End If -Else - MsgBox "设备未打开!", vbExclamation, "CH341" -End If -End Sub - -Private Sub memRead0_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(memLen0.Text) - - If (mLen <= 0) Then - MsgBox "请输入读取长度", vbExclamation, "CH341" - Exit Sub - End If - - If (mOpen = True) Then - On Error Resume Next - If (CH341MemReadAddr0(mIndex, buffer, mLen)) Then - Dim buff As String - Dim i As Long - buff = "" - For i = 0 To mLen - 1 Step 1 - DoEvents - buff = buff & Hex2bit(buffer.buf(i)) + " " - Next i - memData0.Text = buff - Else - MsgBox "MEM读数据块0失败! ", vbExclamation, "CH341" - End If - memLen0.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub memRead1_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(memLen1.Text) - If (mLen <= 0) Then - MsgBox "请输入读数据长度", vbExclamation, "CH341" - Exit Sub - End If - - If (mOpen = True) Then - If (CH341MemReadAddr1(mIndex, buffer, mLen)) Then - Dim buff As String - Dim i As Long - For i = 0 To mLen - 1 - buff = buff & Hex2bit(buffer.buf(i)) + " " - Next i - memData1.Text = buff - Else - MsgBox "MEM读数据块1失败! ", vbExclamation, "CH341" - End If - memLen1.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub memWrite0_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(memLen0.Text) - - If (mLen <= 0 Or Len(memData0.Text) = 0) Then - MsgBox "请输入要写的数据,长度!", vbExclamation, "CH341" - Exit Sub - End If - - If (mLen > Len(memData0.Text) / 2) Then - mLen = Len(memData0.Text) / 2 - End If - - Call mStrtoVal(memData0.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - If (mOpen = True) Then - If (CH341MemWriteAddr0(mIndex, buffer, mLen) = False) Then - MsgBox "MEM写数据块0失败!", vbExclamation, "CH341" - End If - memLen0.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341" - End If -End Sub - -Private Sub memWrite1_Click() - Dim mLen As Long - Dim buffer As arrRBuffer - - mLen = HexToBcd(memLen1.Text) - - If (mLen <= 0 Or Len(memData1.Text) = 0) Then - MsgBox "请输入要写入的数据,长度!", vbExclamation, "CH341" - Exit Sub - End If - - If (mLen > Len(memData1.Text) / 2) Then - mLen = Len(memData1.Text) / 2 - End If - - Call mStrtoVal(memData1.Text, buffer, mLen) '将输入的十六进制格式字符数据转成数值数据 - If (mOpen = True) Then - If (CH341MemWriteAddr1(mIndex, buffer, mLen) = False) Then - MsgBox "MEM写数据块0失败!", vbExclamation, "CH341" - End If - memLen1.Text = Hex(mLen) - Else - MsgBox "设备未打开!", vbExclamation, "CH341PAR" - End If -End Sub - -Private Sub SSTab1_Click(PreviousTab As Integer) - -If (mOpen = True) And (SSTab1.Tab = 4) Then - Call evtbtrefresh_Click - Call Led_Click(0) -End If - -End Sub - -Private Sub StreamICRW_Click() -Dim mWrLen As Long -Dim mRdLen As Long -Dim iBuff As arrRBuffer -Dim buffer As arrRBuffer - -mWrLen = HexToBcd(I2CWRLen.Text) -mRdLen = HexToBcd(I2CRDLen.Text) - -If (mWrLen > 0 And I2CWRBuf.Text = "") Then - MsgBox "请输入要写的数据,长度!", vbExclamation, "CH341" - Exit Sub -End If -If ((mWrLen = 0) And (mRdLen = 0)) Then - MsgBox "请输入读数据所需的长度!", vbExclamation, "CH341" - Exit Sub -End If -If (mWrLen > Len(Trim(I2CWRBuf.Text)) \ 2) Then - mWrLen = Len(Trim(I2CWRBuf.Text)) \ 2 -End If - -Call mStrtoVal(I2CWRBuf.Text, buffer, mWrLen) '将输入的十六进制格式字符数据转成数值数据 - -If (mOpen = True) Then - If (CH341StreamI2C(mIndex, mWrLen, buffer, mRdLen, iBuff) = False) Then - MsgBox "流模式读写数据失败!", vbExclamation, "CH341" - Else - If (mRdLen > 0) Then '有数据返回 - Dim buff As String - Dim i As Long - For i = 0 To mRdLen - 1 - buff = buff & Hex2bit(iBuff.buf(i)) + " " - Next - I2CRDBuf.Text = buff - End If - End If - I2CWRLen.Text = Hex(mWrLen) - I2CRDLen.Text = Hex(mRdLen) -Else - MsgBox "设备未打开!", vbExclamation, "CH341PAR" -End If -End Sub - -Private Sub CH341_NOTIFY_ROUTINE_KeyUp(KeyCode As Integer, Shift As Integer) '设备插拔通知处理程序 - Dim iEventStatus As Long - iEventStatus = KeyCode '插拔事件 - If (iEventStatus = CH341_DEVICE_ARRIVAL) Then ' 设备插入事件,已经插入 - If (CH341OpenDevice(mIndex) = INVALID_HANDLE_VALUE) Then - MsgBox "打开设备失败!", vbOK, "CH341PAR" - mOpen = False - Else - mOpen = True '打开成功 - End If - ElseIf (iEventStatus = CH341_DEVICE_REMOVE) Then ' 设备拔出事件,已经拔出 - CH341CloseDevice (mIndex) - mOpen = False - End If - enablebtn (mOpen) '设备打开,按钮可用,设备没打开,按钮禁用 -End Sub - -Public Sub enablebtn(ByVal bEnable As Boolean) 'bEnable=true :各窗体按钮可用 ;=false:enable:各窗体按钮禁用 - With frmMain - - .eppRead0.Enabled = bEnable - .eppWrite0.Enabled = bEnable - .eppRead1.Enabled = bEnable - .eppWrite1.Enabled = bEnable - - .memRead0.Enabled = bEnable - .memWrite0.Enabled = bEnable - .memRead1.Enabled = bEnable - .memWrite1.Enabled = bEnable - - .StreamICRW.Enabled = bEnable - - .eepromRdDate.Enabled = bEnable - .eepromWrDate.Enabled = bEnable - - .evtbtrefresh.Enabled = bEnable - .Led(0).Enabled = bEnable - .Led(1).Enabled = bEnable - .Led(2).Enabled = bEnable - .Led(3).Enabled = bEnable - .Led(4).Enabled = bEnable - .Led(5).Enabled = bEnable - .Led(6).Enabled = bEnable - .Led(7).Enabled = bEnable - - If (bEnable = True) Then '窗体标题显示 - frmMain.Caption = "CH341EVT **设备已插上" - Else - frmMain.Caption = "CH341EVT **设备已拔出" - End If - End With - - If (bEnable = True) Then '数字I/O窗口已初始化,刷新LED,按拔码开关状态 - Call Led_Click(0) - Call Led_Click(1) - Call Led_Click(2) - Call Led_Click(3) - Call Led_Click(4) - Call Led_Click(5) - Call Led_Click(6) - Call Led_Click(7) - Call evtbtrefresh_Click - End If -End Sub diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" deleted file mode 100644 index 3ac59fa..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/CH341VB/frmMain.frx" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" deleted file mode 100644 index 27447fa..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.PAS" +++ /dev/null @@ -1,592 +0,0 @@ -unit CH341DLL; -interface -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V1.5 -// 南京沁恒电子有限公司 作者: W.ch 2005.03 -// CH341-DLL V1.5 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// -uses SysUtils; -const - FILE_DEVICE_UNKNOWN = $H22; - FILE_ANY_ACCESS = 0; - METHOD_BUFFERED = 0; - mCH341_PACKET_LENGTH = 32; // CH341支持的数据包的长度 - mCH341_PKT_LEN_SHORT = 8 ; // CH341支持的短数据包的长度 - - - -// WIN32应用层接口命令 -// IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 -// mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - mCH341_MAX_NUMBER = 16; // 最多同时连接的CH341数 - mMAX_BUFFER_LENGTH =$1000; // 数据缓冲区最大长度4096 -// mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - mDEFAULT_BUFFER_LEN=$0400; // 数据缓冲区默认长度1024 -// mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - -// CH341端点地址 - mCH341_ENDP_INTER_UP=$81 ; // CH341的中断数据上传端点的地址 - mCH341_ENDP_INTER_DOWN=$01; // CH341的中断数据下传端点的地址 - mCH341_ENDP_DATA_UP=$82 ; // CH341的数据块上传端点的地址 - mCH341_ENDP_DATA_DOWN=$02 ; // CH341的数据块下传端点的地址 - -// 设备层接口提供的管道操作命令 - mPipeDeviceCtrl=$00000004; // CH341的综合控制管道 - mPipeInterUp=$00000005 ; // CH341的中断数据上传管道 - mPipeDataUp =$00000006 ; // CH341的数据块上传管道 - mPipeDataDown=$00000007 ; // CH341的数据块下传管道 - -// 应用层接口的功能代码 - mFuncNoOperation=$00000000; // 无操作 - mFuncGetVersion =$00000001; // 获取驱动程序版本号 - mFuncGetConfig =$00000002 ;// 获取USB设备配置描述符 - mFuncSetTimeout =$00000009 ;// 设置USB通讯超时 - mFuncSetExclusive=$0000000b; // 设置独占使用 - mFuncResetDevice =$0000000c ; // 复位USB设备 - mFuncResetPipe =$0000000d ; // 复位USB管道 - mFuncAbortPipe =$0000000e; // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 - mFuncSetParaMode =$0000000f ; // 设置并口模式 - mFuncReadData0 =$00000010 ; // 从并口读取数据块0 - mFuncReadData1 =$00000011 ; // 从并口读取数据块1 - mFuncWriteData0 =$00000012 ; // 向并口写入数据块0 - mFuncWriteData1 =$00000013 ; // 向并口写入数据块1 - mFuncWriteRead =$00000014 ; // 先输出再输入 - - -// USB设备标准请求代码 - mUSB_CLR_FEATURE =$01; - mUSB_SET_FEATURE =$03 ; - mUSB_GET_STATUS =$00 ; - mUSB_SET_ADDRESS =$05 ; - mUSB_GET_DESCR =$06 ; - mUSB_SET_DESCR =$07 ; - mUSB_GET_CONFIG =$08 ; - mUSB_SET_CONFIG =$09 ; - mUSB_GET_INTERF =$0a ; - mUSB_SET_INTERF =$0b ; - mUSB_SYNC_FRAME =$0c ; - -// CH341控制传输的厂商专用请求类型 - mCH341_VENDOR_READ =$C0 ; // 通过控制传输实现的CH341厂商专用读操作 - mCH341_VENDOR_WRITE =$40 ; // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 - mCH341_PARA_INIT =$B1 ; // 初始化并口 - mCH341_I2C_STATUS =$52 ; // 获取I2C接口的状态 - mCH341_I2C_COMMAND =$53 ; // 发出I2C接口的命令 - -// CH341并口操作命令代码 - mCH341_PARA_CMD_R0 =$AC ; // 从并口读数据0 - mCH341_PARA_CMD_R1 =$AD ; // 从并口读数据1 - mCH341_PARA_CMD_W0 =$A6 ; // 向并口写数据0 - mCH341_PARA_CMD_W1 =$A7 ; // 向并口写数据1 - mCH341_PARA_CMD_STS =$A0 ; // 获取并口状态 - -// CH341A并口操作命令代码 - mCH341A_CMD_SET_OUTPUT =$A1; // 设置并口输出 - mCH341A_CMD_IO_ADDR =$A2 ; // MEM带地址读写/输入输出,从次字节开始为命令流 - mCH341A_CMD_SPI_STREAM =$A8 ; // SPI接口的命令包,从次字节开始为数据流 - mCH341A_CMD_SIO_STREAM =$A9 ; // SIO接口的命令包,从次字节开始为数据流 - mCH341A_CMD_I2C_STREAM =$AA ; // I2C接口的命令包,从次字节开始为I2C命令流 - mCH341A_CMD_UIO_STREAM =$AB ; // UIO接口的命令包,从次字节开始为命令流 - -// CH341A控制传输的厂商专用请求代码 - mCH341A_BUF_CLEAR =$B2 ; // 清除未完成的数据 - mCH341A_I2C_CMD_X =$54 ; // 发出I2C接口的命令,立即执行 - mCH341A_DELAY_MS =$5E ; // 以亳秒为单位延时指定时间 - mCH341A_GET_VER =$5F ; // 获取芯片版本 - - mCH341_EPP_IO_MAX = ( mCH341_PACKET_LENGTH - 1 ) ; // CH341在EPP/MEM方式下单次读写数据块的最大长度 - mCH341A_EPP_IO_MAX =$FF ; // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - - mCH341A_CMD_IO_ADDR_W =$00 ; // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 - mCH341A_CMD_IO_ADDR_R =$80 ; // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - - mCH341A_CMD_I2C_STM_STA =$74 ; // I2C接口的命令流:产生起始位 - mCH341A_CMD_I2C_STM_STO =$75 ; // I2C接口的命令流:产生停止位 - mCH341A_CMD_I2C_STM_OUT =$80 ; // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 - mCH341A_CMD_I2C_STM_IN =$C0 ; // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -// mCH341A_CMD_I2C_STM_MAX = ( min( =$3F, mCH341_PACKET_LENGTH ) ); // I2C接口的命令流单个命令输入输出数据的最大长度 - mCH341A_CMD_I2C_STM_SET =$60 ; // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) - mCH341A_CMD_I2C_STM_US =$40 ; // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 - mCH341A_CMD_I2C_STM_MS =$50 ; // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 - mCH341A_CMD_I2C_STM_DLY =$0F ; // I2C接口的命令流单个命令延时的最大值 - mCH341A_CMD_I2C_STM_END =$00 ; // I2C接口的命令流:命令包提前结束 - - mCH341A_CMD_UIO_STM_IN =$00 ; // UIO接口的命令流:输入数据D7-D0 - mCH341A_CMD_UIO_STM_DIR =$40 ; // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 - mCH341A_CMD_UIO_STM_OUT =$80 ; // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 - mCH341A_CMD_UIO_STM_US =$C0 ; // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 - mCH341A_CMD_UIO_STM_END =$20 ; // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 - mCH341_PARA_MODE_EPP =$00 ; // CH341并口工作模式为EPP方式 - mCH341_PARA_MODE_EPP17 =$00 ; // CH341A并口工作模式为EPP方式V1.7 - mCH341_PARA_MODE_EPP19 =$01 ; // CH341A并口工作模式为EPP方式V1.9 - mCH341_PARA_MODE_MEM =$02 ; // CH341并口工作模式为MEM方式 - - -// 直接输入的状态信号的位定义 - mStateBitERR =$00000100 ; // 只读,ERR#引脚输入状态,1:高电平,0:低电平 - mStateBitPEMP =$00000200 ; // 只读,PEMP引脚输入状态,1:高电平,0:低电平 - mStateBitINT =$00000400 ; // 只读,INT#引脚输入状态,1:高电平,0:低电平 - mStateBitSLCT =$00000800 ; // 只读,SLCT引脚输入状态,1:高电平,0:低电平 - mStateBitSDA =$00800000 ; // 只读,SDA引脚输入状态,1:高电平,0:低电平 - -type - PVOID = Pointer; - PULONG=pcardinal; - -Type - mUspValue=record - mUspValueLow : Byte; - mUspValueHigh : Byte; -End; -Type - mUspIndex=record - mUspIndexLow : Byte; - mUspIndexHigh : Byte; -End ; -Type - USB_SETUP_PKT=record - mUspReqType : Byte; - mUspRequest : Byte; - mUspValue : mUspValue; - mUspIndex : mUspIndex; - mLength : Integer; -End ; -Type - WIN32_COMMAND=record //定义WIN32命令接口结构 - mFunction : cardinal; //输入时指定功能代码或者管道号 - //输出时返回操作状态 - mLength : cardinal; //存取长度,返回后续数据的长度 - mBuffer:array[0..(mCH341_PACKET_LENGTH-1)] of Byte; //数据缓冲区,长度为0至255B '数据缓冲区,长度为0至255B -End ; - -Type mPWIN32_COMMAND=^WIN32_COMMAND; - -var - mUSB_SETUP_PKT :USB_SETUP_PKT; - mWIN32_COMMAND : WIN32_COMMAND; - -type mPCH341_INT_ROUTINE=Procedure ( // 中断服务程序 - iStatus:cardinal );stdcall; // 中断状态数据,见下行 - // 位7-位0对应CH341的D7-D0引脚 - // 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - -Function CH341OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - iIndex :cardinal):integer ;Stdcall; external 'CH341DLL.DLL' ;// 指定CH341设备序号,0对应第一个设备 - -procedure CH341CloseDevice( // 关闭CH341设备 - iIndex :cardinal) ;Stdcall; external 'CH341DLL.DLL';// 指定CH341设备序号 - - -Function CH341GetVersion( ):cardinal;Stdcall; external 'CH341DLL.DLL'; // 获得DLL版本号,返回版本号 - - -Function CH341DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - iIndex:cardinal; // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - ioCommand:mPWIN32_COMMAND):cardinal;Stdcall; external 'CH341DLL.DLL'; // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -Function CH341GetDrvVersion( ):cardinal;Stdcall; external 'CH341DLL.DLL'; // 获得驱动程序版本号,返回版本号,出错则返回0 - - -Function CH341ResetDevice( // 复位USB设备 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定CH341设备序号 - - -Function CH341GetDeviceDescr( // 读取设备描述符 - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存描述符 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -Function CH341GetConfigDescr( // 读取配置描述符 - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存描述符 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -Function CH341SetIntRoutine( // 设定中断服务程序 - iIndex:cardinal; // 指定CH341设备序号 - iIntRoutine:mPCH341_INT_ROUTINE ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -Function CH341ReadInter( // 读取中断数据 - iIndex:cardinal; // 指定CH341设备序号 - iStatus:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -Function CH341AbortInter( // 放弃中断数据读操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定CH341设备序号 - - -Function CH341SetParaMode( // 设置并口模式 - iIndex:cardinal; // 指定CH341设备序号 - iMode:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - -Function CH341InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - iIndex:cardinal; // 指定CH341设备序号 - iMode:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -Function CH341ReadData0( // 从0#端口读取数据块 - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Function CH341ReadData1( // 从1#端口读取数据块 - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Function CH341AbortRead( // 放弃数据块读操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定CH341设备序号 - - -Function CH341WriteData0( // 向0#端口写出数据块 - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:PVOID; // 指向一个缓冲区,放置准备写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -Function CH341WriteData1( // 向1#端口写出数据块 - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:PVOID; // 指向一个缓冲区,放置准备写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -Function CH341AbortWrite( // 放弃数据块写操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定CH341设备序号 - - -Function CH341GetStatus( // 通过CH341直接输入数据和状态 - iIndex:cardinal; // 指定CH341设备序号 - iStatus:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -Function CH341ReadI2C( // 从I2C接口读取一个字节数据 - iIndex:cardinal; // 指定CH341设备序号 - iDevice:byte; // 低7位指定I2C设备地址 - iAddr:byte; // 指定数据单元的地址 - oByte:Pbytearray ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向一个字节单元,用于保存读取的字节数据 - - -Function CH341WriteI2C( // 向I2C接口写入一个字节数据 - iIndex:cardinal; // 指定CH341设备序号 - iDevice:byte; // 低7位指定I2C设备地址 - iAddr:byte; // 指定数据单元的地址 - iByte:byte ):boolean;Stdcall; external 'CH341DLL.DLL'; // 待写入的字节数据 - - -Function CH341EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -Function CH341EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:pvoid; // 指向一个足够大的缓冲区,用于保存读取的地址数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -Function CH341EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:pvoid; // 指向一个缓冲区,放置准备写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -Function CH341EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:PVOID; // 指向一个缓冲区,放置准备写出的地址数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -Function CH341EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - iIndex:cardinal; // 指定CH341设备序号 - iAddr:byte ):boolean;Stdcall; external 'CH341DLL.DLL'; // 指定EPP地址 - - - -Function CH341MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:pvoid; // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -Function CH341MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:pvoid; // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -function CH341MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:pvoid; // 指向一个缓冲区,放置准备向地址0写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -Function CH341MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - iIndex:cardinal; // 指定CH341设备序号 - iBuffer:pvoid; // 指向一个缓冲区,放置准备向地址1写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Function CH341SetExclusive( // 设置独占使用当前CH341设备 - iIndex:cardinal; // 指定CH341设备序号 - iExclusive:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 为0则设备可以共享使用,非0则独占使用 - -Function CH341SetTimeout( // 设置USB数据读写的超时 - iIndex:cardinal; // 指定CH341设备序号 - iWriteTimeout:cardinal; // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - iReadTimeout:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -Function CH341ReadData( // 读取数据块 - iIndex:cardinal; // 指定CH341设备序号 - oBuffer:PVOID; // 指向一个足够大的缓冲区,用于保存读取的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - -Function CH341WriteData( // 写出数据块 - iIndex:cardinal;// 指定CH341设备序号 - iBuffer:PVOID; // 指向一个缓冲区,放置准备写出的数据 - ioLength:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - -Function CH341GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - iIndex:cardinal ):PVOID;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号,0对应第一个设备 - -Function CH341GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - iIndex:cardinal ):cardinal;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号 - - -Function CH341FlushBuffer( // 清空CH341的缓冲区 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号 - -Function CH341WriteRead( // 执行数据流命令,先输出再输入 - iIndex:cardinal; // 指定CH341设备序号 - iWriteLength:cardinal; // 写长度,准备写出的长度 - iWriteBuffer:PVOID; // 指向一个缓冲区,放置准备写出的数据 - iReadStep:cardinal; // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - iReadTimes:cardinal; // 准备读取的次数 - oReadLength:PULONG; // 指向长度单元,返回后为实际读取的长度 - oReadBuffer:PVOID ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向一个足够大的缓冲区,用于保存读取的数据 - -Function CH341SetStream( // 设置串口流模式 - iIndex:cardinal; // 指定CH341设备序号 - iMode:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - -Function CH341SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - iIndex:cardinal; // 指定CH341设备序号 - iDelay:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定延时的毫秒数 - -Function CH341StreamI2C( // 处理I2C数据流 - iIndex:cardinal; // 指定CH341设备序号 - iWriteLength:cardinal; // 准备写出的数据字节数 - iWriteBuffer:pvoid; // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - iReadLength:cardinal; // 准备读取的数据字节数 - oReadBuffer:pvoid ):boolean;stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,返回后是读入的数据 - -// EEPROM型号 -type - EEPROM_TYPE =(ID_24C01,ID_24C02,ID_24C04,ID_24C08,ID_24C16,ID_24C32,ID_24C64,ID_24C128,ID_24C256,ID_24C512,ID_24C1024,ID_24C2048,ID_24C4096); - -Function CH341ReadEEPROM( // 从EEPROM中读取数据块 - iIndex:cardinal; // 指定CH341设备序号 - iEepromID:EEPROM_TYPE; // 指定EEPROM型号 - iAddr:cardinal; // 指定数据单元的地址 - iLength:cardinal; // 准备读取的数据字节数 - oBuffer:Pbytearray ):boolean;stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,返回后是读入的数据 - - -Function CH341WriteEEPROM( // 向EEPROM中写入数据块 - iIndex:cardinal; // 指定CH341设备序号 - iEepromID:EEPROM_TYPE; // 指定EEPROM型号 - iAddr:cardinal; // 指定数据单元的地址 - iLength:cardinal; // 准备写出的数据字节数 - iBuffer:pbytearray ):boolean;stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,放置准备写出的数据 - -Function CH341GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - iIndex:cardinal; // 指定CH341设备序号 - iStatus:PULONG ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - -Function CH341SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -// ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** - iIndex:cardinal; // 指定CH341设备序号 - iEnable:cardinal; // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - iSetDirOut:cardinal; // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - iSetDataOut:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - -Function CH341Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -// ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** - iIndex:cardinal; // 指定CH341设备序号 - iSetDirOut:cardinal; // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - iSetDataOut:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - -Function CH341StreamSPI3( // 处理SPI数据流,3线接口,时钟线为DCK2/SCL引脚,数据线为DIO/SDA引脚(准双向I/O),片选线为D0/D1/D2,速度约51K字节 -//* SPI时序: DCK2/SCL引脚为时钟输出, 默认为低电平, DIO/SDA引脚在时钟上升沿之前输出, DIO/SDA引脚在时钟下降沿之后输入 */ - iIndex:cardinal; // 指定CH341设备序号 - iChipSelect:cardinal; // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - iLength:cardinal; // 准备传输的数据字节数 - ioBuffer:PVOID):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,放置准备从DIO写出的数据,返回后是从DIO读入的数据 - - -Function CH341StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -//* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前输出, DIN/D7引脚在时钟下降沿之后输入 */ - iIndex:cardinal; // 指定CH341设备序号 - iChipSelect:cardinal; // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - iLength:cardinal; // 准备传输的数据字节数 - ioBuffer:PVOID ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -Function CH341StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -//* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ - iIndex:cardinal; // 指定CH341设备序号 - iChipSelect:cardinal; // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - iLength:cardinal; // 准备传输的数据字节数 - ioBuffer:PVOID; // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - ioBuffer2:PVOID ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - -Function CH341BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - iIndex:cardinal; // 指定CH341设备序号 - iLength:cardinal; // 准备传输的数据位数,一次最多896,建议不超过256 - ioBuffer:PVOID ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -//* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ -//* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -//* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -Function CH341SetBufUpload( // 设定内部缓冲上传模式 - iIndex:cardinal; // 指定CH341设备序号,0对应第一个设备 - iEnableOrClear:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -Function CH341QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - iIndex:cardinal ):integer;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号,0对应第一个设备 - - -Function CH341SetBufDownload( // 设定内部缓冲下传模式 - iIndex:cardinal; // 指定CH341设备序号,0对应第一个设备 - iEnableOrClear:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -Function CH341QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - iIndex:cardinal ):integer;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号,0对应第一个设备 - - -Function CH341ResetInter( // 复位中断数据读操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号 - - -Function CH341ResetRead( // 复位数据块读操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号 - - -Function CH341ResetWrite( // 复位数据块写操作 - iIndex:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341设备序号 - - -type mPCH341_NOTIFY_ROUTINE =ProceDure ( // 设备事件通知回调程序 - iEventStatus:cardinal);stdcall; // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -const CH341_DEVICE_ARRIVAL = 3 ; // 设备插入事件,已经插入 - CH341_DEVICE_REMOVE_PEND = 1 ; // 设备将要拔出 - CH341_DEVICE_REMOVE = 0 ; // 设备拔出事件,已经拔出 - - -Function CH341SetDeviceNotify( // 设定设备事件通知程序 - iIndex:cardinal; // 指定CH341设备序号,0对应第一个设备 - iDeviceID:PCHAR; // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - iNotifyRoutine:mPCH341_NOTIFY_ROUTINE):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -Function CH341SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - iIndex:cardinal; // 指定CH341设备序号,0对应第一个设备 - iParityMode:cardinal; // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - iBaudRate:cardinal ):boolean;Stdcall; external 'CH341DLL.DLL' ; // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -{ 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - CH341OpenDevice - CH341CloseDevice - CH341SetupSerial - CH341ReadData - CH341WriteData - CH341SetBufUpload - CH341QueryBufUpload - CH341SetBufDownload - CH341QueryBufDownload - CH341SetDeviceNotify - CH341GetStatus -// 以上是主要API,以下是次要API - CH341GetVersion - CH341DriverCommand - CH341GetDrvVersion - CH341ResetDevice - CH341GetDeviceDescr - CH341GetConfigDescr - CH341SetIntRoutine - CH341ReadInter - CH341AbortInter - CH341AbortRead - CH341AbortWrite - CH341ReadI2C - CH341WriteI2C - CH341SetExclusive - CH341SetTimeout - CH341GetDeviceName - CH341GetVerIC - CH341FlushBuffer - CH341WriteRead - CH341ResetInter - CH341ResetRead - CH341ResetWrite -} -implementation - - -end. diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" deleted file mode 100644 index ccebddb..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341DLL.dcu" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" deleted file mode 100644 index 87cb41e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PAR.ico" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" deleted file mode 100644 index 23de6ed..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.cfg" +++ /dev/null @@ -1,35 +0,0 @@ --$A8 --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J- --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$YD --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"c:\program files\borland\delphi6\Projects\Bpl" --LN"c:\program files\borland\delphi6\Projects\Bpl" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" deleted file mode 100644 index 39b5988..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dof" +++ /dev/null @@ -1,108 +0,0 @@ -[FileVersion] -Version=6.0 -[Compiler] -A=8 -B=0 -C=1 -D=1 -E=0 -F=0 -G=1 -H=1 -I=1 -J=0 -K=0 -L=1 -M=0 -N=1 -O=1 -P=1 -Q=0 -R=0 -S=0 -T=0 -U=0 -V=1 -W=0 -X=1 -Y=1 -Z=1 -ShowHints=1 -ShowWarnings=1 -UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[Linker] -MapFile=0 -OutputObjs=0 -ConsoleApp=1 -DebugInfo=0 -RemoteSymbols=0 -MinStackSize=16384 -MaxStackSize=1048576 -ImageBase=4194304 -ExeDescription= -[Directories] -OutputDir= -UnitOutputDir= -PackageDLLOutputDir= -PackageDCPOutputDir= -SearchPath= -Packages=vcl;rtl;dbrtl;adortl;vcldb;vclx;bdertl;vcldbx;ibxpress;dsnap;cds;bdecds;qrpt;teeui;teedb;tee;dss;visualclx;visualdbclx;dsnapcrba;dsnapcon;VclSmp;vclshlctrls;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;webdsnap;websnap;dbexpress;dbxcds;indy;dclOffice2k;teeqr -Conditionals= -DebugSourceDirs= -UsePackages=0 -[Parameters] -RunParams= -HostApplication= -Launcher= -UseLauncher=0 -DebugCWD= -[Language] -ActiveLang= -ProjectLang= -RootDir= -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=2052 -CodePage=936 -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= -[HistoryLists\hlDebugSourcePath] -Count=1 -Item0=D:\Program -[HistoryLists\hlUnitAliases] -Count=1 -Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; -[HistoryLists\hlSearchPath] -Count=1 -Item0=D:\Program -[HistoryLists\hlUnitOutputDirectory] -Count=1 -Item0=D:\Program -[HistoryLists\hlOutputDirectorry] -Count=1 -Item0=D:\Program -[HistoryLists\hlBPLOutput] -Count=1 -Item0=D:\Program -[HistoryLists\hlDCPOutput] -Count=1 -Item0=D:\Program diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" deleted file mode 100644 index de3cde4..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dpr" +++ /dev/null @@ -1,14 +0,0 @@ -program CH341PARA; - -uses - Forms, - Unit1 in 'Unit1.pas' {Form1}, - CH341DLL in 'CH341DLL.pas'; - -{$R *.res} - -begin - Application.Initialize; - Application.CreateForm(TForm1, Form1); - Application.Run; -end. diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" deleted file mode 100644 index 2853b2c..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.dsk" +++ /dev/null @@ -1,292 +0,0 @@ -[Closed Files] -File_0=SourceModule,'D:\CH341DLL.pas',0,1,115,1,1,0,0 -File_1=SourceModule,'D:\DLL\CH375DLL\CH375DLL.pas',0,1,67,3,81,0,0 -File_2=SourceModule,'D:\PnPNotify\Delphi\main.pas',0,1,45,56,63,0,0 -File_3=SourceModule,'D:\PnPNotify\Delphi\devnotify.pas',0,1,1,65,165,0,0 -File_4=SourceModule,'c:\program files\borland\delphi6\source\rtl\Sys\SysConst.pas',0,1,1,1,169,0,0 -File_5=SourceModule,'c:\program files\borland\delphi6\source\vcl\Consts.pas',0,1,1,1,297,0,0 -File_6=SourceModule,'c:\program files\borland\delphi6\source\rtl\common\RTLConsts.pas',0,1,4,1,126,0,0 -File_7=SourceModule,'D:\Program\CH372DEMO(Delphi)\Main.pas',0,39,311,127,314,1,0 -File_8=SourceModule,'D:\Program\CH372DEMO(Delphi)\EnterDate.pas',0,1,93,45,96,1,0 -File_9=SourceModule,'D:\Program\CH372DEMO(Delphi)\CH375DLL.pas',0,1,107,48,114,0,0 - -[Modules] -Module0=D:\TaskFinished\CH341EVT\DELPHI\Unit1.pas -Module1=D:\modi\CH341EVT\DELPHI\CH341DLL.PAS -Module2=D:\modi\CH341EVT\DELPHI\CH341PARA.dpr -Module3=D:\modi\CH341EVT\DELPHI\Unit1.pas -Count=4 -EditWindowCount=1 - -[D:\TaskFinished\CH341EVT\DELPHI\Unit1.pas] -ModuleType=SourceModule -FormState=1 -FormOnTop=0 - -[D:\modi\CH341EVT\DELPHI\CH341DLL.PAS] -ModuleType=SourceModule -FormState=0 -FormOnTop=0 - -[D:\modi\CH341EVT\DELPHI\CH341PARA.dpr] -ModuleType=SourceModule -FormState=0 -FormOnTop=0 - -[D:\modi\CH341EVT\DELPHI\Unit1.pas] -ModuleType=SourceModule -FormState=0 -FormOnTop=0 - -[D:\TaskFinished\CH341EVT\DELPHI\ProjectGroup1.bpg] -FormState=0 -FormOnTop=0 - -[D:\TaskFinished\CH341EVT\DELPHI\CH341PARA.dpr] -FormState=0 -FormOnTop=0 - -[EditWindow0] -ViewCount=4 -CurrentView=1 -View0=0 -View1=1 -View2=2 -View3=3 -CodeExplorer=CodeExplorer@EditWindow0 -MessageView=MessageView@EditWindow0 -Create=1 -Visible=1 -State=2 -Left=130 -Top=372 -Width=894 -Height=482 -MaxLeft=-4 -MaxTop=107 -MaxWidth=1032 -MaxHeight=635 -ClientWidth=1024 -ClientHeight=601 -LeftPanelSize=0 -RightPanelSize=257 -RightPanelClients=DockSite0 -RightPanelData=0000040000000000000000000000000000000000000000000001000000000000000009000000446F636B5369746530FFFFFFFF -BottomPanelSize=52 -BottomPanelClients=MessageView@EditWindow0 -BottomPanelData=000004000000000000000000000000000000000000000000000100000000000000000B0000004D65737361676556696577FFFFFFFF - -[View0] -Module=D:\modi\CH341EVT\DELPHI\Unit1.pas -CursorX=74 -CursorY=282 -TopLine=296 -LeftCol=1 - -[View1] -Module=D:\TaskFinished\CH341EVT\DELPHI\Unit1.pas -CursorX=56 -CursorY=374 -TopLine=360 -LeftCol=1 - -[View2] -Module=D:\modi\CH341EVT\DELPHI\CH341PARA.dpr -CursorX=29 -CursorY=6 -TopLine=1 -LeftCol=1 - -[View3] -Module=D:\modi\CH341EVT\DELPHI\CH341DLL.PAS -CursorX=63 -CursorY=340 -TopLine=328 -LeftCol=1 - -[Watches] -Count=0 - -[Breakpoints] -Count=0 - -[AddressBreakpoints] -Count=0 - -[Main Window] -Create=1 -Visible=1 -State=2 -Left=0 -Top=0 -Width=1024 -Height=112 -MaxLeft=-4 -MaxTop=-4 -MaxWidth=1032 -MaxHeight=112 -ClientWidth=1024 -ClientHeight=78 - -[ProjectManager] -Create=1 -Visible=1 -State=0 -Left=0 -Top=0 -Width=249 -Height=482 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=249 -ClientHeight=482 -TBDockHeight=284 -LRDockWidth=405 -Dockable=1 - -[CPUWindow] -Create=1 -Visible=0 -State=0 -Left=245 -Top=207 -Width=533 -Height=353 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=525 -ClientHeight=319 -DumpPane=67 -DisassemblyPane=160 -RegisterPane=198 -FlagPane=55 - -[AlignmentPalette] -Create=1 -Visible=0 -State=0 -Left=200 -Top=114 -Width=156 -Height=84 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=150 -ClientHeight=60 - -[PropertyInspector] -Create=1 -Visible=1 -State=0 -Left=0 -Top=0 -Width=249 -Height=482 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=249 -ClientHeight=482 -TBDockHeight=367 -LRDockWidth=190 -Dockable=1 -SplitPos=85 -ArrangeBy=Name -SelectedItem=AutoSize -ExpandedItems= -HiddenCategories= - -[ObjectTree] -Create=1 -Visible=1 -State=0 -Left=0 -Top=0 -Width=249 -Height=482 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=249 -ClientHeight=482 -TBDockHeight=248 -LRDockWidth=190 -Dockable=1 - -[ToDo List] -Create=1 -Visible=0 -State=0 -Left=277 -Top=259 -Width=470 -Height=250 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=462 -ClientHeight=224 -TBDockHeight=250 -LRDockWidth=470 -Dockable=1 -Column0Width=200 -Column1Width=30 -Column2Width=100 -Column3Width=70 -Column4Width=70 -SortOrder=4 -ShowHints=1 -ShowChecked=1 - -[CodeExplorer@EditWindow0] -Create=1 -Visible=1 -State=0 -Left=0 -Top=0 -Width=249 -Height=482 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=249 -ClientHeight=482 -TBDockHeight=305 -LRDockWidth=140 -Dockable=1 - -[MessageView@EditWindow0] -Create=1 -Visible=1 -State=0 -Left=12 -Top=0 -Width=1012 -Height=52 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=1012 -ClientHeight=52 -TBDockHeight=52 -LRDockWidth=443 -Dockable=1 - -[DockHosts] -DockHostCount=1 - -[DockSite0] -DockSiteType=1 -Create=1 -Visible=1 -State=0 -Left=0 -Top=12 -Width=257 -Height=511 -MaxLeft=-1 -MaxTop=-1 -ClientWidth=257 -ClientHeight=511 -TBDockHeight=284 -LRDockWidth=257 -Dockable=1 -TabPosition=0 -ActiveTab=对象检视器 -TabDockClients=ProjectManager,PropertyInspector,ObjectTree,CodeExplorer@EditWindow0 - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" deleted file mode 100644 index 1bebfd1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" deleted file mode 100644 index a85e1d2..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/CH341PARA.res" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" deleted file mode 100644 index 9bc0dfb..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dcu" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" deleted file mode 100644 index cdc0ee8..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.ddp" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" deleted file mode 100644 index 01c3574..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.dfm" +++ /dev/null @@ -1,623 +0,0 @@ -object Form1: TForm1 - Left = 127 - Top = 152 - Width = 534 - Height = 532 - Caption = 'CH341EVT' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'MS Sans Serif' - Font.Style = [] - Icon.Data = { - 0000010002002020100000000000E80200002600000010101000000000002801 - 00000E0300002800000020000000400000000100040000000000800200000000 - 0000000000000000000000000000000000000000800000800000008080008000 - 00008000800080800000C0C0C000808080000000FF0000FF000000FFFF00FF00 - 0000FF00FF00FFFF0000FFFFFF00000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000111111111111111111111111111111110000 - 0000000000000000000000000000000CC0000CC000000CCCC000CC0000CC000C - C0000CC00000CC00CC00CC0000CC000CC0000CC0000CC0000C00CC0000CC00CC - CC00CCCC000CC0000000CC0000CC00CC0C00C0CC000CC0000000CC0000CC0CC0 - 0CCCC00CC00CC0000000CCCCCCCC0CC00CCCC00CC00CC0000000CC0000CCCC00 - 00CC0000CC0CC0000C00CC0000CCCC0000CC0000CC00CC00CC00CC0000CCCC00 - 00CC0000CC000CCCC000CC0000CCF01E7E7FF3FE7E7FF3FC3E7FF3FC3E7FF3FD - BE7FF0399E7FF3F99E7FF3F99E7FF3F3CE7FF013C00FFFFFFFFFC3330F999932 - 6799993264199F33E4999F038E199933E61999326711C3330F99FFFFFFFF0000 - 0000FFFFFFFFE79F873CE79F333CE79E7B3CC30E7F3CCB4E7F3C98667F009866 - 7F3C3CF27B3C3CF3333C3CF3873C280000001000000020000000010004000000 - 0000C00000000000000000000000000000000000000000000000000080000080 - 000000808000800000008000800080800000C0C0C000808080000000FF0000FF - 000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF - 0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF - 0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000} - OldCreateOrder = False - OnClose = FormClose - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object PageControl1: TPageControl - Left = 12 - Top = 8 - Width = 497 - Height = 473 - ActivePage = TabSheet2 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'MS Sans Serif' - Font.Style = [] - ParentFont = False - TabIndex = 1 - TabOrder = 0 - OnChange = PageControl1Change - object TabSheet1: TTabSheet - Caption = 'EEPROM'#35835#20889 - object GroupBox1: TGroupBox - Left = 20 - Top = 8 - Width = 101 - Height = 409 - Caption = 'EEPROM'#22411#21495 - TabOrder = 0 - object c1: TRadioButton - Left = 10 - Top = 18 - Width = 69 - Height = 25 - Caption = '24C01' - Checked = True - TabOrder = 0 - TabStop = True - end - object c2: TRadioButton - Left = 10 - Top = 41 - Width = 69 - Height = 25 - Caption = '24C02' - TabOrder = 1 - end - object c3: TRadioButton - Left = 10 - Top = 64 - Width = 69 - Height = 25 - Caption = '24C04' - TabOrder = 2 - end - object c4: TRadioButton - Left = 10 - Top = 88 - Width = 69 - Height = 25 - Caption = '24C08' - TabOrder = 3 - end - object c9: TRadioButton - Left = 10 - Top = 204 - Width = 69 - Height = 25 - Caption = '24C256' - TabOrder = 4 - end - object c10: TRadioButton - Left = 10 - Top = 228 - Width = 69 - Height = 25 - Caption = '24C512' - TabOrder = 5 - end - object c11: TRadioButton - Left = 10 - Top = 251 - Width = 69 - Height = 25 - Caption = '24C1024' - TabOrder = 6 - end - object c12: TRadioButton - Left = 10 - Top = 274 - Width = 69 - Height = 25 - Caption = '24C2048' - TabOrder = 7 - end - object c13: TRadioButton - Left = 10 - Top = 298 - Width = 69 - Height = 25 - Caption = '24C4096' - TabOrder = 8 - end - object c5: TRadioButton - Left = 10 - Top = 111 - Width = 69 - Height = 25 - Caption = '24C16' - TabOrder = 9 - end - object c6: TRadioButton - Left = 10 - Top = 134 - Width = 69 - Height = 25 - Caption = '24C32' - TabOrder = 10 - end - object c7: TRadioButton - Left = 10 - Top = 158 - Width = 69 - Height = 25 - Caption = '24C64' - TabOrder = 11 - end - object c8: TRadioButton - Left = 10 - Top = 181 - Width = 69 - Height = 25 - Caption = '24C128' - TabOrder = 12 - end - end - object GroupBox2: TGroupBox - Left = 136 - Top = 10 - Width = 341 - Height = 201 - Caption = #20889#20837#25968#25454#65292'API=CH341WriteEEPROM' - TabOrder = 1 - object Label1: TLabel - Left = 16 - Top = 20 - Width = 96 - Height = 13 - Caption = #25968#25454#21333#20803#36215#22987#22320#22336 - end - object Label2: TLabel - Left = 16 - Top = 64 - Width = 73 - Height = 13 - AutoSize = False - Caption = #20889#20837#38271#24230 - end - object Label3: TLabel - Left = 15 - Top = 108 - Width = 242 - Height = 13 - AutoSize = False - Caption = #22810#20010#25968#25454#65288'16'#36827#21046#65292#20004#23383#31526#19968#32452#65289 - end - object Label7: TLabel - Left = 88 - Top = 64 - Width = 38 - Height = 13 - Caption = '(<400H)' - end - object wrdataaddr: TMemo - Left = 16 - Top = 36 - Width = 121 - Height = 25 - TabOrder = 0 - end - object wrdatalen: TMemo - Left = 16 - Top = 80 - Width = 121 - Height = 25 - TabOrder = 1 - end - object wrdatabuf: TMemo - Left = 15 - Top = 124 - Width = 218 - Height = 69 - Lines.Strings = ( - '') - ScrollBars = ssVertical - TabOrder = 2 - end - object WriteEeprom: TButton - Left = 212 - Top = 80 - Width = 75 - Height = 25 - Caption = 'Write' - TabOrder = 3 - OnClick = WriteEepromClick - end - end - object GroupBox3: TGroupBox - Left = 136 - Top = 216 - Width = 341 - Height = 201 - Caption = #35835#20986#25968#25454#65292'API=CH341ReadEEPROM' - TabOrder = 2 - object Label4: TLabel - Left = 16 - Top = 20 - Width = 96 - Height = 13 - Caption = #25968#25454#21333#20803#36215#22987#22320#22336 - end - object Label5: TLabel - Left = 16 - Top = 64 - Width = 85 - Height = 13 - AutoSize = False - Caption = #35835#21462#38271#24230 - end - object Label6: TLabel - Left = 17 - Top = 108 - Width = 286 - Height = 13 - AutoSize = False - Caption = #22810#20010#25968#25454#65288'16'#36827#21046#65292#20004#23383#31526#19968#32452#65289 - end - object Label8: TLabel - Left = 100 - Top = 64 - Width = 38 - Height = 13 - Caption = '(<400H)' - end - object rddataaddr: TMemo - Left = 16 - Top = 36 - Width = 121 - Height = 25 - TabOrder = 0 - end - object rddatalen: TMemo - Left = 16 - Top = 80 - Width = 121 - Height = 25 - TabOrder = 1 - end - object rddatabuf: TMemo - Left = 15 - Top = 124 - Width = 263 - Height = 69 - ScrollBars = ssVertical - TabOrder = 2 - end - object ReadEeprom: TButton - Left = 220 - Top = 72 - Width = 75 - Height = 25 - Caption = 'Read' - TabOrder = 3 - OnClick = ReadEepromClick - end - end - end - object TabSheet2: TTabSheet - Caption = #25968#23383'I/O' - ImageIndex = 1 - object Label13: TLabel - Left = 13 - Top = 29 - Width = 185 - Height = 13 - AutoSize = False - Caption = #36755#20986#28436#31034#65306'LED'#22797#36873#26694#25511#21046#35780 - end - object Label14: TLabel - Left = 13 - Top = 45 - Width = 145 - Height = 13 - AutoSize = False - Caption = #20272#26495#20013'8'#20010'LED'#29366#24577 - end - object Label15: TLabel - Left = 13 - Top = 81 - Width = 177 - Height = 13 - AutoSize = False - Caption = #36755#20837#28436#31034#65306'8'#20301#24320#20851#29366#24577#26159#28857 - end - object Label16: TLabel - Left = 13 - Top = 97 - Width = 185 - Height = 13 - AutoSize = False - Caption = '"'#21047#26032'"'#25353#32445#33719#24471#35780#20272#26495#20013#25320#30721 - end - object Label19: TLabel - Left = 13 - Top = 113 - Width = 133 - Height = 13 - AutoSize = False - Caption = #25320#30721#24320#20851#30340#24403#21069#29366#24577 - end - object Label17: TLabel - Left = 13 - Top = 249 - Width = 173 - Height = 13 - AutoSize = False - Caption = #25152#29992'API'#19982'MEM'#24182#21475#30456#21516#65292#21482 - end - object Label18: TLabel - Left = 13 - Top = 265 - Width = 129 - Height = 13 - AutoSize = False - Caption = #26159#38271#24230#24635#26159'1'#23383#33410 - end - object GroupBox5: TGroupBox - Left = 347 - Top = 20 - Width = 125 - Height = 361 - Caption = #36755#20837#65306'8'#20301#24320#20851#29366#24577 - TabOrder = 0 - object Label11: TLabel - Left = 25 - Top = 308 - Width = 70 - Height = 21 - AutoSize = False - Caption = 'OFF:'#19981#36873#20013 - end - object Label12: TLabel - Left = 28 - Top = 291 - Width = 61 - Height = 17 - AutoSize = False - Caption = 'ON:'#36873#20013 - end - object ON1: TCheckBox - Left = 35 - Top = 24 - Width = 53 - Height = 21 - Caption = 'ON1' - Enabled = False - TabOrder = 0 - end - object ON2: TCheckBox - Left = 35 - Top = 58 - Width = 53 - Height = 21 - Caption = 'ON2' - Enabled = False - TabOrder = 1 - end - object ON3: TCheckBox - Left = 35 - Top = 92 - Width = 53 - Height = 21 - Caption = 'ON3' - Enabled = False - TabOrder = 2 - end - object ON4: TCheckBox - Left = 35 - Top = 126 - Width = 53 - Height = 21 - Caption = 'ON4' - Enabled = False - TabOrder = 3 - end - object ON5: TCheckBox - Left = 35 - Top = 161 - Width = 53 - Height = 21 - Caption = 'ON5' - Enabled = False - TabOrder = 4 - end - object ON6: TCheckBox - Left = 35 - Top = 195 - Width = 53 - Height = 21 - Caption = 'ON6' - Enabled = False - TabOrder = 5 - end - object ON7: TCheckBox - Left = 35 - Top = 229 - Width = 53 - Height = 21 - Caption = 'ON7' - Enabled = False - TabOrder = 6 - end - object ON8: TCheckBox - Left = 35 - Top = 264 - Width = 53 - Height = 21 - Caption = 'ON8' - Enabled = False - TabOrder = 7 - end - object Button1: TButton - Left = 12 - Top = 328 - Width = 97 - Height = 25 - Caption = #28857#27492#21047#26032#29366#24577 - TabOrder = 8 - OnClick = Button1Click - end - end - object GroupBox4: TGroupBox - Left = 208 - Top = 24 - Width = 125 - Height = 361 - Caption = #36755#20986#65306'LED'#26174#31034#25511#21046 - TabOrder = 1 - object Label10: TLabel - Left = 16 - Top = 319 - Width = 85 - Height = 13 - AutoSize = False - Caption = #26410#36873#20013':'#28783#20142 - end - object Label9: TLabel - Left = 29 - Top = 303 - Width = 61 - Height = 17 - AutoSize = False - Caption = #36873#20013':'#28783#28781 - end - object LED1: TCheckBox - Left = 32 - Top = 24 - Width = 53 - Height = 21 - Caption = 'LED1' - TabOrder = 0 - OnClick = LED1Click - end - object LED2: TCheckBox - Left = 32 - Top = 58 - Width = 53 - Height = 21 - Caption = 'LED2' - TabOrder = 1 - OnClick = LED2Click - end - object LED3: TCheckBox - Left = 32 - Top = 92 - Width = 53 - Height = 21 - Caption = 'LED3' - TabOrder = 2 - OnClick = LED3Click - end - object LED4: TCheckBox - Left = 32 - Top = 126 - Width = 53 - Height = 21 - Caption = 'LED4' - TabOrder = 3 - OnClick = LED4Click - end - object LED5: TCheckBox - Left = 32 - Top = 161 - Width = 53 - Height = 21 - Caption = 'LED5' - TabOrder = 4 - OnClick = LED5Click - end - object LED6: TCheckBox - Left = 32 - Top = 195 - Width = 53 - Height = 21 - Caption = 'LED6' - TabOrder = 5 - OnClick = LED6Click - end - object LED7: TCheckBox - Left = 32 - Top = 229 - Width = 53 - Height = 21 - Caption = 'LED7' - TabOrder = 6 - OnClick = LED7Click - end - object LED8: TCheckBox - Left = 32 - Top = 264 - Width = 53 - Height = 21 - Caption = 'LED8' - TabOrder = 7 - OnClick = LED8Click - end - end - object GroupBox6: TGroupBox - Left = 13 - Top = 309 - Width = 137 - Height = 77 - Caption = #36873#25321'MEM'#35835#20889#22320#22336 - TabOrder = 2 - object memadd0: TRadioButton - Left = 16 - Top = 20 - Width = 85 - Height = 21 - Caption = #22320#22336'0' - Checked = True - TabOrder = 0 - TabStop = True - end - object memadd1: TRadioButton - Left = 16 - Top = 40 - Width = 77 - Height = 21 - Caption = #22320#22336'0' - TabOrder = 1 - end - end - object CH341_NOTIFY_ROUTINE: TButton - Left = 148 - Top = 404 - Width = 213 - Height = 25 - Caption = #27169#25311#22788#29702#35774#22791#25402#25300#20013#26029#20107#20214 - Enabled = False - TabOrder = 3 - OnKeyUp = CH341_NOTIFY_ROUTINEKeyUp - end - end - end -end diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" deleted file mode 100644 index 5a0ceee..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/DELPHI/Unit1.pas" +++ /dev/null @@ -1,534 +0,0 @@ -unit Unit1; - -interface - -uses - Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, - Dialogs, StdCtrls,CH341DLL, ComCtrls; - -type - TForm1 = class(TForm) - PageControl1: TPageControl; - TabSheet1: TTabSheet; - TabSheet2: TTabSheet; - GroupBox1: TGroupBox; - c1: TRadioButton; - c2: TRadioButton; - c3: TRadioButton; - c4: TRadioButton; - c9: TRadioButton; - c10: TRadioButton; - c11: TRadioButton; - c12: TRadioButton; - c13: TRadioButton; - c5: TRadioButton; - c6: TRadioButton; - c7: TRadioButton; - c8: TRadioButton; - GroupBox2: TGroupBox; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label7: TLabel; - wrdataaddr: TMemo; - wrdatalen: TMemo; - wrdatabuf: TMemo; - WriteEeprom: TButton; - GroupBox3: TGroupBox; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - Label8: TLabel; - rddataaddr: TMemo; - rddatalen: TMemo; - rddatabuf: TMemo; - ReadEeprom: TButton; - GroupBox5: TGroupBox; - Label11: TLabel; - Label12: TLabel; - ON1: TCheckBox; - ON2: TCheckBox; - ON3: TCheckBox; - ON4: TCheckBox; - ON5: TCheckBox; - ON6: TCheckBox; - ON7: TCheckBox; - ON8: TCheckBox; - GroupBox4: TGroupBox; - Label10: TLabel; - Label9: TLabel; - LED1: TCheckBox; - LED2: TCheckBox; - LED3: TCheckBox; - LED4: TCheckBox; - LED5: TCheckBox; - LED6: TCheckBox; - LED7: TCheckBox; - LED8: TCheckBox; - Label13: TLabel; - Label14: TLabel; - Label15: TLabel; - Label16: TLabel; - Label19: TLabel; - Label17: TLabel; - Label18: TLabel; - GroupBox6: TGroupBox; - memadd0: TRadioButton; - memadd1: TRadioButton; - Button1: TButton; - CH341_NOTIFY_ROUTINE: TButton; - procedure WriteEepromClick(Sender: TObject); - procedure ReadEepromClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormClose(Sender: TObject; var Action: TCloseAction); - procedure PageControl1Change(Sender: TObject); - procedure Button1Click(Sender: TObject); - procedure LED1Click(Sender: TObject); - procedure LED2Click(Sender: TObject); - procedure LED3Click(Sender: TObject); - procedure LED4Click(Sender: TObject); - procedure LED5Click(Sender: TObject); - procedure LED6Click(Sender: TObject); - procedure LED7Click(Sender: TObject); - procedure LED8Click(Sender: TObject); - procedure CH341_NOTIFY_ROUTINEKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); - - - private - { Private declarations } - public - - { Public declarations } - end; - - procedure CH341_INT_Func(iStatus:cardinal);stdcall; -var - Form1: TForm1; - mIndex:cardinal; - mOpen:Boolean; - hopen:cardinal; -implementation - -{$R *.dfm} -procedure enablebtn(bEnable:Boolean); //bEnable=true :各窗体按钮可用 ; - //=false:enable:各窗体按钮禁用 -begin - Form1.WriteEeprom.Enabled :=bEnable; - Form1.ReadEeprom.Enabled :=bEnable; - Form1.Button1.Enabled := bEnable; - Form1.LED1.Enabled := bEnable; - Form1.LED2.Enabled := bEnable; - Form1.LED3.Enabled := bEnable; - Form1.LED4.Enabled := bEnable; - Form1.LED5.Enabled := bEnable; - Form1.LED6.Enabled := bEnable; - Form1.LED7.Enabled := bEnable; - Form1.LED8.Enabled := bEnable; - If (bEnable = True) Then //窗体标题显示 - begin - Form1.Caption := 'CH341EVT **设备已插上'; - end - Else - begin - Form1.Caption := 'CH341EVT **设备已拔出'; - End; - If (bEnable = True) Then //数字I/O窗口已初始化,刷新LED,按拔码开关状态 - begin - Form1.LED1Click(Form1.LED1); - Form1.LED2Click(Form1.LED2); - Form1.LED3Click(Form1.LED3); - Form1.LED4Click(Form1.LED4); - Form1.LED5Click(Form1.LED5); - Form1.LED6Click(Form1.LED6); - Form1.LED7Click(Form1.LED7); - Form1.LED8Click(Form1.LED8); - Form1.Button1Click(Form1.Button1 ) ; - End; -end; - -procedure CH341_INT_Func(iStatus:cardinal);stdcall; -begin - PostMessage(Form1.CH341_NOTIFY_ROUTINE.Handle,WM_KEYUP,iStatus,0); -end; - -//数据格式转换格式 -function BytetoHex(date:byte):string; -var de:integer; -begin - de:=0; - case date of - 0..9: BytetoHex:='0'+inttostr(date); - 10..15: bytetohex:='0'+chr(ord('A')+(date-10)); - 16..255:bytetohex:=IntToHex(date,de); - else - bytetohex:='00'; - end; -end; - -//两位十六进制字符转换为数值 -function HexToBcd(Str:string):cardinal; -var - strLen:byte; - x:char; - i:byte; - FunResult:cardinal; -begin - str:=trim(str); - strlen :=Length(str); - funresult:=0; - For i := 1 To (StrLen ) do - begin - x := upcase(str[i]); - Case x of - 'A':FunResult := FunResult + 10 * Trunc(Exp((strlen-i)*ln(16))); - 'B':FunResult := FunResult + 11 * Trunc(Exp((strlen-i)*ln(16))); - 'C':FunResult := FunResult + 12 * Trunc(Exp((strlen-i)*ln(16))); - 'D':FunResult := FunResult + 13 * Trunc(Exp((strlen-i)*ln(16))); - 'E':FunResult := FunResult + 14 * Trunc(Exp((strlen-i)*ln(16))); - 'F':FunResult := FunResult + 15 * Trunc(Exp((strlen-i)*ln(16))); - '0'..'9':FunResult := FunResult + strtoint(x) * Trunc(Exp((strlen-i)*ln(16))); - Else FunResult := 0; - End; - end; - hextobcd:=FunResult; -end; - -function BoolToByte(bool:boolean):byte; -begin -if bool=true then - BoolToByte:=1 -else - BoolToByte:=0; -end; - -function EepromID():EEPROM_TYPE; //根据单选按纽,选择E2P器件型号 -var - iEepromID:EEPROM_TYPE; -begin - iEepromID:=ID_24C01; - if(form1.c1.Checked=true) then - iEepromID:=ID_24C01; - if(form1.c2.Checked=true) then - iEepromID:=ID_24C02; - if(form1.c3.Checked=true) then - iEepromID:=ID_24C04; - if(form1.c4.Checked=true) then - iEepromID:=ID_24C08; - if(form1.c5.Checked=true) then - iEepromID:=ID_24C16; - if(form1.c6.Checked=true) then - iEepromID:=ID_24C32; - if(form1.c7.Checked=true) then - iEepromID:=ID_24C64; - if(form1.c8.Checked=true) then - iEepromID:=ID_24C128; - if(form1.c9.Checked=true) then - iEepromID:=ID_24C256; - if(form1.c10.Checked=true) then - iEepromID:=ID_24C512; - if(form1.c11.Checked=true) then - iEepromID:=ID_24C1024; - if(form1.c12.Checked=true) then - iEepromID:=ID_24C2048; - if(form1.c13.Checked=true) then - iEepromID:=ID_24C4096; - EepromID:=iEepromID; -end ; - -procedure SendLedVal(); - -var - mBuf:array[0..(mMAX_BUFFER_LENGTH - 1)]of Byte; - mLen:cardinal; -begin - If (mOpen = true) Then - begin - mLen := 1; - mBuf[0] :=((BoolToByte(form1.LED1.checked) shl 7) + (BoolToByte(form1.LED2.checked) shl 6) + (BoolToByte(form1.LED3.checked) shl 5) + (BoolToByte(form1.LED4.checked) shl 4) + (BoolToByte(form1.LED5.checked) shl 3) + (BoolToByte(form1.LED6.checked) shl 2) + (BoolToByte(form1.LED7.checked) shl 1) + (BoolToByte(form1.LED8.checked) shl 0)); //组合按钮键值 - If (form1.memadd0.checked = True) Then //地址0 - begin - If (CH341MemWriteAddr0(mIndex, @mBuf[0], @mLen) = False) Then - application.MessageBox ( '发送LED状态值失败!','CH341',MB_ICONEXCLAMATION); - end - Else - begin - If (form1.memadd1.checked= True) Then - begin - If (CH341MemWriteAddr1(mIndex, @mBuf[0], @mLen) = False) Then - application.MessageBox ( '发送LED状态值失败!', 'CH341',MB_ICONEXCLAMATION); - End; - end; - end - Else - application.MessageBox ( '设备未打开!','CH341',MB_ICONEXCLAMATION); -end; -procedure TForm1.WriteEepromClick(Sender: TObject); -var - mDataAddr:cardinal; - mLen:cardinal; - i:cardinal; - Tems:String; - Temh:byte; - hexval:integer; - buffer:array[0..(mMAX_BUFFER_LENGTH - 1)]of byte; -begin - hexval:=0; - mLen := HexToBcd(WrDataLen.Text) ; - If (WrDataAddr.Text = '') Then - begin - application.MessageBox('请输入数据单元起始地址!','CH341',MB_ICONEXCLAMATION); - Exit; - End; - If ((mLen <= 0) Or (WrDataBuf.Text = '')) Then - begin - application.MessageBox( '请输入要写入的数据,长度!', 'CH341',MB_ICONEXCLAMATION); - Exit; - End; - If (mLen > (Length(WrDataBuf.Text ) / 2)) Then //在输入长度和数据长度中取小值 - mLen := Length(WrDataBuf.text) div 2; - mDataAddr := HexToBcd(WrDataAddr.Text); - - for i:=0 to (mlen-1) do - begin - Tems := Trim(copy(wrdatabuf.Text , (i * 2 + 1), 2)); - Temh := hextobcd(Tems); - buffer[i]:=Temh; - end ; - - If (mOpen = True) Then - begin - If (CH341WriteEEPROM(mIndex, EepromID(), mDataAddr, mLen, @buffer[0]) = False) Then - application.MessageBox('读E2PROM数据失败!','CH341',MB_ICONEXCLAMATION); - WrDataLen.Text := inttohex(mLen,hexval); - end - Else - application.MessageBox('设备未打开!', 'CH341',MB_ICONEXCLAMATION); -end; - -procedure TForm1.ReadEepromClick(Sender: TObject); -var - hexval:integer; - mDataAddr:cardinal; - mlen:cardinal; - buffer:array[0..(mMAX_BUFFER_LENGTH - 1)]of byte; - buff : String; - i : cardinal; -begin - hexval:=0; - mlen :=hextobcd(rddatalen.Text); - - If (RdDataAddr.Text = '') Then - begin - application.MessageBox('请输入数据单元起始地址!','CH341',MB_ICONEXCLAMATION); - Exit ; - End; - If (mlen <= 0) Then - begin - application.MessageBox('请输入读取长度!','CH341',MB_ICONEXCLAMATION); - Exit; - End; - mDataAddr := HexToBcd(RdDataAddr.Text ); - If (mOpen = True) Then - begin - If (CH341ReadEEPROM(mIndex, eepromid, mDataAddr, mlen, @buffer[0])=true) Then - begin - buff:=''; - For i := 0 To mlen-1 do - buff :=buff + bytetohex(buffer[i])+' '; - RdDataBuf.Text := buff; - end - Else - application.MessageBox('读E2PROM数据失败!','CH341',MB_ICONEXCLAMATION); - RdDataLen.Text := inttohex(mlen,hexval); - end - Else - application.MessageBox ('设备未打开!', 'CH341',MB_ICONEXCLAMATION); - -end; - -procedure TForm1.FormCreate(Sender: TObject); - -begin -mIndex := 0; -hopen := CH341OpenDevice(mIndex); -If (hopen = INVALID_HANDLE_VALUE) Then -begin - //application.MessageBox( '打开设备失败','CH341PAR',MB_ICONEXCLAMATION); - mOpen := False; -end -Else -begin - mOpen := True; - rddatalen.Text :='0'; - rddataaddr.Text :='0'; - wrdatalen.Text :='0'; - wrdataaddr.Text :='0'; -end; -enablebtn(mOpen); //设备打开输入按钮可用,没打开按钮禁用 -CH341SetDeviceNotify(mIndex,'',CH341_INT_Func); //设备插拔通知 -end; - -procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); -begin -CH341SetDeviceNotify(mIndex,'',mPCH341_NOTIFY_ROUTINE(0)); -If (mOpen = True) Then - CH341CloseDevice (mIndex); -end; - -procedure TForm1.PageControl1Change(Sender: TObject); -begin -If (mOpen = True) Then - SendLedVal(); - form1.Button1Click(Sender); -end; - -procedure TForm1.Button1Click(Sender: TObject); -var - mBuf:array[0..(mMAX_BUFFER_LENGTH - 1)]of Byte; - mLen:cardinal; -begin -If (mOpen = true) Then -begin - mBuf[0]:=0; - mLen := 1; - If (memadd0.Checked = True) Then - begin - If (CH341MemReadAddr0(mIndex, @mBuf[0], @mLen) = False) Then - begin - application.MessageBox ('MEM地址方式读拔码开关状态失败!', 'CH341',MB_ICONEXCLAMATION); - Exit; - End; - end - Else - begin - if (memadd1.Checked = True) then - begin - If (CH341MemReadAddr1(mIndex, @mBuf, @mLen) = False) Then - begin - application.MessageBox ( 'MEM地址方式1读拔码开关状态失败! ','CH341',MB_ICONEXCLAMATION); - Exit; - end; - End; - end; -//按钮状态显示 - If ((mBuf[0] And 1) = 0) Then - ON1.checked := true - Else - ON1.checked := false; - - If ((mBuf[0] And 2) = 0) Then - ON2.checked := true - Else - ON2.checked := false; - - If ((mBuf[0] And 4) = 0) Then - ON3.checked := true - Else - ON3.checked := false; - - If ((mBuf[0] And 8) = 0) Then - ON4.checked := true - Else - ON4.checked := false; - - If ((mBuf[0] And 16) = 0) Then - ON5.checked := true - Else - ON5.checked := false; - - If ((mBuf[0] And 32) = 0) Then - ON6.checked := true - Else - ON6.checked := false; - - If ((mBuf[0] And 64) = 0) Then - ON7.checked := true - Else - ON7.checked := false; - - If ((mBuf[0] And 128) = 0) Then - ON8.checked := true - Else - ON8.checked := false; -end -//Else -// application.messagebox( '设备未打开!','CH341',MB_ICONEXCLAMATION); - -end; - -procedure TForm1.LED1Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED2Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED3Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED4Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED5Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED6Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED7Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - -procedure TForm1.LED8Click(Sender: TObject); -begin -SendLedVal(); //发送LED状态值 -end; - - -procedure TForm1.CH341_NOTIFY_ROUTINEKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); -var - iEventStatus:word; -begin - iEventStatus := Key; //插拔事件 - If (iEventStatus = CH341_DEVICE_ARRIVAL) Then // 设备插入事件,已经插入 - begin - If (CH341OpenDevice(mIndex) = -1) Then - begin - MessageBox(Form1.Handle, '打开设备失败!', 'CH341PAR',0); - mOpen := FALSE; - end - Else - mOpen := True; //打开成功 - end - Else - begin - If (iEventStatus = CH341_DEVICE_REMOVE) Then // 设备拔出事件,已经拔出 - begin - CH341CloseDevice (mIndex); - mOpen := False; - End; - end ; - enablebtn (mOpen); //设备打开,按钮可用,设备没打开,按钮禁用 -end; - - - -end. - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" deleted file mode 100644 index ccf7c24..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EEPROM/CH341CFG.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" deleted file mode 100644 index 8622f31..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/EXAM/EXAM.C" +++ /dev/null @@ -1,543 +0,0 @@ -// V1.1 - -#include -#include "CH341DLL.H" - -/* 本程序涉及到 - 1、2线接口的一些自定义时序,处理IIC总线的应答位,以及了解2线接口的内部时序分析 - 2、提供例子程序,操作2线接口IIC器件X76F640、PCF8574、PCA9554 - 3、用EPP或者MEM并口进行多位输出或者多位输入,模拟只读或者只写的SPI时序 - 4、用UIO通用I/O位流命令实现自定义的同步串行接口 - 5、提供例子程序,操作类似SPI的非标准串行时序的器件TLC1549 - 6、提供例子程序,通过CH341StreamSPI4操作4线接口SPI器件25C512、25C020 - 7、提供例子程序,通过CH341BitStreamSPI操作类似SPI的非标准串行时序的器件ADC0831 - 另外可以用CH341SetOutput设置CH341的I/O方向,并通过CH341的任何一个引脚直接输出数据,未提供例子,建议用CH341Set_D5_D0代替 -*/ - -/* CH341并口驱动及DLL的API层次,按从低向高分为 - 1、CH341DriverCommand直接传给WDM驱动程序层 - 2、CH341WriteData只写数据, CH341ReadData只读数据, CH341WriteRead先写数据再读数据 - 3、CH341StreamI2C先写IIC,可选地再读IIC (内部调用CH341WriteData和CH341WriteRead) - CH341StreamSPI进行SPI传输,读写都是可选的 (内部调用CH341WriteRead) - 4、CH341ReadEEPROM读EEPROM数据, CH341WriteEEPROM写EEPROM数据 (内部调用CH341StreamI2C) - 本例子中的子程序将调用CH341WriteData、CH341WriteRead、CH341StreamI2C等DLL中的API */ - -/* 实测速度 - CH341StreamI2C 约56K字节 - CH341ReadEEPROM 约56K字节 - CH341WriteEEPROM 约5K字节(如果是RAM而非闪存那么与CH341ReadEEPROM速度相同) - CH341StreamSPI4 约68K字节 - CH341StreamSPI5 每路约30K字节 * 2路输入和2路输出 - CH341BitStreamSPI 每路约8K位 * 至少2路输入和2路输出(最多7路输入4路输出) -*/ - -/* ********************************************************************************************** */ -/* 例子:兼容IIC总线的通用操作时序 */ - -BOOL WINAPI IIC_IssueStart( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_IssueStop( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_OutBlockSkipAck( // 输出数据块,不检查应答 - ULONG iIndex, // 指定CH341设备序号 - ULONG iOutLength, // 准备写出的数据字节数,单次必须小于29字节 - PVOID iOutBuffer ) // 指向一个缓冲区,放置准备写出的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - if ( iOutLength == 0 || iOutLength > ( mCH341_PACKET_LENGTH - 1 - 1 - 1 ) ) return( FALSE ); - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | iOutLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[2], iOutBuffer, iOutLength ); // 数据 - mBuffer[ 1 + 1 + iOutLength ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 1 + 1 + iOutLength + 1; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_OutByteCheckAck( // 输出一字节数据并检查应答是否有效 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iOutByte ) // 准备写出的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答 - mBuffer[ 2 ] = iOutByte; // 数据 - mBuffer[ 3 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 4; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效 - } - return( FALSE ); -} - -BOOL WINAPI IIC_InBlockByAck( // 输入数据块,每输入一个字节都产生有效应答 - ULONG iIndex, // 指定CH341设备序号 - ULONG iInLength, // 准备读取的数据字节数,单次必须小于32字节 - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - if ( iInLength == 0 || iInLength > mCH341A_CMD_I2C_STM_MAX ) return( FALSE ); - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | iInLength ); // 输入数据,位5-位0为长度 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen == iInLength ) { - memcpy( oInBuffer, &mBuffer[0], iInLength ); // 数据 - return( TRUE ); - } - } - return( FALSE ); -} - -BOOL WINAPI IIC_InByteNoAck( // 输入一字节数据,但是不产生应答 - ULONG iIndex, // 指定CH341设备序号 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_IN; // 输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen ) { - *oInByte = mBuffer[ mInLen - 1 ]; // 数据 - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 操作加密存储器X76F640 */ - -BOOL WINAPI X76F640_AckPolling( // 查询X76F640应答 (包括:输出起始位,输出一字节命令数据,检查应答是否有效) - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答 - mBuffer[ 3 ] = 0xF0; // 应答查询操作的命令码 - mBuffer[ 4 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 5; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_CheckPasswd( // 发出操作命令并检查指定的密码 (包括:输出起始位,输出9字节数据(1命令+8密码),查询应答,输出2字节地址) - ULONG iIndex, // 指定CH341设备序号 - ULONG iCommand, // 操作命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,提供8字节的密码数据 - ULONG iAddress ) // 指定操作地址或者密码后的2字节数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG i, mLength; - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 9 ); // 输出数据,位5-位0为长度,9字节 - mBuffer[ i++ ] = (UCHAR)iCommand; // 操作命令码 - memcpy( &mBuffer[ i ], iPasswdBuf, 8 ); // 8字节密码数据 - i += 8; - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_MS | 10 ); // 以亳秒为单位延时,位3-位0为延时值,延时10毫秒 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = i; - if ( CH341WriteData( iIndex, mBuffer, &mLength ) ) { // 写出数据块 - if ( X76F640_AckPolling( iIndex ) ) { // 查询应答有效 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 2 ); // 输出数据,位5-位0为长度 - mBuffer[ i++ ] = (UCHAR)( iAddress & 0x00FF ); // 地址低8位 - mBuffer[ i++ ] = (UCHAR)( ( iAddress >> 8 ) & 0x00FF ); // 地址高8位 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = i; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 - } - else IIC_IssueStop( iIndex ); // 应答无效 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_WriteWithPasswd( // 写X76F640的块,使用指定的密码 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteCommand, // 块写命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,放置8字节的密码数据 - ULONG iAddress, // 指定操作地址 - ULONG iOutLength, // 准备写出的数据字节数,单次必须小于32字节(1个扇区) - PVOID iOutBuffer ) // 指向一个缓冲区,放置准备写出的数据 -{ - UCHAR mBuffer[ mDEFAULT_BUFFER_LEN ]; - ULONG i, mLength; - if ( iOutLength == 0 || iOutLength > 32 ) return( FALSE ); - if ( X76F640_CheckPasswd( iIndex, iWriteCommand, iPasswdBuf, iAddress ) ) { // 发出命令及密码检查通过 - if ( iOutLength > ( mCH341_PACKET_LENGTH - 1 - 1 - 1 - 1 - 1 ) ) { // 去掉前2字节后3字节,一个包不够用 - mLength = iOutLength - ( mCH341_PACKET_LENGTH - 1 - 1 - 1 - 1 - 1); // 多出的长度 - iOutLength -= mLength; // 第1个包的数据长度 - } - else mLength = 0; // 1个包就够用了 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | iOutLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[ i ], iOutBuffer, iOutLength ); // 数据 - i += iOutLength; - if ( mLength ) { // 第2包 - mBuffer[ i ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - i += mCH341_PACKET_LENGTH - i % mCH341_PACKET_LENGTH; // 跳过当前包剩余部分 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 第2个包的首字节仍然是命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | mLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[ i ], (PUCHAR)iOutBuffer + iOutLength, mLength ); // 剩余数据 - i += mLength; - } - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_MS | 10 ); // 以亳秒为单位延时,位3-位0为延时值,延时10毫秒 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - return( CH341WriteData( iIndex, mBuffer, &i ) ); // 写出数据块 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_ReadWithPasswd( // 读X76F640的块,使用指定的密码 (包括:输出起始位,输出9字节数据(1命令+8密码),查询应答,输出2字节地址,读入数据块) - ULONG iIndex, // 指定CH341设备序号 - ULONG iReadCommand, // 块读命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,放置8字节的密码数据 - ULONG iAddress, // 指定操作地址 - ULONG iInLength, // 准备读取的数据字节数,单次必须小于512字节 ( 每包32 * 16个包 = 512字节 ) - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mDEFAULT_BUFFER_LEN ]; - ULONG i, mLength, mInLen; - if ( iInLength == 0 || iInLength > ( 16 * mCH341_PACKET_LENGTH ) ) return( FALSE ); - if ( X76F640_CheckPasswd( iIndex, iReadCommand, iPasswdBuf, iAddress ) ) { // 发出命令及密码检查通过 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - for ( mInLen = 1; mInLen < iInLength; ) { - mLength = iInLength - mInLen >= mCH341A_CMD_I2C_STM_MAX ? mCH341A_CMD_I2C_STM_MAX : iInLength - mInLen; // 本次输入有效数据长度 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | mLength ); // 输入数据,位5-位0为长度 - mInLen += mLength; - if ( mLength >= mCH341A_CMD_I2C_STM_MAX ) { // 当前包将满 - mBuffer[ i ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - i += mCH341_PACKET_LENGTH - i % mCH341_PACKET_LENGTH; // 跳过当前包剩余部分 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 新包的命令码 - } - } - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_IN; // 输入最后一个字节数据,只接收一个字节并发送无应答 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 0; - if ( CH341WriteRead( iIndex, i, mBuffer, mCH341A_CMD_I2C_STM_MAX, ( iInLength + mCH341A_CMD_I2C_STM_MAX - 1 ) / mCH341A_CMD_I2C_STM_MAX, &mLength, oInBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mLength == iInLength ) return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作准双向I/O扩展PCF8574 */ - -BOOL WINAPI PCF8574_WriteIO( // 输出PCF8574的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iOutByte ) // 准备写出的I/O数据 -{ // 可以直接用CH341StreamI2C( iIndex, 2, mBuffer, 0, NULL )实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 2 ); // 输出数据,位5-位0为长度,2字节 - mBuffer[ 3 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 4 ] = (UCHAR)iOutByte; // I/O数据 - mBuffer[ 5 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 6 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 7; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI PCF8574_ReadIO( // 输入PCF8574的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的I/O数据 -{ // 可以直接用CH341StreamI2C( iIndex, 1, mBuffer, 1, oInByte )实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 1 ); // 输出数据,位5-位0为长度,1字节 - mBuffer[ 3 ] = (UCHAR)( iDeviceAddr | 0x01 ); // 设备地址,读操作 - mBuffer[ 4 ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | 1 ); // 输入数据,位5-位0为长度,1字节 - mBuffer[ 5 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 6 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 7; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen ) { - *oInByte = mBuffer[ mInLen - 1 ]; // 返回的数据 - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作双向I/O扩展PCA9554 */ - -BOOL WINAPI PCA9554_SetIO( // 设置PCA9554的I/O方向 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iSetByte ) // 方向数据 -{ // 也可以用CH341WriteI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 1 ] = 0x03; - mBuffer[ 2 ] = (UCHAR)iSetByte; // I/O方向数据 - return( CH341StreamI2C( iIndex, 3, mBuffer, 0, NULL ) ); // 处理I2C数据流 -} - -BOOL WINAPI PCA9554_WriteIO( // 输出PCA9554的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iOutByte ) // 准备写出的I/O数据 -{ // 也可以用CH341WriteI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 1 ] = 0x01; - mBuffer[ 2 ] = (UCHAR)iOutByte; // I/O数据 - return( CH341StreamI2C( iIndex, 3, mBuffer, 0, NULL ) ); // 处理I2C数据流 -} - -BOOL WINAPI PCA9554_ReadIO( // 输入PCA9554的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的I/O数据 -{ // 也可以用CH341ReadI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,CH341StreamI2C自动处理读操作 - mBuffer[ 1 ] = 0x00; - return( CH341StreamI2C( iIndex, 2, mBuffer, 1, oInByte ) ); // 处理I2C数据流 -} - -/* ********************************************************************************************** */ -/* 用EPP或者MEM并口进行多位输出或者多位输入,模拟只读或者只写的SPI时序 */ - -/* 下面是用EPP并口CH341EppWriteData模拟只是进行输出的SPI时序,参考下图波形(选择等宽的中文字体时才能看出) - ___ ___ - WR# |_________________________________________________________| SPI_CS - ______ ___ ___ ___ ___ ___ ___ ___ ______ - DS# |__| |__| |__| |__| |__| |__| |__| |__| SPI_CLK - ____ ______ ______ ______ ____ - D0 |______| | |______| |______|______|______| SPI_DOUT0 - ____ ______ ______ ______ ______ ______ ____ - D1 | |______| | | |______| |______| SPI_DOUT1 - ____ ______ ______ ____ - D5 |______|______|______| |______|______|______| | SPI_DOUT5 - - 如果用CH341MemWriteAddr0代替CH341EppWriteData,那么波形如下 - ___ ___ - ADDR |_________________________________________________________| SPI_CS - ______ ___ ___ ___ ___ ___ ___ ___ ______ - WR# |__| |__| |__| |__| |__| |__| |__| |__| SPI_CLK - - 相应的源程序如下 */ - -BOOL WINAPI Exam_EppSerialOut( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[256]; - ULONG mLength; - mBuffer[0]=0x02; - mBuffer[1]=0x01; - mBuffer[2]=0x03; - mBuffer[3]=0x22; - mBuffer[4]=0x03; - mBuffer[5]=0x00; - mBuffer[6]=0x02; - mBuffer[7]=0x20; - mLength = 8; /* 如果多于31个那么在WR#引脚的低电平中间将出现高电平脉冲 */ - return( CH341EppWriteData( iIndex, mBuffer, &mLength ) ); -} - -/* 下面是用MEM并口CH341MemReadAddr0模拟只是进行输入的SPI时序,参考下图波形(选择等宽的中文字体时才能看出) - ___ ___ - ADDR |________________________________________________________________| SPI_CS - _____ __ __ __ __ __ __ __ _____ - RD# |____| |____| |____| |____| |____| |____| |____| |____| SPI_CLK - ______ ____ ____ ____ ____ ____ ____ ____ ______ - D0/in |IN| |IN| |IN| |IN| |IN| |IN| |IN| |IN| SPI_DIN0 - ______ ____ ____ ____ ____ ____ ____ ____ ______ - D7/in |IN| |IN| |IN| |IN| |IN| |IN| |IN| |IN| SPI_DIN7 - - 如果用CH341EppReadData代替CH341MemReadAddr0,那么波形如下 - _______________________________________________________________________ - WR# - _____ __ __ __ __ __ __ __ _____ - DS# |____| |____| |____| |____| |____| |____| |____| |____| SPI_CLK - - 相应的源程序如下 */ - -BOOL WINAPI Exam_MemSerialIn( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[256]; - ULONG mLength, i; - mLength = 8; /* 如果多于31个那么在ADDR引脚的低电平中间将出现高电平脉冲 */ - if ( CH341MemReadAddr0( iIndex, mBuffer, &mLength ) == FALSE ) return( FALSE ); - for ( i = 0; i < mLength; i ++ ) { -/* printf( "D0 is %d, D1 is %d, D7 is %d\n", mBuffer[i]&1, mBuffer[i]>>1&1, mBuffer[i]>>7&1 );*/ - } - return( TRUE ); -} - -/* ********************************************************************************************** */ -/* 用UIO通用I/O位流命令实现自定义的同步串行接口 */ - -/* UIO方式共可以使用8个I/O引脚D7-D0,最多可以8个输入或者6个输出 - 上位机以字节流控制CH341对最终位流进行输入和输出,有4种基本操作和1个结束操作: -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - 例子:操作10位ADC芯片TLC1549,其时序为非标准 - 连线: CH341_D0 <-> TLC1549_CS, CH341_D1 <-> TLC1549_IO_CLK, CH341_D7 <-> TLC1549_DOUT - 下面是用UIO通用I/O位流命令实现的任意波形,参考下图波形(选择等宽的中文字体时才能看出) - ______ ____________ - D0/out |______________________________________________________________________| |_________ TLC1549_CS# - ____ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Delay 24uS ___ - D1/out |___| 1 |__| 2 |__| 3 |__| 4 |__| 5 |__| 6 |__| 7 |__| 8 |__| 9 |__| 10|________________| 1 |__| TLC1549_I/O_CLOCK - - D7/in ------| A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |__/-----------| B9 | B8 TLC1549_DATA_OUT - - 相应的源程序如下 */ - -BOOL WINAPI TLC1549_ReadADC( // 读取TLC1549的ADC结果 - ULONG iIndex, // 指定CH341设备序号 - PULONG oLastADC ) // 指向一个双字单元,返回读出的上次ADC的结果 -{ -#define TLC1549_MAX_BIT 10 // 10位ADC - UCHAR mBuffer[ mCH341_PACKET_LENGTH * 2 ]; - ULONG i, j, mLength; - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_UIO_STREAM; // 命令码 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x01; // default status: D0=1, D1=0, CS#=HIGH, I/O_CLOCK=LOW - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_DIR | 0x03; // D0 output, D1 output, other input - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D0=0, CS#=LOW - for ( j = 0; j < 8; j ++ ) { // input 8 bit - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x02; // D1=1, I/O_CLOCK=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_IN; // input 1 byte from D7-D0, input A9,A8,A7,A6,A5,A4,A3,A2 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D1=0, I/O_CLOCK=LOW - } - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_END; // 当前命令包提前结束,因为一个包放不下,所以分成两个包 - i = mCH341_PACKET_LENGTH; - mBuffer[ i++ ] = mCH341A_CMD_UIO_STREAM; // 命令码 - for ( j = 0; j < TLC1549_MAX_BIT - 2; j ++ ) { // input 2 bit - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x02; // D1=1, I/O_CLOCK=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_IN; // input 1 byte from D7-D0, input A1,A0 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D1=0, I/O_CLOCK=LOW - } - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x01; // D0=1, CS#=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_US | 24; // delay 24uS,实际上这个延时完全不需要,因为USB传输每1mS一次,下次传输是在1mS之后 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_END; // 当前命令包提前结束 - mLength = 0; - j = CH341WriteRead( iIndex, i, mBuffer, 8, 2, &mLength, mBuffer ); // 执行数据流命令,先输出再输入,执行两次输入,每次最多8字节 - *oLastADC = 0; - if ( j ) { - if ( mLength == TLC1549_MAX_BIT ) { // 输入长度正确 - for ( i = 0; i < TLC1549_MAX_BIT; i ++ ) { // 将每字节的位7合并为10位ADC结果数据 - *oLastADC = ( *oLastADC << 1 ) | ( mBuffer[ i ] >> 7 ); // 位7移到位0 - } - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作4线接口SPI存储器25F512、25F020 */ -/* 连线: CH341_DCK/D3 <-> 25FXX_SCK, CH341_DOUT/D5 <-> 25FXX_SI, CH341_DIN/D7 <-> 25FXX_SO, CH341_D0 <-> 25FXX_CS# */ - -BOOL WINAPI AT25F512_ReadBlock( // 读AT25F512的块 (包括:输出器件读命令码,输出3字节共24位地址,读入数据块) - ULONG iIndex, // 指定CH341设备序号 - ULONG iAddress, // 指定操作地址 - ULONG iInLength, // 准备读取的数据字节数,单次建议小于1024字节 - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - static BOOL mTheFirst = TRUE; - if ( mTheFirst ) { // 首次进入时需要设置I/O方向 - if ( CH341SetStream( iIndex, 0x81 ) == FALSE ) return( FALSE ); // 设置串口流模式:SPI为单入单出,SPI字节中的位顺序是高位在前 - mTheFirst = FALSE; - } - if ( iInLength == 0 || iInLength > mDEFAULT_BUFFER_LEN ) return( FALSE ); - *( (PUCHAR)oInBuffer + 0 ) = 0x03; // 读存储器命令码,注意各器件不一定命令码相同 - *( (PUCHAR)oInBuffer + 1 ) = (UCHAR)( iAddress >> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (PUCHAR)oInBuffer + 2 ) = (UCHAR)( iAddress >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (PUCHAR)oInBuffer + 3 ) = (UCHAR)( iAddress & 0xFF ); // 指定读操作的地址A7-A0 -// memset( (PUCHAR)oInBuffer + 4, 0xFF, iInLength ); // 对于有些SPI器件,可能要求在读出数据时SI输入保持为1或者0,那么就要在此设置 - if ( CH341StreamSPI4( iIndex, 0x80, iInLength + 4, oInBuffer ) == FALSE ) return( FALSE ); // 处理4线接口SPI数据流,自动片选为D0 -/* 对于25F512的读操作,要先输出4个字节命令及地址,再输入若干个字节数据,调用API和API返回时都是指总长度,所以返回数据的前4个字节是在输出命令及地址时输入的,应该丢弃 */ - memmove( oInBuffer, (PUCHAR)oInBuffer + 4, iInLength ); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作类似SPI的非标准串行时序的8位ADC芯片ADC0831、TLC0831 */ -/* 连线: CH341_DCK/D3 <-> ADC0831_CLK, CH341_DIN/D7 <-> ADC0831_DO, CH341_D2 <-> ADC0831_CS# */ - -BOOL WINAPI ADC0831_ReadADC( // 读取ADC结果 - ULONG iIndex, // 指定CH341设备序号 - PUCHAR oADC ) // 指向一个字节单元,返回读出的ADC结果 -{ - static BOOL mTheFirst = TRUE; - UCHAR mBuffer[ 256 ]; - ULONG i; - if ( mTheFirst ) { // 首次进入时需要设置I/O方向 - if ( CH341Set_D5_D0( iIndex, 0x0C, 0x04 ) == FALSE ) return( FALSE ); // 设置CH341的D5-D0引脚的I/O方向,DCK/D3输出默认为0,D2输出默认为1 - mTheFirst = FALSE; - } - for ( i = 0; i < 12; i ++ ) { - mBuffer[ i ] = 0x00; // CS=0 for 1st bit to 12th bit - } - mBuffer[ i++ ] = 0x04; // CS=1 for 13th bit - if ( CH341BitStreamSPI( iIndex, i, mBuffer ) == FALSE ) return( FALSE ); // 处理SPI位数据流,输入输出共13位,实际未全部用到 - *oADC = 0; - for ( i = 0; i < 8; i ++ ) { // 将每字节的位7合并为8位ADC结果数据 - *oADC = ( *oADC << 1 ) | ( mBuffer[ i + 1 ] >> 7 ); // 位7移到位0,跳过首字节无效数据,第2个时钟的输入数据才是MSB位 - } - return( TRUE ); -} - -/* ********************************************************************************************** */ - -main( ) { - return(1); -} \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" deleted file mode 100644 index 701d167..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341PT.BAS" +++ /dev/null @@ -1,55 +0,0 @@ -Attribute VB_Name = "CH341PTDLL" -' 2005.07.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http:'www.winchiphead.com ** -'**************************************** -'** DLL for USB interface chip CH341 ** -'** C, VC5.0 ** -'**************************************** -' -' USB总线接口芯片CH341端口应用层接口库 V1.0 -' 南京沁恒电子有限公司 作者: W.ch 2005.07 -' CH341-Port-DLL V1.0 -' 运行环境: Windows 98/ME, Windows 2000/XP -' support USB chip: CH341, CH341A -' USB => Serial, Parallel -' - - - -Public Const MAX_DEVICE_PATH_SIZE = 128 ' 设备名称的最大字符数 -Public Const MAX_DEVICE_ID_SIZE = 64 ' 设备ID的最大字符数 - -Declare Function CH341PtGetVersion Lib "CH341PT.DLL" () As Long ' 获得DLL版本号,返回版本号 - -Declare Function CH341PtHandleIsCH341 Lib "CH341PT.DLL" (ByVal iPortHandle As Long) As Boolean ' 指定已经打开的端口句柄 -' CH341PtHandleIsCH341 检查已经打开的端口是否为CH341端口 -' iPortHandle ' 指定已经打开的端口句柄 - -Declare Function CH341PtNameIsCH341 Lib "CH341PT.DLL" (ByVal iPortName As String) As Boolean -' CH341PtNameIsCH341 检查指定名称的端口是否为CH341端口 -' iPortName 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - -' 端口设备事件通知回调程序 -' sub mPCH341PT_NOTIFY_ROUTINE (byval iDevIndexAndEvent as long) ' 端口设备序号和事件及当前状态(参考下行说明) -' iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - -Declare Function CH341PtSetDevNotify Lib "CH341PT.DLL" (ByVal iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean ' 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 -' CH341PtSetDevNotify 设定端口设备事件通知程序 -' iDeviceID, 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" -' iNotifyRoutine 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - -'/* 即插即用设备的应用程序编程参考 -'1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -'2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -'3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -'4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, -' 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, -' 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -'5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -'6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -'*/ - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" deleted file mode 100644 index cf32851..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/CH341SPMonitor.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" deleted file mode 100644 index 4517112..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frm" +++ /dev/null @@ -1,194 +0,0 @@ -VERSION 5.00 -Begin VB.Form Form1 - Appearance = 0 'Flat - BorderStyle = 3 'Fixed Dialog - Caption = "USB串口信息获取器(http://usendz.taobao.com)" - ClientHeight = 4485 - ClientLeft = 45 - ClientTop = 435 - ClientWidth = 6420 - LinkTopic = "Form1" - MaxButton = 0 'False - MinButton = 0 'False - ScaleHeight = 4485 - ScaleWidth = 6420 - ShowInTaskbar = 0 'False - StartUpPosition = 3 '窗口缺省 - Begin VB.CommandButton notify - Caption = "devnotify" - Height = 240 - Left = 4080 - TabIndex = 9 - Top = 3000 - Visible = 0 'False - Width = 1410 - End - Begin VB.CommandButton clearshow - Caption = "清除显示" - Height = 345 - Left = 4080 - TabIndex = 8 - Top = 3480 - Width = 2175 - End - Begin VB.Frame Frame2 - Caption = "插拔监视" - Height = 1290 - Left = 4080 - TabIndex = 5 - Top = 1680 - Width = 2130 - Begin VB.CommandButton stopmonitor - Caption = "停止监视USB串口" - Height = 360 - Left = 165 - TabIndex = 7 - Top = 750 - Width = 1800 - End - Begin VB.CommandButton beginmonitor - Caption = "开始监视USB串口" - Height = 360 - Left = 180 - TabIndex = 6 - Top = 300 - Width = 1800 - End - End - Begin VB.Frame Frame1 - Caption = "查找USB串口" - Height = 1290 - Left = 4080 - TabIndex = 2 - Top = 240 - Width = 2130 - Begin VB.CommandButton PtNameIsCH341 - Caption = "串口名称查找" - Height = 360 - Left = 180 - TabIndex = 4 - Top = 765 - Width = 1800 - End - Begin VB.CommandButton PtHandleIsCH341 - Caption = "串口句柄查找" - Height = 360 - Left = 180 - TabIndex = 3 - Top = 315 - Width = 1800 - End - End - Begin VB.ListBox 点击右边按钮获取USB串口信息 - Appearance = 0 'Flat - BeginProperty Font - Name = "微软雅黑" - Size = 9 - Charset = 134 - Weight = 700 - Underline = 0 'False - Italic = 0 'False - Strikethrough = 0 'False - EndProperty - Height = 3600 - ItemData = "Form1.frx":0000 - Left = 120 - List = "Form1.frx":0007 - TabIndex = 1 - Top = 360 - Width = 3840 - End - Begin VB.Label usenlabel - Caption = "多款优胜USB串口设备适用" - Height = 255 - Left = 4080 - TabIndex = 10 - Top = 4200 - Width = 2175 - End - Begin VB.Label CH341PTver - Caption = "CH341PT.DLL Ver:??" - Height = 180 - Left = 180 - TabIndex = 0 - Top = 4200 - Width = 1620 - End -End -Attribute VB_Name = "Form1" -Attribute VB_GlobalNameSpace = False -Attribute VB_Creatable = False -Attribute VB_PredeclaredId = True -Attribute VB_Exposed = False -Option Explicit - -Private Sub clearshow_Click() -点击右边按钮获取USB串口信息.Clear -End Sub - -Private Sub Form_Load() -CH341PTver.Caption = "CH341PT.DLL Ver:" & Hex(CH341PtGetVersion()) -End Sub - -Private Sub notify_KeyUp(KeyCode As Integer, Shift As Integer) - Call CH341SerNotifyFunc(KeyCode) -End Sub - -Private Sub PtNameIsCH341_Click() - Dim porthandle As Long - Dim i As Byte - Dim j As Byte - Dim portname As String - Dim fullportname As String - -点击右边按钮获取USB串口信息.AddItem "通过名称找到USB串口为:" -For j = 1 To 21 - portname = "COM" + Trim(Str(j)) + Trim(Chr(0)) '设备名 - fullportname = "\\.\" & portname '完整的设备名 - If (CH341PtNameIsCH341(fullportname) <> False) Then - 点击右边按钮获取USB串口信息.AddItem portname - End If -Next j -End Sub - -Private Sub PtHandleIsCH341_Click() - '在完整的串口名为"////.//COMxx" - '通过串口特征数据来识别CH341串口 - Dim porthandle As Long - Dim i As Byte - Dim j As Byte - Dim portname As String - Dim fullportname As String - 点击右边按钮获取USB串口信息.AddItem "通过句柄找到USB串口为:" - For j = 1 To 21 - portname = "COM" + Trim(Str(j)) + Trim(Chr(0)) '设备名 - fullportname = "\\.\" & portname '完整的设备名 - porthandle = CreateFile(fullportname, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, vbNullString, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0&) - If (porthandle <> INVALID_HANDLE_VALUE) Then - If (CH341PtHandleIsCH341(porthandle) <> False) Then - 点击右边按钮获取USB串口信息.AddItem portname - End If - CloseHandle (porthandle) - End If - Next j -End Sub - -Private Sub beginmonitor_Click() -If (CH341PtSetDevNotify(vbNullString, AddressOf CH341PT_NOTIFY_ROUTINE) <> False) Then - 点击右边按钮获取USB串口信息.AddItem "开始监视USB串口插拔" -Else - 点击右边按钮获取USB串口信息.AddItem "设置USB串口监视失败" -End If -End Sub - -Private Sub stopmonitor_Click() -If (CH341PtSetDevNotify(vbNullString, 0&) <> False) Then - 点击右边按钮获取USB串口信息.AddItem "停止监视USB串口插拔" - ch341sername = "" -Else - 点击右边按钮获取USB串口信息.AddItem "停止监视USB串口插拔失败" -End If -End Sub - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" deleted file mode 100644 index 1766ac2..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Form1.frx" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" deleted file mode 100644 index ffd8897..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/IDEN_CH341Ser.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" deleted file mode 100644 index 2de1d8b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/MSSCCPRJ.SCC" +++ /dev/null @@ -1,5 +0,0 @@ -[SCC] -SCC=This is a source code control file -[工程1.vbp] -SCC_Project_Name=this project is not under source code control -SCC_Aux_Path= diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" deleted file mode 100644 index 0c1ea5d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/Module1.bas" +++ /dev/null @@ -1,50 +0,0 @@ -Attribute VB_Name = "Module1" -Option Explicit - -Public ch341sername As String '存储监测到的已插入的串口名 - -Public Const WM_KEYUP = &H101 -Public Const FILE_FLAG_OVERLAPPED = &H40000000 -Public Const GENERIC_READ = &H80000000 -Public Const GENERIC_WRITE = &H40000000 -Public Const FILE_SHARE_READ = &H1 -Public Const FILE_SHARE_WRITE = &H2 -Public Const OPEN_EXISTING = 3 -Public Const INVALID_HANDLE_VALUE = -1 - -Public Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As String, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long -Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long -Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long - - -Public Sub CH341PT_NOTIFY_ROUTINE(ByVal iDevIndexAndEvent As Long) -'在中断回调函数中,不能对系统资源操作过多.通过窗体WM_KEYUP事件来模拟插拔事件 - PostMessage Form1.notify.hwnd, WM_KEYUP, iDevIndexAndEvent, 0 -End Sub - -Public Sub CH341SerNotifyFunc(ByVal iDevIndexAndEvent As Long) -Dim fullportname As String -Dim tem As String -Dim portname As String - -If (iDevIndexAndEvent > 0) Then 'USB串口已插上 - portname = "COM" + Trim(Str(iDevIndexAndEvent)) '设备名 - fullportname = "\\.\" & portname '完整的设备名 - If (CH341PtNameIsCH341(fullportname) <> False) Then - ch341sername = portname '作为设备拔出时CH341串口判别的依据 - Form1.点击右边按钮获取USB串口信息.AddItem "CH341串口 " & ch341sername & "已插入" - Else - Form1.点击右边按钮获取USB串口信息.AddItem "串口 " & portname & "已插入" - End If -ElseIf (iDevIndexAndEvent < 0) Then 'USB串口已拔出 - portname = "COM" + Trim(Str(-iDevIndexAndEvent)) '中断传来的端口号为负值 - If (ch341sername = portname) Then '与是先前监测到的插入的341串口名比较 - Form1.点击右边按钮获取USB串口信息.AddItem "CH341串口 " & portname & "已拔出" - ch341sername = "" - Else - Form1.点击右边按钮获取USB串口信息.AddItem "串口 " & portname & "已拔出" - End If -End If - -End Sub - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" deleted file mode 100644 index 3638caa..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/SerCapture4CH341.rar" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" deleted file mode 100644 index 5da3517..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbp" +++ /dev/null @@ -1,41 +0,0 @@ -Type=Exe -Form=Form1.frm -Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\system32\stdole2.tlb#OLE Automation -Module=Module1; Module1.bas -Module=CH341PTDLL; CH341PT.BAS -IconForm="Form1" -Startup="Form1" -HelpFile="" -Title="SerPortCap" -ExeName32="CH341Serial.exe" -Command32="" -Name="工程1" -HelpContextID="0" -CompatibleMode="0" -MajorVer=1 -MinorVer=0 -RevisionVer=1 -AutoIncrementVer=0 -ServerSupportFiles=0 -VersionCompanyName="http://usendz.taobao.com" -VersionFileDescription="适用于优胜USB串口模块YS-CH340T\YS-CH341T\YSUMA01-341A\HL-340" -VersionProductName="USB串口信息获取器" -CompilationType=0 -OptimizationType=0 -FavorPentiumPro(tm)=0 -CodeViewDebugInfo=0 -NoAliasing=0 -BoundsCheck=0 -OverflowCheck=0 -FlPointCheck=0 -FDIVCheck=0 -UnroundedFP=0 -StartMode=0 -Unattended=0 -Retained=0 -ThreadPerObject=0 -MaxNumberOfThreads=1 -DebugStartupOption=0 - -[MS Transaction Server] -AutoRefresh=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" deleted file mode 100644 index 8186356..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VB/\345\267\245\347\250\2131.vbw" +++ /dev/null @@ -1,3 +0,0 @@ -Form1 = 102, 102, 843, 625, C, 182, 137, 923, 660, C -Module1 = 44, 58, 649, 515, C -CH341PTDLL = 102, 127, 1065, 649, C diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" deleted file mode 100644 index 84447c6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.H" +++ /dev/null @@ -1,67 +0,0 @@ -// 2005.07.28 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341端口应用层接口库 V1.0 -// 南京沁恒电子有限公司 作者: W.ch 2005.07 -// CH341-Port-DLL V1.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Serial, Parallel -// - -#ifndef _CH341_PORT_H -#define _CH341_PORT_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -ULONG WINAPI CH341PtGetVersion( ); // 获得DLL版本号,返回版本号 - - -BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 - HANDLE iPortHandle ); // 指定已经打开的端口句柄 - - -BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 - PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - - -typedef VOID ( CALLBACK * mPCH341PT_NOTIFY_ROUTINE ) ( // 端口设备事件通知回调程序 - LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明) -// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - - -BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序 - PCHAR iDeviceID, // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" - mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -/* 即插即用设备的应用程序编程参考 -1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, - 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, - 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -*/ - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_PORT_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" deleted file mode 100644 index 9788f23..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/CH341PT.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" deleted file mode 100644 index 4bd1950..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/Release/IDEN_CH341Ser.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" deleted file mode 100644 index 01cd8ab..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.aps" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" deleted file mode 100644 index c871ff4..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.cpp" +++ /dev/null @@ -1,150 +0,0 @@ -// SerchCH341Port.cpp : Defines the entry point for the application. -// - -#include "stdafx.h" -#include "resource.h" -#include -#include "CH341PT.H" -#pragma comment (lib,"CH341PT") - - - -char ch341sername[10]=""; //存储监测到的已插入的串口名 -HANDLE serhandle=NULL; -HWND afxwndhwnd; -// Foward declarations of functions included in this code module: -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -PCHAR searchch341port(PLONG count); -void CH341SerNotifyFunc(LONG iDevIndexAndEvent); - -void CALLBACK CH341PT_NOTIFY_ROUTINE(LONG iDevIndexAndEvent); - -int APIENTRY WinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPSTR lpCmdLine, - int nCmdShow) -{ - return DialogBox(hInstance, (LPCTSTR)IDD_main, 0, (DLGPROC)WndProc); -} - -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - int wmId, wmEvent; - CHAR tem[100]=""; - LONG index=0,j=0; - PCHAR str=NULL; - UCHAR portname[10]=""; - UCHAR fullportname[10]=""; - afxwndhwnd=hWnd; - LONG iDevIndexAndEvent; - switch (message) - { - case WM_INITDIALOG: - ltoa(CH341PtGetVersion(),tem,10); - SetDlgItemText(hWnd,IDC_dllver,tem); - break; - case WM_COMMAND: - wmId = LOWORD(wParam); - wmEvent = HIWORD(wParam); - // Parse the menu selections: - switch (wmId) - { - //串口全名格式为"////.//COMxx",大于com9的串口号必须要用串口全名,否则打不开" - case IDC_CH341PtHandleIsCH341: //通过串口特征数据来识别CH341串口 - HANDLE porthandle; - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)"通过名称找到CH341串口为"); - for (j=1;j<21;j++) { - sprintf((CHAR *)portname,"COM%d\0",j); //设备名 - sprintf((CHAR *)fullportname,"\\\\.\\%s\0",portname); //完整的设备名 - porthandle=CreateFile((CHAR *)fullportname, - GENERIC_READ | GENERIC_WRITE, // 打开设备,支持重叠操作 - FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL ); - if ( porthandle != INVALID_HANDLE_VALUE ){ - if(CH341PtHandleIsCH341(porthandle)) - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)portname); - CloseHandle(porthandle); - } - } - break; - case IDC_CH341PtNameIsCH341: - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)"通过句柄找到CH341串口为:"); - for (j=1;j<21;j++) { - sprintf((CHAR *)portname,"COM%d\0",j); //设备名 - sprintf((CHAR *)fullportname,"\\\\.\\%s\0",portname); //完整的设备名 - if(CH341PtNameIsCH341(fullportname)){ - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)portname); - } - } - break; - - case IDC_beginmonitor: - if(CH341PtSetDevNotify(NULL,CH341PT_NOTIFY_ROUTINE)) - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)"开始监视CH341串口插拔"); - else - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)"设置CH341串口监视失败"); - break; - case IDC_stopmonitor: - if(CH341PtSetDevNotify(NULL,NULL)) - SendDlgItemMessage(hWnd,IDC_show,LB_ADDSTRING,0,(LONG)"停止监视CH341串口插拔"); - break; - case IDC_clear: - SendDlgItemMessage(hWnd,IDC_show,LB_RESETCONTENT,0,0); - break; - case WM_DESTROY: - CH341PtSetDevNotify(NULL,NULL); //防止在关闭前没有取消串口插拔监视 - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - break; - case WM_KEYUP: //模拟设备插拔事件 - iDevIndexAndEvent=wParam; //从中断程序中传来的串口号 - CH341SerNotifyFunc(iDevIndexAndEvent); //调用插拔事件处理程序 - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - } - return 0; -} - - -void CALLBACK CH341PT_NOTIFY_ROUTINE(LONG iDevIndexAndEvent) -{ - //在中断回调函数中,不能对系统资源操作过多.通过窗体WM_KEYUP事件来模拟插拔事件 - PostMessage(afxwndhwnd,WM_KEYUP,iDevIndexAndEvent,0); -} - -void CH341SerNotifyFunc(LONG iDevIndexAndEvent) { - char fullportname[10]=""; - char tem[50]=""; - char portname[10]=""; - if(iDevIndexAndEvent>0){ //ch341串口已插上 - sprintf(portname,"COM%d\0",iDevIndexAndEvent); //端口名 - sprintf(fullportname,"\\\\.\\%s",portname); //完整的端口号(大于COM9的要用此名) - if(CH341PtNameIsCH341((UCHAR *)fullportname)){ - strcpy(ch341sername,portname); //作为设备拔出时CH341串口判别的依据 - sprintf(tem,"CH341串口 %s 已插入",ch341sername); - SendDlgItemMessage(afxwndhwnd,IDC_show,LB_ADDSTRING,0,(LONG)tem); - } - else{ - sprintf(tem,"串口 %s 已插入",portname); - SendDlgItemMessage(afxwndhwnd,IDC_show,LB_ADDSTRING,0,(LONG)tem); - } - } - else if(iDevIndexAndEvent<0){ //ch341串口已拔出 - sprintf(portname,"COM%d\0",-iDevIndexAndEvent); //中断传来的端口号为负值 - if(!_tcscmp(ch341sername,portname)) {//与是先前监测到的插入的341串口名比较 - sprintf(tem,"CH341串口 %s 已拔出",portname); - SendDlgItemMessage(afxwndhwnd,IDC_show,LB_ADDSTRING,0,(LONG)tem); - strcpy(ch341sername,""); - } - else { - sprintf(tem,"串口 %s 已拔出",portname); - SendDlgItemMessage(afxwndhwnd,IDC_show,LB_ADDSTRING,0,(LONG)tem); - } - } - return; -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" deleted file mode 100644 index 4baccbf..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dep" +++ /dev/null @@ -1,14 +0,0 @@ -# Microsoft Developer Studio Generated Dependency File, included by SerchCH341Port.mak - -.\SerchCH341Port.cpp : \ - ".\CH341PT.H"\ - - -.\SerchCH341Port.rc : \ - ".\small.ico"\ - - -.\StdAfx.cpp : \ - ".\StdAfx.h"\ - "c:\program files\microsoft visual studio\vc98\include\basetsd.h"\ - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" deleted file mode 100644 index 1236698..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsp" +++ /dev/null @@ -1,139 +0,0 @@ -# Microsoft Developer Studio Project File - Name="SerchCH341Port" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=SerchCH341Port - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "SerchCH341Port.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SerchCH341Port.mak" CFG="SerchCH341Port - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SerchCH341Port - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "SerchCH341Port - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SerchCH341Port - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x804 /d "NDEBUG" -# ADD RSC /l 0x804 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 /out:"Release/IDEN_CH341Ser.exe" - -!ELSEIF "$(CFG)" == "SerchCH341Port - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /ZI /GZ /c -# ADD CPP /nologo /W3 /GX /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Yu"stdafx.h" /FD /ZI /GZ /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x804 /d "_DEBUG" -# ADD RSC /l 0x804 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Debug/Search & Monitor CH341Ser.exe" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "SerchCH341Port - Win32 Release" -# Name "SerchCH341Port - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\SerchCH341Port.cpp -# End Source File -# Begin Source File - -SOURCE=.\SerchCH341Port.rc -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.cpp -# ADD CPP /Yc"stdafx.h" -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\CH341PT.H -# End Source File -# Begin Source File - -SOURCE=.\resource.h -# End Source File -# Begin Source File - -SOURCE=.\SerchCH341Port.h -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.h -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\SerchCH341Port.ico -# End Source File -# Begin Source File - -SOURCE=.\small.ico -# End Source File -# End Group -# End Target -# End Project diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" deleted file mode 100644 index c6c0314..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.dsw" +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "SerchCH341Port"=".\SerchCH341Port.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" deleted file mode 100644 index e74e113..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.h" +++ /dev/null @@ -1,12 +0,0 @@ - -#if !defined(AFX_SERCHCH341PORT_H__86185495_957F_4392_B2A7_5414BBB9DAE0__INCLUDED_) -#define AFX_SERCHCH341PORT_H__86185495_957F_4392_B2A7_5414BBB9DAE0__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#include "resource.h" - - -#endif // !defined(AFX_SERCHCH341PORT_H__86185495_957F_4392_B2A7_5414BBB9DAE0__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" deleted file mode 100644 index eb4dddd..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.mak" +++ /dev/null @@ -1,197 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Based on SerchCH341Port.dsp -!IF "$(CFG)" == "" -CFG=SerchCH341Port - Win32 Debug -!MESSAGE No configuration specified. Defaulting to SerchCH341Port - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "SerchCH341Port - Win32 Release" && "$(CFG)" != "SerchCH341Port - Win32 Debug" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "SerchCH341Port.mak" CFG="SerchCH341Port - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "SerchCH341Port - Win32 Release" (based on "Win32 (x86) Application") -!MESSAGE "SerchCH341Port - Win32 Debug" (based on "Win32 (x86) Application") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF - -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "SerchCH341Port - Win32 Release" - -OUTDIR=.\Release -INTDIR=.\Release -# Begin Custom Macros -OutDir=.\Release -# End Custom Macros - -ALL : "$(OUTDIR)\Search & Monitor CH341Ser.exe" - - -CLEAN : - -@erase "$(INTDIR)\SerchCH341Port.obj" - -@erase "$(INTDIR)\SerchCH341Port.pch" - -@erase "$(INTDIR)\SerchCH341Port.res" - -@erase "$(INTDIR)\StdAfx.obj" - -@erase "$(INTDIR)\vc60.idb" - -@erase "$(OUTDIR)\Search & Monitor CH341Ser.exe" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\SerchCH341Port.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c -MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 -RSC_PROJ=/l 0x804 /fo"$(INTDIR)\SerchCH341Port.res" /d "NDEBUG" -BSC32=bscmake.exe -BSC32_FLAGS=/nologo /o"$(OUTDIR)\SerchCH341Port.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\Search & Monitor CH341Ser.pdb" /machine:I386 /out:"$(OUTDIR)\Search & Monitor CH341Ser.exe" -LINK32_OBJS= \ - "$(INTDIR)\SerchCH341Port.obj" \ - "$(INTDIR)\StdAfx.obj" \ - "$(INTDIR)\SerchCH341Port.res" - -"$(OUTDIR)\Search & Monitor CH341Ser.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "SerchCH341Port - Win32 Debug" - -OUTDIR=.\Debug -INTDIR=.\Debug -# Begin Custom Macros -OutDir=.\Debug -# End Custom Macros - -ALL : "$(OUTDIR)\Search & Monitor CH341Ser.exe" - - -CLEAN : - -@erase "$(INTDIR)\SerchCH341Port.obj" - -@erase "$(INTDIR)\SerchCH341Port.pch" - -@erase "$(INTDIR)\SerchCH341Port.res" - -@erase "$(INTDIR)\StdAfx.obj" - -@erase "$(INTDIR)\vc60.idb" - -@erase "$(INTDIR)\vc60.pdb" - -@erase "$(OUTDIR)\Search & Monitor CH341Ser.exe" - -@erase "$(OUTDIR)\Search & Monitor CH341Ser.ilk" - -@erase "$(OUTDIR)\Search & Monitor CH341Ser.pdb" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -CPP_PROJ=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\SerchCH341Port.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c -MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 -RSC_PROJ=/l 0x804 /fo"$(INTDIR)\SerchCH341Port.res" /d "_DEBUG" -BSC32=bscmake.exe -BSC32_FLAGS=/nologo /o"$(OUTDIR)\SerchCH341Port.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\Search & Monitor CH341Ser.pdb" /debug /machine:I386 /out:"$(OUTDIR)\Search & Monitor CH341Ser.exe" /pdbtype:sept -LINK32_OBJS= \ - "$(INTDIR)\SerchCH341Port.obj" \ - "$(INTDIR)\StdAfx.obj" \ - "$(INTDIR)\SerchCH341Port.res" - -"$(OUTDIR)\Search & Monitor CH341Ser.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ENDIF - -.c{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.obj:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.c{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cpp{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - -.cxx{$(INTDIR)}.sbr:: - $(CPP) @<< - $(CPP_PROJ) $< -<< - - -!IF "$(NO_EXTERNAL_DEPS)" != "1" -!IF EXISTS("SerchCH341Port.dep") -!INCLUDE "SerchCH341Port.dep" -!ELSE -!MESSAGE Warning: cannot find "SerchCH341Port.dep" -!ENDIF -!ENDIF - - -!IF "$(CFG)" == "SerchCH341Port - Win32 Release" || "$(CFG)" == "SerchCH341Port - Win32 Debug" -SOURCE=.\SerchCH341Port.cpp - -"$(INTDIR)\SerchCH341Port.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\SerchCH341Port.pch" - - -SOURCE=.\SerchCH341Port.rc - -"$(INTDIR)\SerchCH341Port.res" : $(SOURCE) "$(INTDIR)" - $(RSC) $(RSC_PROJ) $(SOURCE) - - -SOURCE=.\StdAfx.cpp - -!IF "$(CFG)" == "SerchCH341Port - Win32 Release" - -CPP_SWITCHES=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\SerchCH341Port.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c - -"$(INTDIR)\StdAfx.obj" "$(INTDIR)\SerchCH341Port.pch" : $(SOURCE) "$(INTDIR)" - $(CPP) @<< - $(CPP_SWITCHES) $(SOURCE) -<< - - -!ELSEIF "$(CFG)" == "SerchCH341Port - Win32 Debug" - -CPP_SWITCHES=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"$(INTDIR)\SerchCH341Port.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c - -"$(INTDIR)\StdAfx.obj" "$(INTDIR)\SerchCH341Port.pch" : $(SOURCE) "$(INTDIR)" - $(CPP) @<< - $(CPP_SWITCHES) $(SOURCE) -<< - - -!ENDIF - - -!ENDIF - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" deleted file mode 100644 index c4bd4f5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.ncb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" deleted file mode 100644 index 81d1507..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.opt" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" deleted file mode 100644 index b8d0d4d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.plg" +++ /dev/null @@ -1,37 +0,0 @@ ---------------------Configuration: SerchCH341Port - Win32 Release-------------------- -Begining build with project "E:\PROJECT\CH341\EVT\IDENTITY\VC\SerchCH341Port.dsp", at root. -Active configuration is Win32 (x86) Application (based on Win32 (x86) Application) - -Project's tools are: - "32-bit C/C++ Compiler for 80x86" with flags "/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Release/SerchCH341Port.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c " - "OLE Type Library Maker" with flags "/nologo /D "NDEBUG" /mktyplib203 /win32 " - "Win32 Resource Compiler" with flags "/l 0x804 /fo"Release/SerchCH341Port.res" /d "NDEBUG" " - "Browser Database Maker" with flags "/nologo /o"Release/SerchCH341Port.bsc" " - "COFF Linker for 80x86" with flags "kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/IDEN_CH341Ser.pdb" /machine:I386 /out:"Release/IDEN_CH341Ser.exe" " - "Custom Build" with flags "" - "" with flags "" - -Creating command line "rc.exe /l 0x804 /fo"Release/SerchCH341Port.res" /d "NDEBUG" "E:\PROJECT\CH341\EVT\IDENTITY\VC\SerchCH341Port.rc"" -Creating temp file "C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4D.tmp" with contents -Creating command line "cl.exe @C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4D.tmp" -Creating temp file "C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4E.tmp" with contents -Creating command line "cl.exe @C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4E.tmp" -Creating temp file "C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4F.tmp" with contents -Creating command line "link.exe @C:\DOCUME~1\ADMIN\LOCALS~1\Temp\RSP4F.tmp" -Compiling resources... -Compiling... -StdAfx.cpp -Compiling... -SerchCH341Port.cpp -Linking... - - - -IDEN_CH341Ser.exe - 0 error(s), 0 warning(s) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" deleted file mode 100644 index 45cda62..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/SerchCH341Port.rc" +++ /dev/null @@ -1,134 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#define APSTUDIO_HIDDEN_SYMBOLS -#include "windows.h" -#undef APSTUDIO_HIDDEN_SYMBOLS -#include "resource.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// Chinese (P.R.C.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) -#ifdef _WIN32 -LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED -#pragma code_page(936) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SMALL ICON DISCARDABLE "SMALL.ICO" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_main DIALOG DISCARDABLE 0, 0, 241, 160 -STYLE DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Search & Monitor CH341Ser Port" -FONT 10, "System" -BEGIN - PUSHBUTTON "串口名称查找",IDC_CH341PtHandleIsCH341,138,34,86,13 - LISTBOX IDC_show,16,22,110,109,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "串口名称查找",IDC_CH341PtNameIsCH341,137,51,86,13 - PUSHBUTTON "开始监视 CH341串口",IDC_beginmonitor,139,92,86,13 - PUSHBUTTON "停止监视 CH341串口",IDC_stopmonitor,139,111,86,13 - PUSHBUTTON "clear",IDC_clear,17,133,108,13 - LTEXT "??",IDC_dllver,82,11,10,8 - LTEXT "CH341PT.DLL Ver:",IDC_STATIC,17,11,60,8 - GROUPBOX "插拔监视",-1,132,81,97,51 - GROUPBOX "查找CH341串口",-1,132,22,97,48 -END - - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""windows.h""\r\n" - "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" - "#include ""resource.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_main, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 234 - TOPMARGIN, 7 - BOTTOMMARGIN, 153 - END -END -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - IDS_APP_TITLE "SerchCH341Port" - IDS_HELLO "Hello World!" - IDC_SERCHCH341PORT "SERCHCH341PORT" -END - -#endif // Chinese (P.R.C.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" deleted file mode 100644 index 3785307..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.cpp" +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// SerchCH341Port.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" deleted file mode 100644 index 1e47eff..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/StdAfx.h" +++ /dev/null @@ -1,32 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) -#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_ - -#if _MSC_VER > 1000 -#pragma once -#endif // _MSC_VER > 1000 - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers - - -// Windows Header Files: -#include - -// C RunTime Header Files -#include -#include -#include -#include - -// Local Header Files - -// TODO: reference additional headers your program requires here - -//{{AFX_INSERT_LOCATION}} -// Microsoft Visual C++ will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" deleted file mode 100644 index 2b17419..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/resource.h" +++ /dev/null @@ -1,38 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by SerchCH341Port.rc -// -#define IDC_MYICON 2 -#define IDD_SERCHCH341PORT_DIALOG 102 -#define IDD_ABOUTBOX 103 -#define IDS_APP_TITLE 103 -#define IDM_ABOUT 104 -#define IDM_EXIT 105 -#define IDS_HELLO 106 -#define IDI_SERCHCH341PORT 107 -#define IDI_SMALL 108 -#define IDC_SERCHCH341PORT 109 -#define IDR_MAINFRAME 128 -#define IDD_main 129 -#define IDC_search 1000 -#define IDC_CH341PtHandleIsCH341 1000 -#define IDC_show 1001 -#define IDC_namesearch 1002 -#define IDC_CH341PtNameIsCH341 1002 -#define IDC_beginmonitor 1003 -#define IDC_stopmonitor 1004 -#define IDC_clear 1005 -#define IDC_STATIC 1007 -#define IDC_dllver 1008 -#define IDC_sermonitor 1009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 130 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1010 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" deleted file mode 100644 index 7eef0bc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/IDEN_SER/VC/small.ico" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" deleted file mode 100644 index 6f98bc7..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/CH341EVT.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" deleted file mode 100644 index ed45584..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/PUB/EVT_PCB.PDF" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" deleted file mode 100644 index 73cb53b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/MAKEFILE" +++ /dev/null @@ -1,26 +0,0 @@ -############## by W.ch -FILENAME=SPEED341 -EXENAME=SPEED341 -CPP=cl.exe -OUTDIR=. -INTDIR=. -ALL : $(OUTDIR)/$(EXENAME).EXE -CPP_PROJ=/nologo /MT /W3 /GX- /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D\ - "_X86_" /Fo$(INTDIR)/$(FILENAME).OBJ /c -CPP_OBJS=./ -LINK32=link.exe -LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\ - advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib\ - odbccp32.lib version.lib setupapi.lib CH341DLL.LIB\ - /NOLOGO /SUBSYSTEM:console /INCREMENTAL:no /MACHINE:IX86\ - /LIBPATH:$(DDKLIB)\i386\free \ - /OUT:$(OUTDIR)/$(EXENAME).EXE -LINK32_OBJS= $(INTDIR)/$(FILENAME).OBJ -$(OUTDIR)/$(EXENAME).EXE : $(OUTDIR) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< -.c{$(CPP_OBJS)}.OBJ: - $(CPP) $(CPP_PROJ) $< -SOURCE=.\$(FILENAME).C -$(INTDIR)/$(FILENAME).OBJ : $(SOURCE) $(INTDIR) diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" deleted file mode 100644 index 57621b3..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.C" +++ /dev/null @@ -1,95 +0,0 @@ -//**************************************** -//** Copyright (C) W.ch 1999-2004 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** C, VC5.0 ** -//**************************************** -// -// CH341 测试并口传输速度 -// - - -#include -#include -#include -#include -#include - -#include "CH341DLL.H" // CH341的动态链接库 - -//程序入口 -void main ( ) -{ - unsigned char mBuffer[4100]; - unsigned long i, mLength, mTestCount, mErrCnt, mStep, mTotal; - double speed; - - printf( "\nCH341 Bulk Data Test Program V1.0 , Copyright (C) W.ch 2003.12\n" ); - -// 需要使用DLL则需要先加载 - printf( "*** Load DLL: CH341DLL.DLL \n" ); - if ( LoadLibrary( "CH341DLL.DLL" ) == NULL ) return; // 加载DLL失败,可能未安装到系统中 - - printf( "*** CH341OpenDevice: 0# \n" ); - if ( CH341OpenDevice( 0 ) == INVALID_HANDLE_VALUE ) return; /* 使用之前必须打开设备 */ - mErrCnt = 0; - - printf( "*** Step-2: test speed of download data: 2048KB data \n" ); - for ( i=0; i<4096; i+=4 ) *(unsigned long *)(&mBuffer[i])=rand(); // 产生随机数以发送 - mTotal=0; - mStep=GetTickCount(); - for ( mTestCount=0; mTestCount<500; ++mTestCount ) // 循环测试 - { - *(unsigned long *)(&mBuffer[4])=mTestCount; - mLength = 4096; - if ( CH341EppWriteData( 0, &mBuffer, &mLength ) ) // 发送成功 - { - if ( mLength != 4096 ) printf( "S2-C%ld CH341WriteData actual length short %ld (4096)\n", mLength ); - mTotal +=mLength; // 累计长度 - } - else { // 写操作失败 - mErrCnt++; - printf( "S2-C%ld CH341WriteData return error\n", mTestCount ); - } - } - mLength=GetTickCount(); - mLength=mLength-mStep; - speed=1000; - if ( mLength !=0 ) speed=speed*mTotal/mLength; - else speed=9999999; - printf( "*** download speed = %7.1f Bytes/Sec, total=%ld bytes, time=%ld mS\n", speed, mTotal, mLength); - Sleep(100); - - printf( "*** Step-3: test speed of upload data: 2048KB data\n" ); - mTotal=0; - mStep=GetTickCount(); - for ( mTestCount=0; mTestCount<500; ++mTestCount ) // 循环测试 - { - mLength = 4096; - if ( CH341EppReadData( 0, &mBuffer, &mLength ) ) // 接收成功 - { - if ( mLength != 4096 ) printf( "S3-C%ld CH341ReadData actual length short %ld (4096)\n", mLength ); - mTotal +=mLength; // 累计长度 - } - else { // 读操作失败 - mErrCnt++; - printf( "S3-C%ld CH341ReadData return error\n", mTestCount ); - } - } - mLength=GetTickCount(); - mLength=mLength-mStep; - speed=1000; - if ( mLength !=0 ) speed=speed*mTotal/mLength; - else speed=9999999; - printf( "*** upload speed = %7.1f Bytes/Sec, total=%ld bytes, time=%ld mS\n", speed, mTotal, mLength); - Sleep(100); - -// 关闭CH341设备,如果不继续使用则必须关闭设备,就象读写完硬盘中的数据文件后要关闭一样 - printf( "*** Total error = %ld \n", mErrCnt ); - printf( "*** CH341CloseDevice: 0 \n" ); - CH341CloseDevice( 0 ); - - printf( "\nExit.\n" ); - getch(); -} - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" deleted file mode 100644 index c2be288..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/CH341\350\212\257\347\211\207\345\256\230\346\226\271DEMO\344\276\213\347\250\213/SPEED341/SPEED341.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" deleted file mode 100644 index c70148d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/MAINC.CPP" +++ /dev/null @@ -1,80 +0,0 @@ -//**************************************** -//** Web: http://usendz.taobao.com ** -//**************************************** -//** USB2IIC&SPI for SDK ** -//**************************************** -// -#include "USBIO.H" - -UINT mIndex = 0; - -//程序入口 -void main ( ) -{ - UINT mErrCnt = 0; - UCHAR Numf = 0; - - printf( "\nInitialing ......"); - printf( "\n****************************************************\n"); - // 需要使用DLL则需要先加载 - printf( "Load DLL: USBIOX.DLL ......\n" ); - if (LoadLibrary("USBIOX.DLL") == NULL ) return; // 加载DLL失败,可能未安装到系统中 - printf( "USBIO_OpenDevice: 0\n" ); - - if(USBIO_OpenDevice(mIndex) == INVALID_HANDLE_VALUE) - { - printf("\nfail to open device!!"); - getch(); - return; - } //使用之前必须打开设备 - - printf("\nOpen device sucessfully!"); - printf("\nPress any key to continue......"); - getch(); - - - while(Numf<5) - { - system("cls"); - printf( "\n************************ USB2IIC&SPI for SDK V1.0 ***************************\n"); - printf( " Copyright (C) USEN TECH. 2012.02 "); - printf( "\n***************************************************************************\n"); - printf("\nFunction Select:\n"); - printf("\n(1) GPIO TEST"); - printf("\n(2) I2C(USBIO_StreamI2C) TEST"); - printf("\n(3) SPI(USBIO_SPI4) TEST"); - printf("\n(4) SPI(USBIO_BitSPI) TEST"); - printf("\nOTHERS EXIT"); - printf("\n\nPlease select the function:"); - scanf("%d",&Numf); - - switch(Numf) - { - case 1: - GPIO(); - break; - case 2: - I2CStream(); - break; - case 3: - SPIByte(); - break; - case 4: - SPIBit(); - break; - default: - Numf = 10; - break; - } - } - - //关闭USB2I2C设备,如果不继续使用则必须关闭设备,就象读写完硬盘中的数据文件后要关闭一样 - printf("\n **************************** USBIO_CloseDevice:%d ******************************",mIndex); - USBIO_CloseDevice(mIndex); - printf("\n Exit... \n" ); - -} - - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" deleted file mode 100644 index 197ebd8..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.H" +++ /dev/null @@ -1,17 +0,0 @@ -//*****************USBIO.H************** -#include -#include -#include -#include -#include -#include "USBIOX.H" // USB2I2C的动态链接库 - - -void GPIO(); -void I2CStream(); -void SPIByte(); -void SPIBit(); -void Exit(); - - -void CheckNum(UCHAR value); diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" deleted file mode 100644 index 805dfb6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO.cpp" +++ /dev/null @@ -1,317 +0,0 @@ -//***************USBIO function definations ******************* -#include "USBIO.H" -#define MAXLEN 4096 - -extern UINT mIndex; - -void CheckNum(UCHAR value) -{ - if(value <0 || value >255) - { - printf("the entry value is illegal!"); - return; - } - -} - - -//GPIO 控制函数 -void GPIO() -{ - ULONG iStatus = 0x00ff; - UCHAR iData = 0xff; - UCHAR iDirect = 0xff; - - system("cls"); - printf("\n****************************GPIO Test Modual*******************************"); - printf("\nAPI1:USBIO_GetStatus(mIndex,iStatus) "); - printf("\nAPI2:USBIO_Set_D5_D0(mIndex,iSetDir,iSetData)"); - printf("\n***************************************************************************"); - - printf("\n\n<1>PORTS STATUS INPUT"); - printf("\n/**Introductions:Set the input/ouput of the ports D0-D5 in Hex(1:output 0:input)"); - printf("\n/**Example: 05 stands for D0 D2 output ; D1 D3 D4 D5 input "); - printf("\n\nSET INPUT/OUTPUT STATUS OF D5-D0 : "); - - scanf("%X",&iDirect); - iDirect = iDirect&0x3f; - // CheckNum(iDirect); - printf("\n\n<2>PORS VALUE SET"); - printf("\n/**Introductions:Set the input/ouput of the ports D0-D5 in Hex(1:highlevel 0:lowlevel)"); - printf("\n/**Example:05 stands for D0 D2 highlevel ; D1 D3 D4 D5 lowlevel "); - printf("\n\nSET INPUT/OUTPUT VALUE OF D5-D0 : "); - scanf("%X",&iData); - iData = iData&0x3f; - //CheckNum(iData); - - USBIO_GetStatus(mIndex,&iStatus); - USBIO_Set_D5_D0(mIndex,iDirect,iData); - - printf("\n*********************************** RESULT *********************************"); - printf("\n\nGPIO operation is completed\n"); - printf("\nStatus of the ports : 0X%X",iStatus&0x3f); - - printf("\n\nPress any key to the main menu!"); - getch(); - -} - -void I2CStream() -{ - UCHAR Data[MAXLEN]; - memset(Data,0,MAXLEN); - - UINT iWRLen = 0; - UINT iRDLen = 0; - UINT i =0; - UCHAR SCLK = 0; - - system("cls"); - printf("\n*********************I2CStream Test Modual*******************************"); - printf("\nAPI:USBIO_StreamI2C(mIndex,iWriteLength,WriteBuffer,iReadLength,ReadBuffer)"); - printf("\n*************************************************************************"); - - - //设置时钟频率 - printf("\n\n\n<1>SELECT FREQUENCY of SCL: <0> 20Khz <1> 100Khz <2> 400Khz <3> 750Khz\n"); - printf("Select:"); - scanf("%d",&SCLK); - - switch(SCLK) - { - - case 1: - USBIO_SetStream(mIndex,0x81); - break; - case 2: - USBIO_SetStream(mIndex,0x82); - break; - case 3: - USBIO_SetStream(mIndex,0x83); - break; - default: - USBIO_SetStream(mIndex,0x80); - break; - } - - //写入数据的长度 - printf("\n<2>INPUT THE NUMBER OF WRITE BYTES : "); - scanf("%d",&iWRLen); - - //写入的数据 - printf("\n<3>INPUT THE WRITE BYTES(HEX) : "); - while(iINPUT THE NUMBER OF READ BYTES : "); - scanf("%d",&iRDLen); - - UCHAR* iRead = new UCHAR[iRDLen]; - memset(iRead,0,iRDLen); - - if(!USBIO_StreamI2C(mIndex,iWRLen,Data,iRDLen,iRead)) - { - printf("Read data fail!"); - } - - //数据显示 - printf("\n****************************** RESULT **************************************"); - printf("\n<5>READ OUT DATAS : "); - for(i=0;iCHIP SELECT ENABLE: <0> ENABLE <1> UNENABLE"); - printf("\nSelect:"); - scanf("%d",&CSEN); - - - if(CSEN == 0) - { - - printf("\n\n<2>CHIP SELECT: <0> CS0 <1> CS1 <2> CS2"); - printf("\nSelect:"); - scanf("%d",&CS); - } - - printf("\n<3>BYTE ORDER SELECT: <0> MSB first <1> LSB first "); - printf("\nSelect:"); - scanf("%d",&ORDER); - - - switch((CSEN+1)*10+CS) - { - - case 10: - iChipSelect = 0x80; - break; - case 11: - iChipSelect = 0x81; - break; - case 12: - iChipSelect = 0x82; - break; - case 13: - iChipSelect = 0x83; - break; - case 20: - iChipSelect = 0x00; - break; - case 21: - iChipSelect = 0x01; - break; - case 22: - iChipSelect = 0x02; - break; - case 23: - iChipSelect = 0x03; - break; - default: - iChipSelect = 0x00; - break; - } - - //数据传输长度 - printf("\n<3>INPUT TRANSFORM LENGTH : "); - scanf("%d",&DataLen); - - - //输入传输的数据 - UCHAR* pData = new UCHAR[DataLen]; - memset(pData,0,DataLen); - - - printf("\n<4>INPUT BYTE STREAM(End with -1):"); - - do{ - scanf("%X",&pData[i++]); - - }while(pData[i-1] != 0xFF); - pData[i-1] = 0; - - - - /*set stream - BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定mUSBIO_PACKET_LENGTH设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - */ - if(ORDER == 0) - { - USBIO_SetStream(mIndex,0x00);//Set SPI model; - } - else - { - USBIO_SetStream(mIndex,0x80);//Set SPI model; - - } - printf("%X,%X,%X,%X,%X",iChipSelect,DataLen,pData[0],pData[1],pData[2]); - printf("\n****************************** RESULT **********************************"); - //获取返回的数据和显示数据 - USBIO_Set_D5_D0(mIndex,0xff,0x00); //CS拉低 - - if(!USBIO_StreamSPI4(mIndex,iChipSelect,DataLen,pData)) - { - printf("\nFail to SPI operation!"); - return; - } - - printf("\nDATAS FROM MISO : "); - i =0; - while(iINPUT THE DATA NUMBER: "); - scanf("%d",&iNumber); - - UCHAR* wBuf = new UCHAR[iNumber];//放置发送的数据,只有bit4发送,bit0,1,2分别是D0,D1,D2的片选 - UCHAR* rBuf = new UCHAR[iNumber];//放置接收的数据,从bit7接收,bit0,1,2分别是D0,D1,D2的片选 - - memset(wBuf,0,iNumber); - - if(iNumber>256) - { - printf("The number is too big to transmit!"); - return; - } - - USBIO_Set_D5_D0(mIndex,0xff,0xff);//设置端口数据 - - printf("\n<2>INPUT BYTE STREAM(BIT4 FOR MOSI) : "); - UINT i = 0; - do - { - scanf("%X",&wBuf[i++]); - - }while(wBuf[i-1]!=0XFF); - - //Bit Stream send - if (!USBIO_BitStreamSPI(mIndex,iNumber,wBuf)) - { - return; - } - - //显示读取的数据 - printf("\n***************************** RESULT *************************************"); - printf("\n<3>MISO BIT STREAM : "); - i = 0; - while(i>7)&0x01; - printf("%d ",rBuf[i]); - i++; - } - - getch(); -} diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" deleted file mode 100644 index 28f6929..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" deleted file mode 100644 index f15733b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.H" +++ /dev/null @@ -1,684 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19, 2008.10.15 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.1 -// 南京沁恒电子有限公司 作者: W.ch 2008.10 -// CH341-DLL V2.1 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI USBIO_OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI USBIO_CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI USBIO_GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI USBIO_DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI USBIO_GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI USBIO_ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI USBIO_ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI USBIO_AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI USBIO_InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI USBIO_ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI USBIO_WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI USBIO_EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI USBIO_MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI USBIO_SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI USBIO_ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI USBIO_GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI USBIO_GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI USBIO_FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI USBIO_SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI USBIO_ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI USBIO_WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI USBIO_GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI USBIO_Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI USBIO_StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI USBIO_StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI USBIO_StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI USBIO_BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI USBIO_SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI USBIO_QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI USBIO_QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI USBIO_SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI USBIO_SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - USBIO_OpenDevice - USBIO_CloseDevice - USBIO_SetupSerial - USBIO_ReadData - USBIO_WriteData - USBIO_SetBufUpload - USBIO_QueryBufUpload - USBIO_SetBufDownload - USBIO_QueryBufDownload - USBIO_SetDeviceNotify - USBIO_GetStatus -// 以上是主要API,以下是次要API - USBIO_GetVersion - USBIO_DriverCommand - USBIO_GetDrvVersion - USBIO_ResetDevice - USBIO_GetDeviceDescr - USBIO_GetConfigDescr - USBIO_SetIntRoutine - USBIO_ReadInter - USBIO_AbortInter - USBIO_AbortRead - USBIO_AbortWrite - USBIO_ReadI2C - USBIO_WriteI2C - USBIO_SetExclusive - USBIO_SetTimeout - USBIO_GetDeviceName - USBIO_GetVerIC - USBIO_FlushBuffer - USBIO_WriteRead - USBIO_ResetInter - USBIO_ResetRead - USBIO_ResetWrite -*/ -HANDLE WINAPI USBIO_OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI USBIO_CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI USBIO_GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI USBIO_SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" deleted file mode 100644 index fe39fdc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIOX.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" deleted file mode 100644 index 17f2789..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsp" +++ /dev/null @@ -1,116 +0,0 @@ -# Microsoft Developer Studio Project File - Name="USBIO_SDK" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=USBIO_SDK - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "USBIO_SDK.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "USBIO_SDK.mak" CFG="USBIO_SDK - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "USBIO_SDK - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "USBIO_SDK - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "USBIO_SDK - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /c -# ADD BASE RSC /l 0x804 /d "NDEBUG" -# ADD RSC /l 0x804 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "USBIO_SDK - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c -# ADD BASE RSC /l 0x804 /d "_DEBUG" -# ADD RSC /l 0x804 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "USBIO_SDK - Win32 Release" -# Name "USBIO_SDK - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\MAINC.CPP -# End Source File -# Begin Source File - -SOURCE=.\USBIO.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\USBIO.H -# End Source File -# Begin Source File - -SOURCE=.\USBIOX.H -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\USBIOX.LIB -# End Source File -# End Group -# End Target -# End Project diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" deleted file mode 100644 index c26bb34..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.dsw" +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "USBIO_SDK"=.\USBIO_SDK.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" deleted file mode 100644 index 11408ad..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.ncb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" deleted file mode 100644 index 0ac8283..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.opt" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" deleted file mode 100644 index f6db856..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C&SPI\346\223\215\344\275\234\347\244\272\344\276\213\344\273\243\347\240\201/USBIO_SDK.plg" +++ /dev/null @@ -1,39 +0,0 @@ - - -
-

Build Log

-

---------------------Configuration: USBIO_SDK - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP890.tmp" with contents -[ -/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FR"Release/" /Fp"Release/USBIO_SDK.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"D:\我接收到的文件\Soft\USB2IIC&SPI_SDK\MAINC.CPP" -"D:\我接收到的文件\Soft\USB2IIC&SPI_SDK\USBIO.cpp" -] -Creating command line "cl.exe @C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP890.tmp" -Creating temporary file "C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP891.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /pdb:"Release/USBIO_SDK.pdb" /machine:I386 /out:"Release/USBIO_SDK.exe" -".\Release\MAINC.OBJ" -".\Release\USBIO.obj" -".\USBIOX.LIB" -] -Creating command line "link.exe @C:\DOCUME~1\cpliu\LOCALS~1\Temp\RSP891.tmp" -

Output Window

-Compiling... -MAINC.CPP -USBIO.cpp -Linking... -Creating command line "bscmake.exe /nologo /o"Release/USBIO_SDK.bsc" ".\Release\MAINC.SBR" ".\Release\USBIO.sbr"" -Creating browse info file... -

Output Window

- - - -

Results

-USBIO_SDK.exe - 0 error(s), 0 warning(s) -
- - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" deleted file mode 100644 index 8622f31..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/I2C\350\207\252\345\256\232\344\271\211\346\227\266\345\272\217\344\276\213\347\250\213/EXAM.C" +++ /dev/null @@ -1,543 +0,0 @@ -// V1.1 - -#include -#include "CH341DLL.H" - -/* 本程序涉及到 - 1、2线接口的一些自定义时序,处理IIC总线的应答位,以及了解2线接口的内部时序分析 - 2、提供例子程序,操作2线接口IIC器件X76F640、PCF8574、PCA9554 - 3、用EPP或者MEM并口进行多位输出或者多位输入,模拟只读或者只写的SPI时序 - 4、用UIO通用I/O位流命令实现自定义的同步串行接口 - 5、提供例子程序,操作类似SPI的非标准串行时序的器件TLC1549 - 6、提供例子程序,通过CH341StreamSPI4操作4线接口SPI器件25C512、25C020 - 7、提供例子程序,通过CH341BitStreamSPI操作类似SPI的非标准串行时序的器件ADC0831 - 另外可以用CH341SetOutput设置CH341的I/O方向,并通过CH341的任何一个引脚直接输出数据,未提供例子,建议用CH341Set_D5_D0代替 -*/ - -/* CH341并口驱动及DLL的API层次,按从低向高分为 - 1、CH341DriverCommand直接传给WDM驱动程序层 - 2、CH341WriteData只写数据, CH341ReadData只读数据, CH341WriteRead先写数据再读数据 - 3、CH341StreamI2C先写IIC,可选地再读IIC (内部调用CH341WriteData和CH341WriteRead) - CH341StreamSPI进行SPI传输,读写都是可选的 (内部调用CH341WriteRead) - 4、CH341ReadEEPROM读EEPROM数据, CH341WriteEEPROM写EEPROM数据 (内部调用CH341StreamI2C) - 本例子中的子程序将调用CH341WriteData、CH341WriteRead、CH341StreamI2C等DLL中的API */ - -/* 实测速度 - CH341StreamI2C 约56K字节 - CH341ReadEEPROM 约56K字节 - CH341WriteEEPROM 约5K字节(如果是RAM而非闪存那么与CH341ReadEEPROM速度相同) - CH341StreamSPI4 约68K字节 - CH341StreamSPI5 每路约30K字节 * 2路输入和2路输出 - CH341BitStreamSPI 每路约8K位 * 至少2路输入和2路输出(最多7路输入4路输出) -*/ - -/* ********************************************************************************************** */ -/* 例子:兼容IIC总线的通用操作时序 */ - -BOOL WINAPI IIC_IssueStart( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_IssueStop( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_OutBlockSkipAck( // 输出数据块,不检查应答 - ULONG iIndex, // 指定CH341设备序号 - ULONG iOutLength, // 准备写出的数据字节数,单次必须小于29字节 - PVOID iOutBuffer ) // 指向一个缓冲区,放置准备写出的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - if ( iOutLength == 0 || iOutLength > ( mCH341_PACKET_LENGTH - 1 - 1 - 1 ) ) return( FALSE ); - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | iOutLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[2], iOutBuffer, iOutLength ); // 数据 - mBuffer[ 1 + 1 + iOutLength ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 1 + 1 + iOutLength + 1; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI IIC_OutByteCheckAck( // 输出一字节数据并检查应答是否有效 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iOutByte ) // 准备写出的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答 - mBuffer[ 2 ] = iOutByte; // 数据 - mBuffer[ 3 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 4; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效 - } - return( FALSE ); -} - -BOOL WINAPI IIC_InBlockByAck( // 输入数据块,每输入一个字节都产生有效应答 - ULONG iIndex, // 指定CH341设备序号 - ULONG iInLength, // 准备读取的数据字节数,单次必须小于32字节 - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - if ( iInLength == 0 || iInLength > mCH341A_CMD_I2C_STM_MAX ) return( FALSE ); - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | iInLength ); // 输入数据,位5-位0为长度 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen == iInLength ) { - memcpy( oInBuffer, &mBuffer[0], iInLength ); // 数据 - return( TRUE ); - } - } - return( FALSE ); -} - -BOOL WINAPI IIC_InByteNoAck( // 输入一字节数据,但是不产生应答 - ULONG iIndex, // 指定CH341设备序号 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_IN; // 输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 3; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen ) { - *oInByte = mBuffer[ mInLen - 1 ]; // 数据 - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 操作加密存储器X76F640 */ - -BOOL WINAPI X76F640_AckPolling( // 查询X76F640应答 (包括:输出起始位,输出一字节命令数据,检查应答是否有效) - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答 - mBuffer[ 3 ] = 0xF0; // 应答查询操作的命令码 - mBuffer[ 4 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 5; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_CheckPasswd( // 发出操作命令并检查指定的密码 (包括:输出起始位,输出9字节数据(1命令+8密码),查询应答,输出2字节地址) - ULONG iIndex, // 指定CH341设备序号 - ULONG iCommand, // 操作命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,提供8字节的密码数据 - ULONG iAddress ) // 指定操作地址或者密码后的2字节数据 -{ - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG i, mLength; - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 9 ); // 输出数据,位5-位0为长度,9字节 - mBuffer[ i++ ] = (UCHAR)iCommand; // 操作命令码 - memcpy( &mBuffer[ i ], iPasswdBuf, 8 ); // 8字节密码数据 - i += 8; - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_MS | 10 ); // 以亳秒为单位延时,位3-位0为延时值,延时10毫秒 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = i; - if ( CH341WriteData( iIndex, mBuffer, &mLength ) ) { // 写出数据块 - if ( X76F640_AckPolling( iIndex ) ) { // 查询应答有效 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 2 ); // 输出数据,位5-位0为长度 - mBuffer[ i++ ] = (UCHAR)( iAddress & 0x00FF ); // 地址低8位 - mBuffer[ i++ ] = (UCHAR)( ( iAddress >> 8 ) & 0x00FF ); // 地址高8位 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = i; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 - } - else IIC_IssueStop( iIndex ); // 应答无效 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_WriteWithPasswd( // 写X76F640的块,使用指定的密码 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteCommand, // 块写命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,放置8字节的密码数据 - ULONG iAddress, // 指定操作地址 - ULONG iOutLength, // 准备写出的数据字节数,单次必须小于32字节(1个扇区) - PVOID iOutBuffer ) // 指向一个缓冲区,放置准备写出的数据 -{ - UCHAR mBuffer[ mDEFAULT_BUFFER_LEN ]; - ULONG i, mLength; - if ( iOutLength == 0 || iOutLength > 32 ) return( FALSE ); - if ( X76F640_CheckPasswd( iIndex, iWriteCommand, iPasswdBuf, iAddress ) ) { // 发出命令及密码检查通过 - if ( iOutLength > ( mCH341_PACKET_LENGTH - 1 - 1 - 1 - 1 - 1 ) ) { // 去掉前2字节后3字节,一个包不够用 - mLength = iOutLength - ( mCH341_PACKET_LENGTH - 1 - 1 - 1 - 1 - 1); // 多出的长度 - iOutLength -= mLength; // 第1个包的数据长度 - } - else mLength = 0; // 1个包就够用了 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | iOutLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[ i ], iOutBuffer, iOutLength ); // 数据 - i += iOutLength; - if ( mLength ) { // 第2包 - mBuffer[ i ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - i += mCH341_PACKET_LENGTH - i % mCH341_PACKET_LENGTH; // 跳过当前包剩余部分 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 第2个包的首字节仍然是命令码 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | mLength ); // 输出数据,位5-位0为长度 - memcpy( &mBuffer[ i ], (PUCHAR)iOutBuffer + iOutLength, mLength ); // 剩余数据 - i += mLength; - } - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_MS | 10 ); // 以亳秒为单位延时,位3-位0为延时值,延时10毫秒 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - return( CH341WriteData( iIndex, mBuffer, &i ) ); // 写出数据块 - } - return( FALSE ); -} - -BOOL WINAPI X76F640_ReadWithPasswd( // 读X76F640的块,使用指定的密码 (包括:输出起始位,输出9字节数据(1命令+8密码),查询应答,输出2字节地址,读入数据块) - ULONG iIndex, // 指定CH341设备序号 - ULONG iReadCommand, // 块读命令码 - PVOID iPasswdBuf, // 指向一个缓冲区,放置8字节的密码数据 - ULONG iAddress, // 指定操作地址 - ULONG iInLength, // 准备读取的数据字节数,单次必须小于512字节 ( 每包32 * 16个包 = 512字节 ) - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - UCHAR mBuffer[ mDEFAULT_BUFFER_LEN ]; - ULONG i, mLength, mInLen; - if ( iInLength == 0 || iInLength > ( 16 * mCH341_PACKET_LENGTH ) ) return( FALSE ); - if ( X76F640_CheckPasswd( iIndex, iReadCommand, iPasswdBuf, iAddress ) ) { // 发出命令及密码检查通过 - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 命令码 - for ( mInLen = 1; mInLen < iInLength; ) { - mLength = iInLength - mInLen >= mCH341A_CMD_I2C_STM_MAX ? mCH341A_CMD_I2C_STM_MAX : iInLength - mInLen; // 本次输入有效数据长度 - mBuffer[ i++ ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | mLength ); // 输入数据,位5-位0为长度 - mInLen += mLength; - if ( mLength >= mCH341A_CMD_I2C_STM_MAX ) { // 当前包将满 - mBuffer[ i ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - i += mCH341_PACKET_LENGTH - i % mCH341_PACKET_LENGTH; // 跳过当前包剩余部分 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STREAM; // 新包的命令码 - } - } - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_IN; // 输入最后一个字节数据,只接收一个字节并发送无应答 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ i++ ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 0; - if ( CH341WriteRead( iIndex, i, mBuffer, mCH341A_CMD_I2C_STM_MAX, ( iInLength + mCH341A_CMD_I2C_STM_MAX - 1 ) / mCH341A_CMD_I2C_STM_MAX, &mLength, oInBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mLength == iInLength ) return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作准双向I/O扩展PCF8574 */ - -BOOL WINAPI PCF8574_WriteIO( // 输出PCF8574的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iOutByte ) // 准备写出的I/O数据 -{ // 可以直接用CH341StreamI2C( iIndex, 2, mBuffer, 0, NULL )实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 2 ); // 输出数据,位5-位0为长度,2字节 - mBuffer[ 3 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 4 ] = (UCHAR)iOutByte; // I/O数据 - mBuffer[ 5 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 6 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 7; - return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块 -} - -BOOL WINAPI PCF8574_ReadIO( // 输入PCF8574的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的I/O数据 -{ // 可以直接用CH341StreamI2C( iIndex, 1, mBuffer, 1, oInByte )实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - ULONG mLength, mInLen; - mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码 - mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位 - mBuffer[ 2 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | 1 ); // 输出数据,位5-位0为长度,1字节 - mBuffer[ 3 ] = (UCHAR)( iDeviceAddr | 0x01 ); // 设备地址,读操作 - mBuffer[ 4 ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | 1 ); // 输入数据,位5-位0为长度,1字节 - mBuffer[ 5 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位 - mBuffer[ 6 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束 - mLength = 7; - mInLen = 0; - if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入 - if ( mInLen ) { - *oInByte = mBuffer[ mInLen - 1 ]; // 返回的数据 - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作双向I/O扩展PCA9554 */ - -BOOL WINAPI PCA9554_SetIO( // 设置PCA9554的I/O方向 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iSetByte ) // 方向数据 -{ // 也可以用CH341WriteI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 1 ] = 0x03; - mBuffer[ 2 ] = (UCHAR)iSetByte; // I/O方向数据 - return( CH341StreamI2C( iIndex, 3, mBuffer, 0, NULL ) ); // 处理I2C数据流 -} - -BOOL WINAPI PCA9554_WriteIO( // 输出PCA9554的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - ULONG iOutByte ) // 准备写出的I/O数据 -{ // 也可以用CH341WriteI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,写操作 - mBuffer[ 1 ] = 0x01; - mBuffer[ 2 ] = (UCHAR)iOutByte; // I/O数据 - return( CH341StreamI2C( iIndex, 3, mBuffer, 0, NULL ) ); // 处理I2C数据流 -} - -BOOL WINAPI PCA9554_ReadIO( // 输入PCA9554的I/O - ULONG iIndex, // 指定CH341设备序号 - ULONG iDeviceAddr, // 设备地址,最低位为命令方向位 - PUCHAR oInByte ) // 指向一个字节的缓冲区,返回后是读入的I/O数据 -{ // 也可以用CH341ReadI2C实现 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; - mBuffer[ 0 ] = (UCHAR)( iDeviceAddr & 0xFE ); // 设备地址,CH341StreamI2C自动处理读操作 - mBuffer[ 1 ] = 0x00; - return( CH341StreamI2C( iIndex, 2, mBuffer, 1, oInByte ) ); // 处理I2C数据流 -} - -/* ********************************************************************************************** */ -/* 用EPP或者MEM并口进行多位输出或者多位输入,模拟只读或者只写的SPI时序 */ - -/* 下面是用EPP并口CH341EppWriteData模拟只是进行输出的SPI时序,参考下图波形(选择等宽的中文字体时才能看出) - ___ ___ - WR# |_________________________________________________________| SPI_CS - ______ ___ ___ ___ ___ ___ ___ ___ ______ - DS# |__| |__| |__| |__| |__| |__| |__| |__| SPI_CLK - ____ ______ ______ ______ ____ - D0 |______| | |______| |______|______|______| SPI_DOUT0 - ____ ______ ______ ______ ______ ______ ____ - D1 | |______| | | |______| |______| SPI_DOUT1 - ____ ______ ______ ____ - D5 |______|______|______| |______|______|______| | SPI_DOUT5 - - 如果用CH341MemWriteAddr0代替CH341EppWriteData,那么波形如下 - ___ ___ - ADDR |_________________________________________________________| SPI_CS - ______ ___ ___ ___ ___ ___ ___ ___ ______ - WR# |__| |__| |__| |__| |__| |__| |__| |__| SPI_CLK - - 相应的源程序如下 */ - -BOOL WINAPI Exam_EppSerialOut( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[256]; - ULONG mLength; - mBuffer[0]=0x02; - mBuffer[1]=0x01; - mBuffer[2]=0x03; - mBuffer[3]=0x22; - mBuffer[4]=0x03; - mBuffer[5]=0x00; - mBuffer[6]=0x02; - mBuffer[7]=0x20; - mLength = 8; /* 如果多于31个那么在WR#引脚的低电平中间将出现高电平脉冲 */ - return( CH341EppWriteData( iIndex, mBuffer, &mLength ) ); -} - -/* 下面是用MEM并口CH341MemReadAddr0模拟只是进行输入的SPI时序,参考下图波形(选择等宽的中文字体时才能看出) - ___ ___ - ADDR |________________________________________________________________| SPI_CS - _____ __ __ __ __ __ __ __ _____ - RD# |____| |____| |____| |____| |____| |____| |____| |____| SPI_CLK - ______ ____ ____ ____ ____ ____ ____ ____ ______ - D0/in |IN| |IN| |IN| |IN| |IN| |IN| |IN| |IN| SPI_DIN0 - ______ ____ ____ ____ ____ ____ ____ ____ ______ - D7/in |IN| |IN| |IN| |IN| |IN| |IN| |IN| |IN| SPI_DIN7 - - 如果用CH341EppReadData代替CH341MemReadAddr0,那么波形如下 - _______________________________________________________________________ - WR# - _____ __ __ __ __ __ __ __ _____ - DS# |____| |____| |____| |____| |____| |____| |____| |____| SPI_CLK - - 相应的源程序如下 */ - -BOOL WINAPI Exam_MemSerialIn( - ULONG iIndex ) // 指定CH341设备序号 -{ - UCHAR mBuffer[256]; - ULONG mLength, i; - mLength = 8; /* 如果多于31个那么在ADDR引脚的低电平中间将出现高电平脉冲 */ - if ( CH341MemReadAddr0( iIndex, mBuffer, &mLength ) == FALSE ) return( FALSE ); - for ( i = 0; i < mLength; i ++ ) { -/* printf( "D0 is %d, D1 is %d, D7 is %d\n", mBuffer[i]&1, mBuffer[i]>>1&1, mBuffer[i]>>7&1 );*/ - } - return( TRUE ); -} - -/* ********************************************************************************************** */ -/* 用UIO通用I/O位流命令实现自定义的同步串行接口 */ - -/* UIO方式共可以使用8个I/O引脚D7-D0,最多可以8个输入或者6个输出 - 上位机以字节流控制CH341对最终位流进行输入和输出,有4种基本操作和1个结束操作: -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - 例子:操作10位ADC芯片TLC1549,其时序为非标准 - 连线: CH341_D0 <-> TLC1549_CS, CH341_D1 <-> TLC1549_IO_CLK, CH341_D7 <-> TLC1549_DOUT - 下面是用UIO通用I/O位流命令实现的任意波形,参考下图波形(选择等宽的中文字体时才能看出) - ______ ____________ - D0/out |______________________________________________________________________| |_________ TLC1549_CS# - ____ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ Delay 24uS ___ - D1/out |___| 1 |__| 2 |__| 3 |__| 4 |__| 5 |__| 6 |__| 7 |__| 8 |__| 9 |__| 10|________________| 1 |__| TLC1549_I/O_CLOCK - - D7/in ------| A9 | A8 | A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 |__/-----------| B9 | B8 TLC1549_DATA_OUT - - 相应的源程序如下 */ - -BOOL WINAPI TLC1549_ReadADC( // 读取TLC1549的ADC结果 - ULONG iIndex, // 指定CH341设备序号 - PULONG oLastADC ) // 指向一个双字单元,返回读出的上次ADC的结果 -{ -#define TLC1549_MAX_BIT 10 // 10位ADC - UCHAR mBuffer[ mCH341_PACKET_LENGTH * 2 ]; - ULONG i, j, mLength; - i = 0; - mBuffer[ i++ ] = mCH341A_CMD_UIO_STREAM; // 命令码 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x01; // default status: D0=1, D1=0, CS#=HIGH, I/O_CLOCK=LOW - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_DIR | 0x03; // D0 output, D1 output, other input - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D0=0, CS#=LOW - for ( j = 0; j < 8; j ++ ) { // input 8 bit - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x02; // D1=1, I/O_CLOCK=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_IN; // input 1 byte from D7-D0, input A9,A8,A7,A6,A5,A4,A3,A2 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D1=0, I/O_CLOCK=LOW - } - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_END; // 当前命令包提前结束,因为一个包放不下,所以分成两个包 - i = mCH341_PACKET_LENGTH; - mBuffer[ i++ ] = mCH341A_CMD_UIO_STREAM; // 命令码 - for ( j = 0; j < TLC1549_MAX_BIT - 2; j ++ ) { // input 2 bit - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x02; // D1=1, I/O_CLOCK=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_IN; // input 1 byte from D7-D0, input A1,A0 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x00; // D1=0, I/O_CLOCK=LOW - } - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_OUT | 0x01; // D0=1, CS#=HIGH - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_US | 24; // delay 24uS,实际上这个延时完全不需要,因为USB传输每1mS一次,下次传输是在1mS之后 - mBuffer[ i++ ] = mCH341A_CMD_UIO_STM_END; // 当前命令包提前结束 - mLength = 0; - j = CH341WriteRead( iIndex, i, mBuffer, 8, 2, &mLength, mBuffer ); // 执行数据流命令,先输出再输入,执行两次输入,每次最多8字节 - *oLastADC = 0; - if ( j ) { - if ( mLength == TLC1549_MAX_BIT ) { // 输入长度正确 - for ( i = 0; i < TLC1549_MAX_BIT; i ++ ) { // 将每字节的位7合并为10位ADC结果数据 - *oLastADC = ( *oLastADC << 1 ) | ( mBuffer[ i ] >> 7 ); // 位7移到位0 - } - return( TRUE ); - } - } - return( FALSE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作4线接口SPI存储器25F512、25F020 */ -/* 连线: CH341_DCK/D3 <-> 25FXX_SCK, CH341_DOUT/D5 <-> 25FXX_SI, CH341_DIN/D7 <-> 25FXX_SO, CH341_D0 <-> 25FXX_CS# */ - -BOOL WINAPI AT25F512_ReadBlock( // 读AT25F512的块 (包括:输出器件读命令码,输出3字节共24位地址,读入数据块) - ULONG iIndex, // 指定CH341设备序号 - ULONG iAddress, // 指定操作地址 - ULONG iInLength, // 准备读取的数据字节数,单次建议小于1024字节 - PVOID oInBuffer ) // 指向一个缓冲区,返回后是读入的数据 -{ - static BOOL mTheFirst = TRUE; - if ( mTheFirst ) { // 首次进入时需要设置I/O方向 - if ( CH341SetStream( iIndex, 0x81 ) == FALSE ) return( FALSE ); // 设置串口流模式:SPI为单入单出,SPI字节中的位顺序是高位在前 - mTheFirst = FALSE; - } - if ( iInLength == 0 || iInLength > mDEFAULT_BUFFER_LEN ) return( FALSE ); - *( (PUCHAR)oInBuffer + 0 ) = 0x03; // 读存储器命令码,注意各器件不一定命令码相同 - *( (PUCHAR)oInBuffer + 1 ) = (UCHAR)( iAddress >> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (PUCHAR)oInBuffer + 2 ) = (UCHAR)( iAddress >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (PUCHAR)oInBuffer + 3 ) = (UCHAR)( iAddress & 0xFF ); // 指定读操作的地址A7-A0 -// memset( (PUCHAR)oInBuffer + 4, 0xFF, iInLength ); // 对于有些SPI器件,可能要求在读出数据时SI输入保持为1或者0,那么就要在此设置 - if ( CH341StreamSPI4( iIndex, 0x80, iInLength + 4, oInBuffer ) == FALSE ) return( FALSE ); // 处理4线接口SPI数据流,自动片选为D0 -/* 对于25F512的读操作,要先输出4个字节命令及地址,再输入若干个字节数据,调用API和API返回时都是指总长度,所以返回数据的前4个字节是在输出命令及地址时输入的,应该丢弃 */ - memmove( oInBuffer, (PUCHAR)oInBuffer + 4, iInLength ); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); -} - -/* ********************************************************************************************** */ -/* 例子:操作类似SPI的非标准串行时序的8位ADC芯片ADC0831、TLC0831 */ -/* 连线: CH341_DCK/D3 <-> ADC0831_CLK, CH341_DIN/D7 <-> ADC0831_DO, CH341_D2 <-> ADC0831_CS# */ - -BOOL WINAPI ADC0831_ReadADC( // 读取ADC结果 - ULONG iIndex, // 指定CH341设备序号 - PUCHAR oADC ) // 指向一个字节单元,返回读出的ADC结果 -{ - static BOOL mTheFirst = TRUE; - UCHAR mBuffer[ 256 ]; - ULONG i; - if ( mTheFirst ) { // 首次进入时需要设置I/O方向 - if ( CH341Set_D5_D0( iIndex, 0x0C, 0x04 ) == FALSE ) return( FALSE ); // 设置CH341的D5-D0引脚的I/O方向,DCK/D3输出默认为0,D2输出默认为1 - mTheFirst = FALSE; - } - for ( i = 0; i < 12; i ++ ) { - mBuffer[ i ] = 0x00; // CS=0 for 1st bit to 12th bit - } - mBuffer[ i++ ] = 0x04; // CS=1 for 13th bit - if ( CH341BitStreamSPI( iIndex, i, mBuffer ) == FALSE ) return( FALSE ); // 处理SPI位数据流,输入输出共13位,实际未全部用到 - *oADC = 0; - for ( i = 0; i < 8; i ++ ) { // 将每字节的位7合并为8位ADC结果数据 - *oADC = ( *oADC << 1 ) | ( mBuffer[ i + 1 ] >> 7 ); // 位7移到位0,跳过首字节无效数据,第2个时钟的输入数据才是MSB位 - } - return( TRUE ); -} - -/* ********************************************************************************************** */ - -main( ) { - return(1); -} \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" deleted file mode 100644 index f408c0f..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.H" +++ /dev/null @@ -1,683 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.0 -// 南京沁恒电子有限公司 作者: W.ch 2007.12 -// CH341-DLL V2.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI CH341OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI CH341CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI CH341GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI CH341DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI CH341GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI CH341ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI CH341ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI CH341AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI CH341InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI CH341ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI CH341WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI CH341EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI CH341MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI CH341SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI CH341ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI CH341GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI CH341GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI CH341FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI CH341SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI CH341SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI CH341StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI CH341ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI CH341WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI CH341GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI CH341Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI CH341StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI CH341StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI CH341StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI CH341BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI CH341SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI CH341QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI CH341QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI CH341SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI CH341SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - CH341OpenDevice - CH341CloseDevice - CH341SetupSerial - CH341ReadData - CH341WriteData - CH341SetBufUpload - CH341QueryBufUpload - CH341SetBufDownload - CH341QueryBufDownload - CH341SetDeviceNotify - CH341GetStatus -// 以上是主要API,以下是次要API - CH341GetVersion - CH341DriverCommand - CH341GetDrvVersion - CH341ResetDevice - CH341GetDeviceDescr - CH341GetConfigDescr - CH341SetIntRoutine - CH341ReadInter - CH341AbortInter - CH341AbortRead - CH341AbortWrite - CH341ReadI2C - CH341WriteI2C - CH341SetExclusive - CH341SetTimeout - CH341GetDeviceName - CH341GetVerIC - CH341FlushBuffer - CH341WriteRead - CH341ResetInter - CH341ResetRead - CH341ResetWrite -*/ -HANDLE WINAPI CH341OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI CH341CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI CH341GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI CH341SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" deleted file mode 100644 index 1a81359..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/CH341DLL.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" deleted file mode 100644 index 8cc1674..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" deleted file mode 100644 index e7295c6..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.ilk" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" deleted file mode 100644 index 880ed79..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.obj" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" deleted file mode 100644 index 7cec82c..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pch" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" deleted file mode 100644 index e8a0704..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/ch341_spi_flash.pdb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" deleted file mode 100644 index bf69dac..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.idb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" deleted file mode 100644 index b334f9b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Debug/vc60.pdb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" deleted file mode 100644 index 2bfd0db..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" deleted file mode 100644 index 8ff6ebf..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.obj" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" deleted file mode 100644 index c396a41..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/ch341_spi_flash.pch" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" deleted file mode 100644 index fb4e4bd..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/Release/vc60.idb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" deleted file mode 100644 index 3c92833..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.C" +++ /dev/null @@ -1,1261 +0,0 @@ -/************************************************* -** Copyright (C) WCH 2009-3 ** -** Web: http://www.winchiphead.com ** -************************************************* -** CH341 OPERATION SPI FLASH EN25T80 ** -** VC++6.0 ** -*************************************************/ -/************************************************* -该程序主要完成对SPI接口的FLASH芯片EN25T80读/快 -速读/页写/块擦除/扇区擦除/读写时间测试/下载文件 -测试/读写状态寄存器测试等 -**************************************************/ -/* -Revision History: -V1.0,2009-3,Created by TECH32: -V1.0,2010-1,Modified by TECH32 : 修改文件下载数据校验部分 -Version,Data,Modified by TECHxx:修改内容描述描述 - - -About the status register description - -BUSY bit: The BUSY bit indicates whether the memory is busy with a Write Status Register, Program or Erase cycle. -WEL bit: The Write Enable Latch (WEL) bit indicates the status of the internal Write Enable Latch. -BP2, BP1, BP0 bits. The Block Protect (BP2, BP1, BP0) bits are non-volatile. -They define the size of the area to be software protected against Program and Erase instructions. -SRP bit: The Status Register Protect (SRP) bit is operated in conjunction with the Write Protect (WP#)signal. -The Status Register Protect (SRP) bit and Write Protect (WP#) signal allow the device to be put in the Hardware Protected mode. -In this mode, the non-volatile bits of the Status Register (SRP, BP2, BP1,BP0) become read-only bits. - -Status Register Bit Locations -========================================================================= -| S7 | S6 | S5 | S4 | S3 | S2 | S1 | S0 | -========================================================================= -| SRP | reserver | reserver | BP2 | BP1 | BP0 | WEL | BUSY | -========================================================================= - -Sector SECTOR SIZE (KByte) Address range -15 64 F0000h – FFFFFh -14 64 E0000h – EFFFFh -13 64 D0000h – DFFFFh -12 64 C0000h – CFFFFh -11 64 B0000h – BFFFFh -10 64 A0000h – AFFFFh -9 64 90000h – 9FFFFh -8 64 80000h – 8FFFFh -7 64 70000h – 7FFFFh -6 64 60000h – 6FFFFh -5 64 50000h – 5FFFFh -4 64 40000h – 4FFFFh -3 64 30000h – 3FFFFh -2 64 20000h – 2FFFFh -1 64 10000h – 1FFFFh -0 64 00000h – 0FFFFh - -注意: -1-FLASH编程写入只能有1变0,不能从0到1 -2-在对FLASH进行擦除时要加15秒的延时,详细资料请查看官方相关说明书 -3- 2009-3-19 该程序不能够支持SST的SPI接口FLASH,因为写命令不支持 -4-读整个FLASH要8秒,写整个FLASH要60秒,擦除整个FLASH要15秒 -*/ - -//添加条件编译 -//#define EN25T80 - -#include -#include -#include -#include -#include - -#include "CH341DLL.H" // CH341的动态链接库 - -//命令码常量定义,请查阅芯片说明书 -#define WREN 0X06 //写使能 -#define WRDI 0X04 //写禁止 -#define RDSR 0X05 //读状态寄存器 -#define WRSR 0X01 //写状态寄存器,WEL为0不允许写 -#define READ 0X03 //读字节 -#define FAST_READ 0X0B //快读指令 -#define PP 0X02 //页写指令 -#define SE 0XD8 //区域擦除 -#define BE 0XC7 //批擦除 -#define DP 0XB9 //深度掉电模式 -#define RES 0XAB //从深度掉电模式苏醒 -#define RDID 0x9F //读标识 -#define RMDI 0x90 //读厂商/设备ID - -//全局变量 -ULONG index = 0; //设备号 -ULONG chip_select = 0x80; //启动片选 -unsigned char buffer_write[4096]; //全局缓冲区 - -//子函数声明 -void Select(); - - -//结构体定义 -struct var_type -{ - union - { - unsigned char c_var; - unsigned int i_var; - unsigned short s_var; - unsigned long l_var; - }; -}; - - -// 将ASCII字符转换为一位BCD码,有效字符是0-9,A-F,a-f,无效字符返回0FFH -unsigned char char_to_bcd( unsigned char i_char ) // 输入的ASCII字符 -{ - unsigned char bcd; - if ( i_char >= '0' && i_char <= '9' ) bcd = i_char -'0'; - else if ( i_char >= 'A' && i_char <= 'Z' ) bcd = i_char - 'A' + 0x0a; - else if ( i_char >= 'a' && i_char <= 'z' ) bcd = i_char - 'a' + 0x0a; - else bcd = 0xff; - return( bcd ); -} - -// 将字符串转换成数值返回 -struct var_type char_to_var(unsigned char * s_char,unsigned int s_len,unsigned int s_flag) -{ - unsigned int i; - struct var_type type; - if(s_len != 0) - { - if(s_len > 1) //字符串长度大于1 - { - if(s_flag == 1) //sFlag为1 表示返回ULONG型 - { - unsigned long l_ret = 0; - for(i=0;i> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (unsigned char *)buffer_write + 2 ) = (unsigned char)( address >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (unsigned char *)buffer_write + 3 ) = (unsigned char)( address & 0xFF ); // 指定读操作的地址A7-A0 - if ( CH341StreamSPI4( index, chip_select, length+4, buffer_write ) == FALSE ) - { - free(buffer_write); - return( FALSE ); - } - free(buffer_write); - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名: sector_erase -* 功能描述: 扇区擦除 -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned long address,unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char sector_erase(unsigned long address,unsigned char *buffer) -{ - *( (unsigned char *)buffer + 0 ) = SE; //命令码 - *( (unsigned char *)buffer + 1 ) = (unsigned char)( address >> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (unsigned char *)buffer + 2 ) = (unsigned char)( address >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (unsigned char *)buffer + 3 ) = (unsigned char)( address & 0xFF ); // 指定读操作的地址A7-A0 - if ( CH341StreamSPI4( index, chip_select, 4, buffer ) == FALSE ) return( FALSE ); - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名: bulk_erase -* 功能描述: 块擦除 -* 函数说明: -* 调用函数: -* 全局变量: index,chip_select -* 输 入: unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char bulk_erase( unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = BE; //命令码 - if ( CH341StreamSPI4( index, chip_select, 1, buffer ) == FALSE ) return( FALSE ); - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名: read_block -* 功能描述: 读FLASH -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned long address,unsigned long length, unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char read_block( unsigned long address,unsigned long length, unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = READ; //命令码 - *( (unsigned char *)buffer + 1 ) = (unsigned char)( address >> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (unsigned char *)buffer + 2 ) = (unsigned char)( address >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (unsigned char *)buffer + 3 ) = (unsigned char)( address & 0xFF ); // 指定读操作的地址A7-A0 - memset( (unsigned char *)buffer + 4, 0xFF, length ); // 对于有些SPI器件,可能要求在读出数据时SI输入保持为1或者0,那么就要在此设置 - if ( CH341StreamSPI4( index, chip_select, length+4, buffer ) == FALSE ) return( FALSE ); // 处理4线接口SPI数据流,自动片选为D0 - /* 对于EN25T80的读操作,要先输出4个字节命令及地址,再输入若干个字节数据,调用API和API返回时都是指总长度,所以返回数据的前4个字节是在输出命令及地址时输入的,应该丢弃 */ - memmove( buffer, (unsigned char *)buffer + 4, length ); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名: read_block_fast -* 功能描述: 快速读FLASH -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned long address,unsigned long length, unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-12 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char read_block_fast( unsigned long address,unsigned long length, unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = FAST_READ; //命令码 - *( (unsigned char *)buffer + 1 ) = (unsigned char)( address >> 16 & 0xFF ); // 指定读操作的地址A23-A16 - *( (unsigned char *)buffer + 2 ) = (unsigned char)( address >> 8 & 0xFF ); // 指定读操作的地址A15-A8 - *( (unsigned char *)buffer + 3 ) = (unsigned char)( address & 0xFF ); // 指定读操作的地址A7-A0 - *( (unsigned char *)buffer + 4 ) = 0; // - memset( (unsigned char *)buffer + 5, 0xFF, length ); // 对于有些SPI器件,可能要求在读出数据时SI输入保持为1或者0,那么就要在此设置 - if ( CH341StreamSPI4( index, chip_select, length+5, buffer ) == FALSE ) return( FALSE ); // 处理4线接口SPI数据流,自动片选为D0 - /* 对于EN25T80的读操作,要先输出4个字节命令及地址,再输入若干个字节数据,调用API和API返回时都是指总长度,所以返回数据的前4个字节是在输出命令及地址时输入的,应该丢弃 */ - memmove( buffer, (unsigned char *)buffer + 5, length ); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名:read_identification -* 功能描述: 读芯片标识 -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char read_identification( unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = RDID; //命令码 - if ( CH341StreamSPI4( index, chip_select, 4, buffer ) == FALSE ) return( FALSE ); - memmove( buffer, (unsigned char *)buffer + 1, 3 ); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); -} - -/********************************************************************* -* -* 函 数 名: read_manufacturer_device_id -* 功能描述: 读厂商设备ID号 -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char read_manufacturer_device_id( unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = RMDI; //命令码 - *( (unsigned char *)buffer + 1 ) = 0x00; - *( (unsigned char *)buffer + 2 ) = 0x00; - *( (unsigned char *)buffer + 3 ) = 0x00; - if ( CH341StreamSPI4( index, chip_select, 6, buffer ) == FALSE ) return( FALSE ); - memmove( buffer, (unsigned char *)buffer + 4, 2); // 因为CH341的SPI是数据流,所以实际返回数据应该去掉自己发出的4个字节(命令和地址) - return( TRUE ); - -} - -/********************************************************************* -* -* 函 数 名: deep_power_down -* 功能描述: 电源处理 -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char deep_power_down( unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = 0xB9; //命令码 - if ( CH341StreamSPI4( index, chip_select, 1, buffer ) == FALSE ) return( FALSE ); - return( TRUE ); -} - - -/********************************************************************* -* -* 函 数 名: release_deep_power_down -* 功能描述: 电源处理 -* 函数说明: -* 调用函数: CH341StreamSPI4 -* 全局变量: index,chip_select -* 输 入: unsigned char *buffer -* 返 回: 成功返回TRUE,失败返回FALSE -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -unsigned char release_deep_power_down( unsigned char *buffer ) -{ - *( (unsigned char *)buffer + 0 ) = 0xAB; //命令码 - if ( CH341StreamSPI4( index, chip_select, 1, buffer ) == FALSE ) return( FALSE ); - return( TRUE ); -} - -//功能测试子函数 - -/********************************************************************* -* -* 函 数 名: deep_power_down_test -* 功能描述: -* 函数说明: -* 调用函数: deep_power_down -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-12 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void deep_power_down_test() -{ - deep_power_down(buffer_write); - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: release_deep_power_down -* 功能描述: -* 函数说明: -* 调用函数: deep_power_down -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-12 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void release_deep_power_down_test() -{ - release_deep_power_down(buffer_write); - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: read_status_register_test -* 功能描述: 测试读状态寄存器 -* 函数说明: -* 调用函数: read_status_register -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void read_status_register_test() -{ - unsigned char i; - read_status_register(buffer_write); - for(i=0;i<2;i++) //根据时序可知返回2个字节 - { - printf("buffer_write[%d]=%x\n",i,buffer_write[i]); - } - printf("****** OK ******\n"); - - Select(); -} - -/********************************************************************* -* -* 函 数 名: write_status_register_test -* 功能描述: 测试写状态寄存器,在写前务必写使能 -* 函数说明: -* 调用函数: write_enable,write_status_register,write_disable -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void write_status_register_test() -{ - write_enable(buffer_write); - write_status_register(0,buffer_write); //写0 - write_disable(buffer_write); - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: write_enable_test -* 功能描述: 测试写使能 -* 函数说明: -* 调用函数: write_enable,read_status_register -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void write_enable_test() -{ - unsigned char i; - write_enable(buffer_write); //写使能 - read_status_register(buffer_write); //读状态register,检查位1 - for(i=0;i<2;i++) - { - printf("buffer_write[%d]=%x\n",i,buffer_write[i]); //打印信息 - } - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: write_disable_test -* 功能描述: 测试写使能 -* 函数说明: -* 调用函数: write_disable,read_status_register -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void write_disable_test() -{ - unsigned char i; - write_disable(buffer_write); //写禁止 - read_status_register(buffer_write); //读状态register,检查位1 - for(i=0;i<2;i++) - { - printf("buffer_write[%d]=%x\n",i,buffer_write[i]); //打印信息 - } - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: read_identification_test -* 功能描述: 测试读芯片标识 -* 函数说明: -* 调用函数: read_identification -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void read_identification_test() -{ - unsigned char i; - read_identification(buffer_write); - for(i=0;i<3;i++) - { - printf("buffer_write[%d]=%x\n",i,buffer_write[i]); - } - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: read_manufacturer_device_id_test -* 功能描述: 测试读厂商/设备ID -* 函数说明: -* 调用函数: read_manufacturer_device_id -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void read_manufacturer_device_id_test() -{ - unsigned char i; - read_manufacturer_device_id(buffer_write); - for(i=0;i<2;i++) - { - printf("buffer_write[%d]=%x\n",i,buffer_write[i]); - } - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: sector_erase_test -* 功能描述: 擦除FLASH的某个扇区 -* 函数说明: 地址只能是0x1000的整数倍 -* 调用函数: write_enable,bulk_erase,check,write_disable -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void sector_erase_test() -{ - write_enable(buffer_write); - sector_erase(0,buffer_write); // - printf("正在扇区擦除FLASH...\n"); - write_disable(buffer_write); - check(buffer_write); - printf("****** OK ******\n"); - Select(); -} - -/********************************************************************* -* -* 函 数 名: bulk_erase_test -* 功能描述: 擦除整个FLASH -* 函数说明: -* 调用函数: write_enable,bulk_erase,check,write_disable -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void bulk_erase_test() -{ - write_enable(buffer_write); - bulk_erase(buffer_write); - printf("正在块擦除FLASH...\n"); - //Sleep(15000); - write_disable(buffer_write); - check(buffer_write); - printf("****** OK ******\n"); - Select(); -} - -#define BUFFER_LENGTH 0x100 -/********************************************************************* -* -* 函 数 名: read_block_test -* 功能描述: 测试读FLASH -* 函数说明: -* 调用函数: read_block -* 全局变量: buffer_write -* 输 入: 无 -* 返 回: -* 设 计 者:tech32 日期:2009-3-10 -* 修 改 者: 日期: -* 版 本:VER 1.0 -***********************************************************************/ -void read_block_test() -{ - //int i; - unsigned long address,mTotal; - mTotal=0; - file_operation("read_data","w+"); //创建文件来保存读出的数据 - for(address=0;address<0xFFFFF;address+=BUFFER_LENGTH) - { - read_block(address,BUFFER_LENGTH,buffer_write); //读FLASH 每次读2K字节,CH341动态库只支持最大4K - fwrite( buffer_write,sizeof( char ), BUFFER_LENGTH,stream ); - //for(i=0;i -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=ch341_spi_flash - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "ch341_spi_flash.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "ch341_spi_flash.mak" CFG="ch341_spi_flash - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ch341_spi_flash - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "ch341_spi_flash - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ch341_spi_flash - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c -# ADD BASE RSC /l 0x804 /d "NDEBUG" -# ADD RSC /l 0x804 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ch341dll.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "ch341_spi_flash - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD BASE RSC /l 0x804 /d "_DEBUG" -# ADD RSC /l 0x804 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ch341dll.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "ch341_spi_flash - Win32 Release" -# Name "ch341_spi_flash - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\ch341_spi_flash.C -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\CH341DLL.H -# End Source File -# End Group -# Begin Group "Resource Files" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" -# End Group -# End Target -# End Project diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" deleted file mode 100644 index 27e2485..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.dsw" +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ch341_spi_flash"=.\ch341_spi_flash.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" deleted file mode 100644 index a5d1759..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.ncb" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" deleted file mode 100644 index b5ec8c1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.opt" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" deleted file mode 100644 index d4afc3f..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/ch341_spi_flash.plg" +++ /dev/null @@ -1,57 +0,0 @@ - - -
-

Build Log

-

---------------------Configuration: ch341_spi_flash - Win32 Release-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\szk\LOCALS~1\Temp\RSP1FE.tmp" with contents -[ -/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Release/ch341_spi_flash.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c -"H:\ch34x\usb_parport\szk_ch341_spi_flash\obj\ch341_spi_flash\ch341_spi_flash.C" -] -Creating command line "cl.exe @C:\DOCUME~1\szk\LOCALS~1\Temp\RSP1FE.tmp" -Creating temporary file "C:\DOCUME~1\szk\LOCALS~1\Temp\RSP1FF.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ch341dll.lib /nologo /subsystem:console /incremental:no /pdb:"Release/ch341_spi_flash.pdb" /machine:I386 /out:"Release/ch341_spi_flash.exe" -.\Release\ch341_spi_flash.obj -] -Creating command line "link.exe @C:\DOCUME~1\szk\LOCALS~1\Temp\RSP1FF.tmp" -

Output Window

-Compiling... -ch341_spi_flash.C -Linking... - - - -

Results

-ch341_spi_flash.exe - 0 error(s), 0 warning(s) -

---------------------Configuration: ch341_spi_flash - Win32 Debug-------------------- -

-

Command Lines

-Creating temporary file "C:\DOCUME~1\szk\LOCALS~1\Temp\RSP201.tmp" with contents -[ -/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/ch341_spi_flash.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c -"H:\ch34x\usb_parport\szk_ch341_spi_flash\obj\ch341_spi_flash\ch341_spi_flash.C" -] -Creating command line "cl.exe @C:\DOCUME~1\szk\LOCALS~1\Temp\RSP201.tmp" -Creating temporary file "C:\DOCUME~1\szk\LOCALS~1\Temp\RSP202.tmp" with contents -[ -kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ch341dll.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/ch341_spi_flash.pdb" /debug /machine:I386 /out:"Debug/ch341_spi_flash.exe" /pdbtype:sept -.\Debug\ch341_spi_flash.obj -] -Creating command line "link.exe @C:\DOCUME~1\szk\LOCALS~1\Temp\RSP202.tmp" -

Output Window

-Compiling... -ch341_spi_flash.C -Linking... - - - -

Results

-ch341_spi_flash.exe - 0 error(s), 0 warning(s) -
- - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" deleted file mode 100644 index e36514b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/SPI\350\257\273\345\206\231FLASH\347\244\272\344\276\213\344\273\243\347\240\201/ch341_spi_flash/path" +++ /dev/null @@ -1 +0,0 @@ -H:\\ch34x\\usb_parport\\szk_ch341_spi_flash\\obj\\ch341_spi_flash\\Release\\test \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" deleted file mode 100644 index 05e6dca..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/DRVSETUP64/DRVSETUP64.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" deleted file mode 100644 index 42ee37f..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/SETUP.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" deleted file mode 100644 index c9048ae..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" deleted file mode 100644 index 397b6b9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.INF" +++ /dev/null @@ -1,117 +0,0 @@ -; USBIOX.INF -; Driver for USB=>EPP/I2C/SPI... chip V2.2 -; WDM for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7 -; Copyright (C) W.ch 2001-2009 -; - -[Version] -Signature = "$Chicago$" -Class = WCH -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %WinChipHead% -DriverVer = 06/05/2009, 2.2.2009.06 - -[ControlFlags] -ExcludeFromSelect = USB\VID_1A86&PID_5512 -ExcludeFromSelect = USB\VID_4348&PID_5512 - -[ClassInstall32] -Addreg = WCHReg - -[ClassInstall] -Addreg = WCHReg - -[WCHReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%WinChipHead% = WinChipHead,NT,NTamd64 - -[WinChipHead] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[WinChipHead.NT] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[WinChipHead.NTamd64] -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_1A86&PID_5512 -%USBIOX.DeviceDesc% = USBIOX.Install, USB\VID_4348&PID_5512 - -[USBIOX.Install] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.9X.AddReg - -[USBIOX.Install.NT] -CopyFiles = USBIOX.CopyFiles.SYS, USBIOX.CopyFiles.DLL -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS] -USBIOX.SYS, , , 2 - -[USBIOX.CopyFiles.DLL] -USBIOX.DLL, , , 2 - -[USBIOX.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , USBIOX.SYS - -[USBIOX.NT.AddReg] - -[USBIOX.Install.NT.Services] -AddService = USBIOX, 2, USBIOX.Service - -[USBIOX.Service] -DisplayName = "USBIOX" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX.SYS - -;64bit os -[USBIOX.Install.NTamd64] -CopyFiles = USBIOX.CopyFiles.SYS64, USBIOX.CopyFiles.DLL64 -AddReg = USBIOX.NT.AddReg - -[USBIOX.CopyFiles.SYS64] -USBIOX64.SYS, , , 2 - -[USBIOX.CopyFiles.DLL64] -USBIOX.DLL, , , 2 - -[USBIOX.Install.NTamd64.Services] -AddService = USBIOX64, 2, USBIOX.Service64 - -[USBIOX.Service64] -DisplayName = "USBIOX64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\USBIOX64.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -USBIOX.CopyFiles.SYS = 10, System32\Drivers -USBIOX.CopyFiles.DLL = 11 -USBIOX.CopyFiles.SYS64 = 10, System32\Drivers -USBIOX.CopyFiles.DLL64 = 10, Syswow64 - -[SourceDisksFiles] -USBIOX.SYS = 1 -USBIOX.DLL = 1 -USBIOX64.SYS = 1 - -[SourceDisksNames] -1 = %DISK_NAME%, USBIOX.SYS, , - -[SourceDisksNames.amd64] -1 = %DISK_NAME%, USBIOX64.SYS, , - -[Strings] -ClassName = "Interface" -WinChipHead = "WCH" -USBIOX.DeviceDesc = "USB-IO" -DISK_NAME = "USB Parallel Installation Disk" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" deleted file mode 100644 index 7d3e2d5..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" deleted file mode 100644 index 5f75bb3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/DRIVER/USBIOX64.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" deleted file mode 100644 index f15733b..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.H" +++ /dev/null @@ -1,684 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19, 2008.10.15 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.1 -// 南京沁恒电子有限公司 作者: W.ch 2008.10 -// CH341-DLL V2.1 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI USBIO_OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI USBIO_CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI USBIO_GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI USBIO_DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI USBIO_GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI USBIO_ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI USBIO_ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI USBIO_AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI USBIO_InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI USBIO_ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI USBIO_WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI USBIO_EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI USBIO_MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI USBIO_SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI USBIO_SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI USBIO_ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI USBIO_WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI USBIO_GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI USBIO_GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI USBIO_FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI USBIO_SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI USBIO_SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI USBIO_StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI USBIO_ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI USBIO_WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI USBIO_GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI USBIO_SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI USBIO_Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI USBIO_StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI USBIO_StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI USBIO_StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI USBIO_BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI USBIO_SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI USBIO_QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI USBIO_QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI USBIO_ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI USBIO_ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI USBIO_SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI USBIO_SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - USBIO_OpenDevice - USBIO_CloseDevice - USBIO_SetupSerial - USBIO_ReadData - USBIO_WriteData - USBIO_SetBufUpload - USBIO_QueryBufUpload - USBIO_SetBufDownload - USBIO_QueryBufDownload - USBIO_SetDeviceNotify - USBIO_GetStatus -// 以上是主要API,以下是次要API - USBIO_GetVersion - USBIO_DriverCommand - USBIO_GetDrvVersion - USBIO_ResetDevice - USBIO_GetDeviceDescr - USBIO_GetConfigDescr - USBIO_SetIntRoutine - USBIO_ReadInter - USBIO_AbortInter - USBIO_AbortRead - USBIO_AbortWrite - USBIO_ReadI2C - USBIO_WriteI2C - USBIO_SetExclusive - USBIO_SetTimeout - USBIO_GetDeviceName - USBIO_GetVerIC - USBIO_FlushBuffer - USBIO_WriteRead - USBIO_ResetInter - USBIO_ResetRead - USBIO_ResetWrite -*/ -HANDLE WINAPI USBIO_OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI USBIO_CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI USBIO_GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI USBIO_SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" deleted file mode 100644 index fe39fdc..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/USBIOX/PARALLEL/LIB_C/USBIOX.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" deleted file mode 100644 index f3f7825..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341PT.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" deleted file mode 100644 index f6c7c7a..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S64.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" deleted file mode 100644 index ec20708..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341S98.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" deleted file mode 100644 index 1855146..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.INF" +++ /dev/null @@ -1,186 +0,0 @@ -; CH341SER.INF -; Driver for CH341 (USB=>SERIAL chip) V3.3 -; WDM&VXD for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7 -; Copyright (C) W.ch 2001-2011 -; - -[Version] -Signature = "$Chicago$" -Class = Ports -ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} -Provider = %WinChipHead% -DriverVer = 11/04/2011, 3.3.2011.11 -CatalogFile.NT = CH341SER.CAT - -[ControlFlags] -ExcludeFromSelect = USB\VID_1A86&PID_7523 -ExcludeFromSelect = USB\VID_1A86&PID_5523 -ExcludeFromSelect = USB\VID_4348&PID_5523 -ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250 -ExcludeFromSelect = USBSERPORT\SER5523 -ExcludeFromSelect = CH341PORT\SER5523 - -[Manufacturer] -%WinChipHead% = WinChipHead,NT,NTamd64 - -[WinChipHead] -%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523&REV_0250 -%CH341S98.DeviceDesc% = CH341S98_Install, USBSERPORT\SER5523 -%CH341S98.DeviceDesc% = CH341S98_Install, CH341PORT\SER5523 - -[WinChipHead.NT] -%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NTamd64] -%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523&REV_0250 - -[CH341SER_Install] -DelFiles = CH341S98.DelFiles.SYS -CopyFiles = CH341SER.CopyFiles.SYS, CH341SER.CopyFiles.DLL -AddReg = CH341SER.9X.AddReg, CH341SER.AddReg - -[CH341SER_Install.NT] -CopyFiles = CH341SER.NT.CopyFiles.SYS, CH341SER.CopyFiles.DLL -AddReg = CH341SER.NT.AddReg, CH341SER.AddReg - -[CH341SER_Install.NT.HW] -AddReg = CH341SER.NT.HW.AddReg - -[CH341SER_Inst.NTamd64] -CopyFiles = CH341SER.NT.CopyFiles.SYSA64, CH341SER.CopyFiles.DLLA64 -AddReg = CH341SER.NT.AddReg, CH341SER.AddReg - -[CH341SER_Inst.NTamd64.HW] -AddReg = CH341SER.NT.HW.AddReg - -[CH341S98_Install] -DelFiles = CH341S98.DelFiles.SYS -CopyFiles = CH341S98.CopyFiles.VXD, CH341SER.CopyFiles.SYS -AddReg = CH341S98.9X.AddReg, CH341S98.AddReg - -;[CH341S98_Install.NT] - -[CH341S98.DelFiles.SYS] -CH341S98.SYS, , , 1 - -[CH341SER.CopyFiles.SYS] -CH341S98.SYS, , , 2 - -[CH341SER.NT.CopyFiles.SYS] -CH341SER.SYS, , , 2 - -[CH341SER.NT.CopyFiles.SYSA64] -CH341S64.SYS, , , 2 - -[CH341S98.CopyFiles.VXD] -CH341SER.VXD, , , 2 - -[CH341SER.CopyFiles.DLL] -CH341PT.DLL, , , 2 -;安装DLL是可选的,DLL可以用于识别CH341端口和监视CH341端口的插拔事件 - -[CH341SER.CopyFiles.DLLA64] -CH341PT.DLL, , , 2 -;安装DLL是可选的,DLL可以用于识别CH341端口和监视CH341端口的插拔事件 - -[CH341SER.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , CH341S98.SYS - -[CH341SER.NT.AddReg] -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[CH341SER.NT.HW.AddReg] -HKR,,"UpperFilters",0x00010000,"serenum" -;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉 - -[CH341S98.9X.AddReg] -HKR, , DevLoader, , *vcomm -HKR, , PortDriver, , CH341SER.VXD -HKR, , Contention, , *vcd -HKR, , ConfigDialog, , serialui.dll -HKR, , DCB, 3, 1C,00,00,00, 80,25,00,00, 11,00,00,00, 00,00,0A,00, 0A,00,08,00, 00,11,13,00, 00,00,00,00 -HKR, , PortSubClass, 1, 01 -HKR, , EnumPropPages, , "serialui.dll,EnumPropPages" -HKR, , Enumerator, , serenum.vxd -;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉 - -[CH341SER.AddReg] -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, WDM, 0x00010001, 0x00000032 -HKLM, SOFTWARE\WinChipHead\IC\CH341PORT, DLL, 0x00010001, 0x00000010 -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, Function, , "USB=>Serial" -;HKLM, SYSTEM\CurrentControlSet\Services\CH341SER, UserRemoval, 0x00010001, 0x00000001 -;上面这行用于在系统托盘中显示“安全删除USB转SERIAL硬件设备”,便于用户手工删除硬件 - -[CH341S98.AddReg] -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, VXD, 0x00010001, 0x00000023 - -[CH341SER_Install.NT.Services] -AddService = CH341SER, 2, CH341SER.Service -AddService = Serenum, , Serenum_Service_Inst - -[CH341SER_Inst.NTamd64.Services] -AddService = CH341SER_A64, 2, CH341SER.ServiceA64 -AddService = Serenum, , Serenum_Service_Inst - -[CH341SER.Service] -DisplayName = "CH341SER" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341SER.SYS - -[CH341SER.ServiceA64] -DisplayName = "CH341SER_A64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341S64.SYS - -[Serenum_Service_Inst] -DisplayName = "SerEnum" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\serenum.sys -LoadOrderGroup = PNP Filter - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -CH341S98.DelFiles.SYS = 11 -CH341SER.CopyFiles.SYS = 10, System32\Drivers -CH341SER.NT.CopyFiles.SYS = 10, System32\Drivers -CH341S98.CopyFiles.VXD = 11 -CH341SER.CopyFiles.DLL = 11 -CH341SER.CopyFiles.DLLA64 = 10, Syswow64 -CH341SER.NT.CopyFiles.SYSA64 = 10, System32\Drivers - -[SourceDisksFiles] -CH341SER.SYS = 1 -CH341S98.SYS = 1 -CH341SER.VXD = 1 -CH341PT.DLL = 1 -CH341S64.SYS = 1 - -[SourceDisksNames] -1 = %DISK_NAME%, , , - -[SourceDisksNames.amd64] -1 = %DISK_NAME%, , , - -[Strings] -WinChipHead = "wch.cn" -CH341SER.DeviceDesc = "USB-SERIAL CH341" -CH341S98.DeviceDesc = "USB-SERIAL CH341" -CH340SER.DeviceDesc = "USB-SERIAL CH340" -CH341ASER.DeviceDesc = "USB-SERIAL CH341A" -DISK_NAME = "CH341 Serial Installation Disk" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" deleted file mode 100644 index 4b02b31..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" deleted file mode 100644 index 1c04d3d..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/CH341SER.VXD" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" deleted file mode 100644 index 1d19676..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/DRVSETUP64/DRVSETUP64.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" deleted file mode 100644 index c0edb0e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/SETUP.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" deleted file mode 100644 index 46e2421..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/CH341SER/ch341SER.CAT" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" deleted file mode 100644 index 701d167..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.BAS" +++ /dev/null @@ -1,55 +0,0 @@ -Attribute VB_Name = "CH341PTDLL" -' 2005.07.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http:'www.winchiphead.com ** -'**************************************** -'** DLL for USB interface chip CH341 ** -'** C, VC5.0 ** -'**************************************** -' -' USB总线接口芯片CH341端口应用层接口库 V1.0 -' 南京沁恒电子有限公司 作者: W.ch 2005.07 -' CH341-Port-DLL V1.0 -' 运行环境: Windows 98/ME, Windows 2000/XP -' support USB chip: CH341, CH341A -' USB => Serial, Parallel -' - - - -Public Const MAX_DEVICE_PATH_SIZE = 128 ' 设备名称的最大字符数 -Public Const MAX_DEVICE_ID_SIZE = 64 ' 设备ID的最大字符数 - -Declare Function CH341PtGetVersion Lib "CH341PT.DLL" () As Long ' 获得DLL版本号,返回版本号 - -Declare Function CH341PtHandleIsCH341 Lib "CH341PT.DLL" (ByVal iPortHandle As Long) As Boolean ' 指定已经打开的端口句柄 -' CH341PtHandleIsCH341 检查已经打开的端口是否为CH341端口 -' iPortHandle ' 指定已经打开的端口句柄 - -Declare Function CH341PtNameIsCH341 Lib "CH341PT.DLL" (ByVal iPortName As String) As Boolean -' CH341PtNameIsCH341 检查指定名称的端口是否为CH341端口 -' iPortName 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - -' 端口设备事件通知回调程序 -' sub mPCH341PT_NOTIFY_ROUTINE (byval iDevIndexAndEvent as long) ' 端口设备序号和事件及当前状态(参考下行说明) -' iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - -Declare Function CH341PtSetDevNotify Lib "CH341PT.DLL" (ByVal iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean ' 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 -' CH341PtSetDevNotify 设定端口设备事件通知程序 -' iDeviceID, 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" -' iNotifyRoutine 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - -'/* 即插即用设备的应用程序编程参考 -'1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -'2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -'3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -'4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, -' 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, -' 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -'5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -'6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -'*/ - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" deleted file mode 100644 index 84447c6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.H" +++ /dev/null @@ -1,67 +0,0 @@ -// 2005.07.28 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341端口应用层接口库 V1.0 -// 南京沁恒电子有限公司 作者: W.ch 2005.07 -// CH341-Port-DLL V1.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Serial, Parallel -// - -#ifndef _CH341_PORT_H -#define _CH341_PORT_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -ULONG WINAPI CH341PtGetVersion( ); // 获得DLL版本号,返回版本号 - - -BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 - HANDLE iPortHandle ); // 指定已经打开的端口句柄 - - -BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 - PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - - -typedef VOID ( CALLBACK * mPCH341PT_NOTIFY_ROUTINE ) ( // 端口设备事件通知回调程序 - LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明) -// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - - -BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序 - PCHAR iDeviceID, // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" - mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -/* 即插即用设备的应用程序编程参考 -1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, - 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, - 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -*/ - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_PORT_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" deleted file mode 100644 index 9788f23..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" deleted file mode 100644 index fe7d331..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/DLL_LIB/CH341PT.PAS" +++ /dev/null @@ -1,59 +0,0 @@ -unit CH341PTDLL; - -interface -// 2005.07.28 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341端口应用层接口库 V1.0 -// 南京沁恒电子有限公司 作者: W.ch 2005.07 -// CH341-Port-DLL V1.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Serial, Parallel -// - -const MAX_DEVICE_PATH_SIZE = 128 ; // 设备名称的最大字符数 - MAX_DEVICE_ID_SIZE= 64 ; // 设备ID的最大字符数 - - -Function CH341PtGetVersion( ):cardinal;stdcall; external 'CH341PT.DLL'; // 获得DLL版本号,返回版本号 - - -Function CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 - iPortHandle:cardinal ):boolean;stdcall; external 'CH341PT.DLL'; // 指定已经打开的端口句柄 - - -Function CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 - iPortName:PCHAR ):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - - -type mPCH341PT_NOTIFY_ROUTINE=Procedure ( // 端口设备事件通知回调程序 - iDevIndexAndEvent:integer );stdcall; // 端口设备序号和事件及当前状态(参考下行说明) -// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - - -Function CH341PtSetDevNotify( // 设定端口设备事件通知程序 - iDeviceID:PCHAR; // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" - iNotifyRoutine:mPCH341PT_NOTIFY_ROUTINE):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -{/* 即插即用设备的应用程序编程参考 -1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, - 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, - 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -*/} - -implementation - -end. diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" deleted file mode 100644 index df64a5d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/README.TXT" +++ /dev/null @@ -1,195 +0,0 @@ -CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序, -CH341的USB转串口支持大多数常用的串口监控及调试工具程序。 - -驱动安装方法: -1. 标准INF文件安装方法 - WINDOWS提示找到新硬件,指定驱动程序所在目录DRIVER,自动安装驱动, - 如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中, - 选择带问号的USB设备,更新驱动程序并指定目录。 -2. 使用驱动程序安装工具 - 直接使用CH341SER.EXE安装包,可以安装/升级/卸载驱动程序, - 该方法更适用于最终用户。 - -CH341串口使用方法: - CH341实现USB转串口,在逻辑功能方面的使用方法与普通计算机串口相同。 - 与普通计算机串口的区别: - CH341提供的是仿真串口,所以不支持串口本身的纯硬件操作,例如I/O操作, - 普通计算机串口是静态设备,而CH341串口是动态设备,理论上随时会断开, - CH341的附加功能(下面有介绍):读取外部串行EEPROM,支持更高波特率。 - 提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”, - 打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。 - -注意事项: - CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, - 不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), - 也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。 - - 如果在应用程序使用CH341串口的过程中,CH341串口设备从USB插座中断开, - 那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。 - - 如果在CH341串口通讯过程中发生错误,极有可能是CH341串口已经物理断开, - 所以在检测到错误后建议关闭CH341串口,稍等两秒后再重新打开串口通讯。 - - 采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开, - 从而使串口应用程序能够及时打开和关闭CH341串口。 - 串口动态链接库CH341PT.DLL提供了API,可以监视CH341串口插拔事件, - 可以搜索和识别CH341串口等,具体需参考CH341PT.H文件。 - - 如果通讯波特率较高,建议设置较大的缓冲区,尤其在WINDOWS 98/ME下, - 线程调度能力和USB实时性都比WINDOWS 2000/XP差,如果串口接收缓冲区较小, - 那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。 - - 由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输, - 所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至 - 两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。 - -******************************************************************************* - -如果需要速率控制(流控制),建议不要使用MODEM信号控制,因为其效率较低, -建议用CH341的TEN#和RDY#实现纯硬件的速率控制,其中TEN#为输入,RDY#为输出, -当TEN#输入为低电平时允许CH341从串口发送数据,高电平时CH341将暂停发送数据, -当RDY#输出为低电平时说明CH341可以接收串口数据,高电平说明CH341正忙而不能接收。 - -如果计算机及单片机不忙,或者波特率在115200bps以下时,通常不需要速率控制, -如果波特率再高或者计算机及单片机较忙,才需要考虑采用TEN#和RDY#进行速率控制。 - -CH341用于串口时,其硬件最简单时只需要三根线:GND,TXD,RXD, -可以直接与单片机相连,波特率支持从50bps到2Mbps,例如MCS51单片机: - CH341引脚 MCS51单片机引脚 - GND <=> GND - TXD <=> RXD - RXD <=> TXD - TEN接GND - -与单片机相连时,通常将CH341的TEN#引脚直接接地,总是允许CH341发送数据, -如果预算单片机可能会来不及接收串口数据,那么应该将TEN#连接到单片机的I/O引脚, -当单片机不忙时,由单片机将CH341的TEN#置为低电平,允许CH341从串口发出数据, -当单片机较忙时,由单片机将CH341的TEN#置为高电平,CH341将暂停从串口发出数据 - -CH341的TNOW引脚是收发状态,可以用于半双工通讯的收发切换,例如RS485的收发切换。 - -******************************************************************************* -如何识别CH341串口,如何知道CH341的串口号COM? - -在首次安装CH341串口驱动时,CH341串口号由WINDOWS自动分配(通常从COM3开始分配), -安装完成后可以在设备管理中点其属性修改串口号。由于应用程序事先无法知道CH341的 -实际串口号,所以必须使用一些特殊方法识别出CH341串口,然后才能使用。 - -在WINDOWS 98/ME系统下,CH341串口号与当前硬件资源配置有关,默认为自动分配资源, - 从而排在当前实际串口号之后,可以在串口属性中选择CH341资源配置来指定串口号。 -在WINDOWS 2000/XP系统下,CH341串口号与当前所在USB端口有关,由首次安装时分配, - WINDOWS记忆各USB端口CH341的串口号,可以在串口属性中通过高级选项指定串口号。 - -比较简单但很费事的方法是,在首次安装CH341串口后,用程序修改注册表或者点其属性, -人为将CH341的串口号修改为COM5,避开常用的COM1到COM4,该方法简单但是有可能冲突。 - -常规的识别方法是采用软件查询方法: - 尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, - 该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, - 那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 - 收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: - 从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), - 如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", - 注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, - 如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 - 例如,用串口监控/调试工具软件演示: - 将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出特征字符串,为10个ASCII码数据: $CH341Ser? - 发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W - -建议使用CH341PT.DLL动态库,应用程序可以直接调用DLL中相应的API识别CH341串口, - 识别速度快,效率高。注意,CH341PT.DLL在INF中定义为可选安装,默认是安装的 - -******************************************************************************* -关于读取外部串行EEPROM - -CH341可以外接I2C接口的器件,例如常用的24系列串行非易失存储器EEPROM, -支持24C01A,24C02,24C04,24C08,24C16等,以及与之时序兼容的器件, -24系列EEPROM既可以用于配置CH341,也可以用于断电期间保存重要数据。 -例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等。 -如果需要支持24C64、24C256、24C512以及更大容量的EEPROM,请参考CH341评估板资料。 - -应用程序可以按串口方式读写CH341所连接的24系列EEPROM,方法是: - 设置CH341串口波特率为300,然后以4字节为一组的命令包写串口, - 命令包的首字节必须是@,地址符,对应的十六进制数为40H, - 命令包的第二字节是24系列EEPROM的设备地址,位0是方向标志,0为写,1为读, - 命令包的第三字节是24系列EEPROM的单元地址, - 命令包的第四字节是准备写入24系列EEPROM的一个数据,如果是读操作则指定为00H, - 如果是写操作,那么命令发送成功就说明写成功,对于EEPROM还要延时10mS才能下一个操作, - 如果是读操作,那么命令发送成功后,可以从串口接收到一个字节的数据,就是读出的数据 - -例如,CH341连接24C0X,A2=A1=A0=GND,将仿真串口的波特率选择为300bps, -可以用串口监控/调试工具软件演示: -1、发出命令包,为4个十六进制数据: 40 A1 01 00 - 将24C0X中地址为01H的数据读出,可以从串口接收到一个字节的数据 -2、发出命令包,为4个十六进制数据: 40 A0 2A 69 - 将一个字节的数据69H写到24C0X中地址为2AH的单元,通常等待10mS后才能进行下一个操作 -3、发出命令包,为4个十六进制数据: 40 A5 E7 00 - 将24C0X中地址为02E7H的数据读出,可以从串口接收到一个字节的数据 - 注意,只有24C08和24C16中有地址为02E7H的数据单元 - -******************************************************************************* -关于支持非标准波特率或者更高通讯波特率 - -对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, -应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: - 设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, - 命令包的首字节必须是#,井字符,对应的十六进制数为23H, - 命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, - 命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, - 也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, - 在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, - 而不会被作为数据从串口真正发出,当该操作成功返回后, - CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, - 如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。 - -例如,用串口监控/调试工具软件演示: -1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为6个ASCII码数据: #9600_ - 发送成功后,CH341将实际工作于9600bps -2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为8个ASCII码数据: #460800_ - 发送成功后,CH341将实际工作于460800bps -3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为9个ASCII码数据: #1000000_ - 发送成功后,CH341将实际工作于1000000bps - -CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, -CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, -所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, -由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, -所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: - X = 6000000 除以波特率后的值 - Y = X 四舍五入后的值 - 误差 = ( Y - X ) / X - -以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% - 921600 (12MHz), 460800, 307200 (12MHz), - 230400, 153600, 128000 (0.27%), 115200, - 76800, 57600, 56000, 38400, 33600, - 28800, 19200, 14400, 9600, 7200, - 4800, 3600, 2400, 1800, 1200, - 900, 600, 300, 150, 134.5, - 110, 100, 75, 50, 2000000, - 1500000, 1200000, 1000000, 750000, 500000, - 375000, 250000, 200000, 187500, 100000, - 93750, 75000, 50000, 25000, 10000 -其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 -但是为了可靠进行通讯,建议不要使用误差大于1%的波特率。 - -******************************************************************************* -USB设备驱动程序与仿真串口驱动程序 - -CH341串口硬件的默认驱动程序是仿真串口驱动程序, -即在计算机端多出一个串口,并且在下位机端CH341芯片也使用串口通讯。 -计算机端应用程序通过操作仿真串口实现USB数据传输,其用法与普通串口相同。 - -如果不希望在计算机端仿真为串口,那么可以使用USB设备驱动程序, -即在计算机端多出一个USB设备,但是在下位机端CH341芯片仍然使用串口通讯。 -计算机端应用程序通过调用DLL提供的API实现USB数据传输, -其用法与CH341并口、CH372、CH375类似,可以参考相关的应用程序的源程序。 - -CH341串口硬件的USB设备驱动与并口硬件的USB设备驱动CH341PAR完全相同, -区别仅在于驱动安装信息文件INF中的PID不同(参考CH341PAR的INF中的注释行说明)。 - -******************************************************************************* diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" deleted file mode 100644 index feda97b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\344\270\262\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" deleted file mode 100644 index c9f2eb1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341DLL.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" deleted file mode 100644 index d890020..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341W64.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" deleted file mode 100644 index 9193156..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.CAT" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" deleted file mode 100644 index b89166d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.INF" +++ /dev/null @@ -1,178 +0,0 @@ -; CH341WDM.INF -; Driver for CH341 (USB=>EPP/I2C/SPI... chip) V2.2 -; WDM for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7 -; Copyright (C) W.ch 2001-2009 -; - -[Version] -Signature = "$Chicago$" -Class = WCH -ClassGuid = {77989ADF-06DB-4025-92E8-40D902C03B0A} -Provider = %WinChipHead% -DriverVer = 06/05/2009, 2.2.2009.06 -CatalogFile.NT = CH341WDM.CAT - -[ControlFlags] -ExcludeFromSelect = USB\VID_1A86&PID_5512 -ExcludeFromSelect = USB\VID_4348&PID_5512 -;ExcludeFromSelect = USB\VID_1A86&PID_7523 -;ExcludeFromSelect = USB\VID_1A86&PID_5523 -;ExcludeFromSelect = USB\VID_4348&PID_5523 -;ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250 - -[ClassInstall32] -Addreg = WCHReg - -[ClassInstall] -Addreg = WCHReg - -[WCHReg] -HKR, , , 0, %ClassName% -HKR, , Icon, , -5 -HKR, , NoInstallClass, , 1 - -[Manufacturer] -%WinChipHead% = WinChipHead,NT,NTamd64,NTia64 - -[WinChipHead] -%CH341A.DeviceDesc% = CH341.Install, USB\VID_1A86&PID_5512 -%CH341.DeviceDesc% = CH341.Install, USB\VID_4348&PID_5512 -;%CH340SER.DeviceDesc% = CH341.Install, USB\VID_1A86&PID_7523 -;%CH341ASER.DeviceDesc% = CH341.Install, USB\VID_1A86&PID_5523 -;%CH341SER.DeviceDesc% = CH341.Install, USB\VID_4348&PID_5523 -;%CH340SER.DeviceDesc% = CH341.Install, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NT] -%CH341A.DeviceDesc% = CH341.Install.NT, USB\VID_1A86&PID_5512 -%CH341.DeviceDesc% = CH341.Install.NT, USB\VID_4348&PID_5512 -;%CH340SER.DeviceDesc% = CH341.Install.NT.NTamd64, USB\VID_1A86&PID_7523 -;%CH341ASER.DeviceDesc% = CH341.Install.NT, USB\VID_1A86&PID_5523 -;%CH341SER.DeviceDesc% = CH341.Install.NT, USB\VID_4348&PID_5523 -;%CH340SER.DeviceDesc% = CH341.Install.NT, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NTamd64] -%CH341A.DeviceDesc% = CH341.Install.NTamd64, USB\VID_1A86&PID_5512 -%CH341.DeviceDesc% = CH341.Install.NTamd64, USB\VID_4348&PID_5512 -;%CH340SER.DeviceDesc% = CH341.Install.NTamd64, USB\VID_1A86&PID_7523 -;%CH341ASER.DeviceDesc% = CH341.Install.NTamd64, USB\VID_1A86&PID_5523 -;%CH341SER.DeviceDesc% = CH341.Install.NTamd64, USB\VID_4348&PID_5523 -;%CH340SER.DeviceDesc% = CH341.Install.NTamd64, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NTia64] -%CH341A.DeviceDesc% = CH341.Install.NTia64, USB\VID_1A86&PID_5512 -%CH341.DeviceDesc% = CH341.Install.NTia64, USB\VID_4348&PID_5512 -;%CH340SER.DeviceDesc% = CH341.Install.NTia64, USB\VID_1A86&PID_7523 -;%CH341ASER.DeviceDesc% = CH341.Install.NTia64, USB\VID_1A86&PID_5523 -;%CH341SER.DeviceDesc% = CH341.Install.NTia64, USB\VID_4348&PID_5523 -;%CH340SER.DeviceDesc% = CH341.Install.NTia64, USB\VID_4348&PID_5523&REV_0250 - -[CH341.Install] -CopyFiles = CH341.CopyFiles.SYS, CH341.CopyFiles.DLL -AddReg = CH341.9X.AddReg, CH341.AddReg - -[CH341.Install.NT] -CopyFiles = CH341.CopyFiles.SYS, CH341.CopyFiles.DLL -AddReg = CH341.NT.AddReg, CH341.AddReg - -[CH341.Install.NTamd64] -CopyFiles = CH341.CopyFiles.SYSA64, CH341.CopyFiles.DLL -AddReg = CH341.NT.AddReg, CH341.AddReg - -[CH341.Install.NTia64] -CopyFiles = CH341.CopyFiles.SYSI64, CH341.CopyFiles.DLL -AddReg = CH341.NT.AddReg, CH341.AddReg - -[CH341.CopyFiles.SYS] -CH341WDM.SYS, , , 2 - -[CH341.CopyFiles.SYSA64] -CH341W64.SYS, , , 2 - -[CH341.CopyFiles.SYSI64] -;CH341I64.SYS, , , 2 - -[CH341.CopyFiles.DLL] -CH341DLL.DLL, , , 2 - -[CH341.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , CH341WDM.SYS - -[CH341.NT.AddReg] - -[CH341.AddReg] -HKLM, SOFTWARE\WinChipHead\IC\CH341, WDM, 0x00010001, 0x00000022 -HKLM, SOFTWARE\WinChipHead\IC\CH341, DLL, 0x00010001, 0x00000021 -HKLM, SOFTWARE\WinChipHead\IC\CH341, Function, , "USB=>Parallel" - -[CH341.Install.NT.Services] -AddService = CH341, 2, CH341.Service - -[CH341.Install.NTamd64.Services] -AddService = CH341_A64, 2, CH341.ServiceA64 - -[CH341.Install.NTia64.Services] -AddService = CH341_I64, 2, CH341.ServiceI64 - -[CH341.Service] -DisplayName = "CH341WDM" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341WDM.SYS - -[CH341.ServiceA64] -DisplayName = "CH341WDM_A64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341W64.SYS - -[CH341.ServiceI64] -DisplayName = "CH341WDM_I64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341I64.SYS - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -CH341.CopyFiles.DLL = 11 -CH341.CopyFiles.SYS = 10, System32\Drivers -CH341.CopyFiles.SYSA64 = 10, System32\Drivers -;CH341.CopyFiles.SYSI64 = 10, System32\Drivers - -[SourceDisksFiles] -CH341WDM.SYS = 1 -CH341DLL.DLL = 1 -CH341W64.SYS = 1 -;CH341I64.SYS = 1 - -[SourceDisksNames] -1 = %DISK_NAME%, CH341WDM.SYS, , - -[SourceDisksNames.amd64] -1 = %DISK_NAME%, CH341W64.SYS, , - -[SourceDisksNames.ia64] -1 = %DISK_NAME%, CH341I64.SYS, , - -[Strings] -ClassName = "Interface" -WinChipHead = "wch.cn" -CH341.DeviceDesc = "USB-EPP/I2C... CH341" -CH341A.DeviceDesc = "USB-EPP/I2C... CH341A" -CH341SER.DeviceDesc = "USB-SERIAL CH341" -CH340SER.DeviceDesc = "USB-SERIAL CH340" -CH341ASER.DeviceDesc = "USB-SERIAL CH341A" -DISK_NAME = "CH341 Parallel Installation Disk" - -[Strings.0804] -ClassName = "外部接口" -WinChipHead = "wch.cn" -CH341.DeviceDesc = "USB-EPP/I2C... CH341" -CH341A.DeviceDesc = "USB-EPP/I2C... CH341A" -CH341SER.DeviceDesc = "USB-SERIAL CH341" -CH340SER.DeviceDesc = "USB-SERIAL CH340" -CH341ASER.DeviceDesc = "USB-SERIAL CH341A" -DISK_NAME = "CH341 Parallel Installation Disk" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" deleted file mode 100644 index dbb47da..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/DRIVER/CH341WDM.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" deleted file mode 100644 index 0b91cc6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.H" +++ /dev/null @@ -1,683 +0,0 @@ -// 2004.05.28, 2004.10.20, 2005.01.08, 2005.03.25, 2005.04.28, 2005.07.18, 2005.07.28, 2005.09.19, 2007.12.19, 2008.10.15 -//**************************************** -//** Copyright (C) W.ch 1999-2008 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341并口应用层接口库 V2.1 -// 南京沁恒电子有限公司 作者: W.ch 2008.10 -// CH341-DLL V2.1 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Parallel, I2C, SPI, JTAG ... -// - -#ifndef _CH341_DLL_H -#define _CH341_DLL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define mOFFSET( s, m ) ( (ULONG) & ( ( ( s * ) 0 ) -> m ) ) // 定义获取结构成员相对偏移地址的宏 - -#ifndef max -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) // 较大值 -#endif - -#ifndef min -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) // 较小值 -#endif - -#ifdef ExAllocatePool -#undef ExAllocatePool // 删除带TAG的内存分配 -#endif - -#ifndef NTSTATUS -typedef LONG NTSTATUS; // 返回状态 -#endif - - -typedef struct _USB_SETUP_PKT { // USB控制传输的建立阶段的数据请求包结构 - UCHAR mUspReqType; // 00H 请求类型 - UCHAR mUspRequest; // 01H 请求代码 - union { - struct { - UCHAR mUspValueLow; // 02H 值参数低字节 - UCHAR mUspValueHigh; // 03H 值参数高字节 - }; - USHORT mUspValue; // 02H-03H 值参数 - }; - union { - struct { - UCHAR mUspIndexLow; // 04H 索引参数低字节 - UCHAR mUspIndexHigh; // 05H 索引参数高字节 - }; - USHORT mUspIndex; // 04H-05H 索引参数 - }; - USHORT mLength; // 06H-07H 数据阶段的数据长度 -} mUSB_SETUP_PKT, *mPUSB_SETUP_PKT; - - -#define mCH341_PACKET_LENGTH 32 // CH341支持的数据包的长度 -#define mCH341_PKT_LEN_SHORT 8 // CH341支持的短数据包的长度 - - -typedef struct _WIN32_COMMAND { // 定义WIN32命令接口结构 - union { - ULONG mFunction; // 输入时指定功能代码或者管道号 - NTSTATUS mStatus; // 输出时返回操作状态 - }; - ULONG mLength; // 存取长度,返回后续数据的长度 - union { - mUSB_SETUP_PKT mSetupPkt; // USB控制传输的建立阶段的数据请求 - UCHAR mBuffer[ mCH341_PACKET_LENGTH ]; // 数据缓冲区,长度为0至255B - }; -} mWIN32_COMMAND, *mPWIN32_COMMAND; - - -// WIN32应用层接口命令 -#define IOCTL_CH341_COMMAND ( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f34 << 2 | METHOD_BUFFERED ) // 专用接口 - -#define mWIN32_COMMAND_HEAD mOFFSET( mWIN32_COMMAND, mBuffer ) // WIN32命令接口的头长度 - -#define mCH341_MAX_NUMBER 16 // 最多同时连接的CH341数 - -#define mMAX_BUFFER_LENGTH 0x1000 // 数据缓冲区最大长度4096 - -#define mMAX_COMMAND_LENGTH ( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH ) // 最大数据长度加上命令结构头的长度 - -#define mDEFAULT_BUFFER_LEN 0x0400 // 数据缓冲区默认长度1024 - -#define mDEFAULT_COMMAND_LEN ( mWIN32_COMMAND_HEAD + mDEFAULT_BUFFER_LEN ) // 默认数据长度加上命令结构头的长度 - - -// CH341端点地址 -#define mCH341_ENDP_INTER_UP 0x81 // CH341的中断数据上传端点的地址 -#define mCH341_ENDP_INTER_DOWN 0x01 // CH341的中断数据下传端点的地址 -#define mCH341_ENDP_DATA_UP 0x82 // CH341的数据块上传端点的地址 -#define mCH341_ENDP_DATA_DOWN 0x02 // CH341的数据块下传端点的地址 - - -// 设备层接口提供的管道操作命令 -#define mPipeDeviceCtrl 0x00000004 // CH341的综合控制管道 -#define mPipeInterUp 0x00000005 // CH341的中断数据上传管道 -#define mPipeDataUp 0x00000006 // CH341的数据块上传管道 -#define mPipeDataDown 0x00000007 // CH341的数据块下传管道 - -// 应用层接口的功能代码 -#define mFuncNoOperation 0x00000000 // 无操作 -#define mFuncGetVersion 0x00000001 // 获取驱动程序版本号 -#define mFuncGetConfig 0x00000002 // 获取USB设备配置描述符 -#define mFuncSetTimeout 0x00000009 // 设置USB通讯超时 -#define mFuncSetExclusive 0x0000000b // 设置独占使用 -#define mFuncResetDevice 0x0000000c // 复位USB设备 -#define mFuncResetPipe 0x0000000d // 复位USB管道 -#define mFuncAbortPipe 0x0000000e // 取消USB管道的数据请求 - -// CH341并口专用的功能代码 -#define mFuncSetParaMode 0x0000000f // 设置并口模式 -#define mFuncReadData0 0x00000010 // 从并口读取数据块0 -#define mFuncReadData1 0x00000011 // 从并口读取数据块1 -#define mFuncWriteData0 0x00000012 // 向并口写入数据块0 -#define mFuncWriteData1 0x00000013 // 向并口写入数据块1 -#define mFuncWriteRead 0x00000014 // 先输出再输入 -#define mFuncBufferMode 0x00000020 // 设定缓冲上传模式及查询缓冲区中的数据长度 -#define mFuncBufferModeDn 0x00000021 // 设定缓冲下传模式及查询缓冲区中的数据长度 - - -// USB设备标准请求代码 -#define mUSB_CLR_FEATURE 0x01 -#define mUSB_SET_FEATURE 0x03 -#define mUSB_GET_STATUS 0x00 -#define mUSB_SET_ADDRESS 0x05 -#define mUSB_GET_DESCR 0x06 -#define mUSB_SET_DESCR 0x07 -#define mUSB_GET_CONFIG 0x08 -#define mUSB_SET_CONFIG 0x09 -#define mUSB_GET_INTERF 0x0a -#define mUSB_SET_INTERF 0x0b -#define mUSB_SYNC_FRAME 0x0c - -// CH341控制传输的厂商专用请求类型 -#define mCH341_VENDOR_READ 0xC0 // 通过控制传输实现的CH341厂商专用读操作 -#define mCH341_VENDOR_WRITE 0x40 // 通过控制传输实现的CH341厂商专用写操作 - -// CH341控制传输的厂商专用请求代码 -#define mCH341_PARA_INIT 0xB1 // 初始化并口 -#define mCH341_I2C_STATUS 0x52 // 获取I2C接口的状态 -#define mCH341_I2C_COMMAND 0x53 // 发出I2C接口的命令 - -// CH341并口操作命令代码 -#define mCH341_PARA_CMD_R0 0xAC // 从并口读数据0,次字节为长度 -#define mCH341_PARA_CMD_R1 0xAD // 从并口读数据1,次字节为长度 -#define mCH341_PARA_CMD_W0 0xA6 // 向并口写数据0,从次字节开始为数据流 -#define mCH341_PARA_CMD_W1 0xA7 // 向并口写数据1,从次字节开始为数据流 -#define mCH341_PARA_CMD_STS 0xA0 // 获取并口状态 - -// CH341A并口操作命令代码 -#define mCH341A_CMD_SET_OUTPUT 0xA1 // 设置并口输出 -#define mCH341A_CMD_IO_ADDR 0xA2 // MEM带地址读写/输入输出,从次字节开始为命令流 -#define mCH341A_CMD_PRINT_OUT 0xA3 // PRINT兼容打印方式输出,从次字节开始为数据流 -#define mCH341A_CMD_PWM_OUT 0xA4 // PWM数据输出的命令包,从次字节开始为数据流 -#define mCH341A_CMD_SHORT_PKT 0xA5 // 短包,次字节是该命令包的真正长度,再次字节及之后的字节是原命令包 -#define mCH341A_CMD_SPI_STREAM 0xA8 // SPI接口的命令包,从次字节开始为数据流 -//#define mCH341A_CMD_SIO_STREAM 0xA9 // SIO接口的命令包,从次字节开始为数据流 -#define mCH341A_CMD_I2C_STREAM 0xAA // I2C接口的命令包,从次字节开始为I2C命令流 -#define mCH341A_CMD_UIO_STREAM 0xAB // UIO接口的命令包,从次字节开始为命令流 -#define mCH341A_CMD_PIO_STREAM 0xAE // PIO接口的命令包,从次字节开始为数据流 - -// CH341A控制传输的厂商专用请求代码 -#define mCH341A_BUF_CLEAR 0xB2 // 清除未完成的数据 -#define mCH341A_I2C_CMD_X 0x54 // 发出I2C接口的命令,立即执行 -#define mCH341A_DELAY_MS 0x5E // 以亳秒为单位延时指定时间 -#define mCH341A_GET_VER 0x5F // 获取芯片版本 - -#define mCH341_EPP_IO_MAX ( mCH341_PACKET_LENGTH - 1 ) // CH341在EPP/MEM方式下单次读写数据块的最大长度 -#define mCH341A_EPP_IO_MAX 0xFF // CH341A在EPP/MEM方式下单次读写数据块的最大长度 - -#define mCH341A_CMD_IO_ADDR_W 0x00 // MEM带地址读写/输入输出的命令流:写数据,位6-位0为地址,下一个字节为待写数据 -#define mCH341A_CMD_IO_ADDR_R 0x80 // MEM带地址读写/输入输出的命令流:读数据,位6-位0为地址,读出数据一起返回 - -#define mCH341A_CMD_I2C_STM_STA 0x74 // I2C接口的命令流:产生起始位 -#define mCH341A_CMD_I2C_STM_STO 0x75 // I2C接口的命令流:产生停止位 -#define mCH341A_CMD_I2C_STM_OUT 0x80 // I2C接口的命令流:输出数据,位5-位0为长度,后续字节为数据,0长度则只发送一个字节并返回应答 -#define mCH341A_CMD_I2C_STM_IN 0xC0 // I2C接口的命令流:输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答 -#define mCH341A_CMD_I2C_STM_MAX ( min( 0x3F, mCH341_PACKET_LENGTH ) ) // I2C接口的命令流单个命令输入输出数据的最大长度 -#define mCH341A_CMD_I2C_STM_SET 0x60 // I2C接口的命令流:设置参数,位2=SPI的I/O数(0=单入单出,1=双入双出),位1位0=I2C速度(00=低速,01=标准,10=快速,11=高速) -#define mCH341A_CMD_I2C_STM_US 0x40 // I2C接口的命令流:以微秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_MS 0x50 // I2C接口的命令流:以亳秒为单位延时,位3-位0为延时值 -#define mCH341A_CMD_I2C_STM_DLY 0x0F // I2C接口的命令流单个命令延时的最大值 -#define mCH341A_CMD_I2C_STM_END 0x00 // I2C接口的命令流:命令包提前结束 - -#define mCH341A_CMD_UIO_STM_IN 0x00 // UIO接口的命令流:输入数据D7-D0 -#define mCH341A_CMD_UIO_STM_DIR 0x40 // UIO接口的命令流:设定I/O方向D5-D0,位5-位0为方向数据 -#define mCH341A_CMD_UIO_STM_OUT 0x80 // UIO接口的命令流:输出数据D5-D0,位5-位0为数据 -#define mCH341A_CMD_UIO_STM_US 0xC0 // UIO接口的命令流:以微秒为单位延时,位5-位0为延时值 -#define mCH341A_CMD_UIO_STM_END 0x20 // UIO接口的命令流:命令包提前结束 - - -// CH341并口工作模式 -#define mCH341_PARA_MODE_EPP 0x00 // CH341并口工作模式为EPP方式 -#define mCH341_PARA_MODE_EPP17 0x00 // CH341A并口工作模式为EPP方式V1.7 -#define mCH341_PARA_MODE_EPP19 0x01 // CH341A并口工作模式为EPP方式V1.9 -#define mCH341_PARA_MODE_MEM 0x02 // CH341并口工作模式为MEM方式 -#define mCH341_PARA_MODE_ECP 0x03 // CH341A并口工作模式为ECP方式 - - -// I/O方向设置位定义,直接输入的状态信号的位定义,直接输出的位数据定义 -#define mStateBitERR 0x00000100 // 只读可写,ERR#引脚输入状态,1:高电平,0:低电平 -#define mStateBitPEMP 0x00000200 // 只读可写,PEMP引脚输入状态,1:高电平,0:低电平 -#define mStateBitINT 0x00000400 // 只读可写,INT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSLCT 0x00000800 // 只读可写,SLCT引脚输入状态,1:高电平,0:低电平 -#define mStateBitWAIT 0x00002000 // 只读可写,WAIT#引脚输入状态,1:高电平,0:低电平 -#define mStateBitDATAS 0x00004000 // 只写可读,DATAS#/READ#引脚输入状态,1:高电平,0:低电平 -#define mStateBitADDRS 0x00008000 // 只写可读,ADDRS#/ADDR/ALE引脚输入状态,1:高电平,0:低电平 -#define mStateBitRESET 0x00010000 // 只写,RESET#引脚输入状态,1:高电平,0:低电平 -#define mStateBitWRITE 0x00020000 // 只写,WRITE#引脚输入状态,1:高电平,0:低电平 -#define mStateBitSCL 0x00400000 // 只读,SCL引脚输入状态,1:高电平,0:低电平 -#define mStateBitSDA 0x00800000 // 只读,SDA引脚输入状态,1:高电平,0:低电平 - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -typedef VOID ( CALLBACK * mPCH341_INT_ROUTINE ) ( // 中断服务程序 - ULONG iStatus ); // 中断状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -HANDLE WINAPI CH341OpenDevice( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -VOID WINAPI CH341CloseDevice( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - - -ULONG WINAPI CH341GetVersion( ); // 获得DLL版本号,返回版本号 - - -ULONG WINAPI CH341DriverCommand( // 直接传递命令给驱动程序,出错则返回0,否则返回数据长度 - ULONG iIndex, // 指定CH341设备序号,V1.6以上DLL也可以是设备打开后的句柄 - mPWIN32_COMMAND ioCommand ); // 命令结构的指针 -// 该程序在调用后返回数据长度,并且仍然返回命令结构,如果是读操作,则数据返回在命令结构中, -// 返回的数据长度在操作失败时为0,操作成功时为整个命令结构的长度,例如读一个字节,则返回mWIN32_COMMAND_HEAD+1, -// 命令结构在调用前,分别提供:管道号或者命令功能代码,存取数据的长度(可选),数据(可选) -// 命令结构在调用后,分别返回:操作状态代码,后续数据的长度(可选), -// 操作状态代码是由WINDOWS定义的代码,可以参考NTSTATUS.H, -// 后续数据的长度是指读操作返回的数据长度,数据存放在随后的缓冲区中,对于写操作一般为0 - - -ULONG WINAPI CH341GetDrvVersion( ); // 获得驱动程序版本号,返回版本号,出错则返回0 - - -BOOL WINAPI CH341ResetDevice( // 复位USB设备 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetDeviceDescr( // 读取设备描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341GetConfigDescr( // 读取配置描述符 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存描述符 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341SetIntRoutine( // 设定中断服务程序 - ULONG iIndex, // 指定CH341设备序号 - mPCH341_INT_ROUTINE iIntRoutine ); // 指定中断服务程序,为NULL则取消中断服务,否则在中断时调用该程序 - - -BOOL WINAPI CH341ReadInter( // 读取中断数据 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存读取的中断状态数据,见下行 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 - - -BOOL WINAPI CH341AbortInter( // 放弃中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341SetParaMode( // 设置并口模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式 - - -BOOL WINAPI CH341InitParallel( // 复位并初始化并口,RST#输出低电平脉冲 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定并口模式: 0为EPP模式/EPP模式V1.7, 1为EPP模式V1.9, 2为MEM模式, >= 0x00000100 保持当前模式 - - -BOOL WINAPI CH341ReadData0( // 从0#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341ReadData1( // 从1#端口读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341AbortRead( // 放弃数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteData0( // 向0#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341WriteData1( // 向1#端口写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341AbortWrite( // 放弃数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341GetStatus( // 通过CH341直接输入数据和状态 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341ReadI2C( // 从I2C接口读取一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - PUCHAR oByte ); // 指向一个字节单元,用于保存读取的字节数据 - - -BOOL WINAPI CH341WriteI2C( // 向I2C接口写入一个字节数据 - ULONG iIndex, // 指定CH341设备序号 - UCHAR iDevice, // 低7位指定I2C设备地址 - UCHAR iAddr, // 指定数据单元的地址 - UCHAR iByte ); // 待写入的字节数据 - - -BOOL WINAPI CH341EppReadData( // EPP方式读数据: WR#=1, DS#=0, AS#=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppReadAddr( // EPP方式读地址: WR#=1, DS#=1, AS#=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341EppWriteData( // EPP方式写数据: WR#=0, DS#=0, AS#=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppWriteAddr( // EPP方式写地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的地址数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341EppSetAddr( // EPP方式设置地址: WR#=0, DS#=1, AS#=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - UCHAR iAddr ); // 指定EPP地址 - - -BOOL WINAPI CH341MemReadAddr0( // MEM方式读地址0: WR#=1, DS#/RD#=0, AS#/ADDR=0, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址0读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemReadAddr1( // MEM方式读地址1: WR#=1, DS#/RD#=0, AS#/ADDR=1, D0-D7=input - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存从地址1读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341MemWriteAddr0( // MEM方式写地址0: WR#=0, DS#/RD#=1, AS#/ADDR=0, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址0写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341MemWriteAddr1( // MEM方式写地址1: WR#=0, DS#/RD#=1, AS#/ADDR=1, D0-D7=output - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备向地址1写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -BOOL WINAPI CH341SetExclusive( // 设置独占使用当前CH341设备 - ULONG iIndex, // 指定CH341设备序号 - ULONG iExclusive ); // 为0则设备可以共享使用,非0则独占使用 - - -BOOL WINAPI CH341SetTimeout( // 设置USB数据读写的超时 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteTimeout, // 指定USB写出数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - ULONG iReadTimeout ); // 指定USB读取数据块的超时时间,以毫秒mS为单位,0xFFFFFFFF指定不超时(默认值) - - -BOOL WINAPI CH341ReadData( // 读取数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID oBuffer, // 指向一个足够大的缓冲区,用于保存读取的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备读取的长度,返回后为实际读取的长度 - - -BOOL WINAPI CH341WriteData( // 写出数据块 - ULONG iIndex, // 指定CH341设备序号 - PVOID iBuffer, // 指向一个缓冲区,放置准备写出的数据 - PULONG ioLength ); // 指向长度单元,输入时为准备写出的长度,返回后为实际写出的长度 - - -PVOID WINAPI CH341GetDeviceName( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -ULONG WINAPI CH341GetVerIC( // 获取CH341芯片的版本,返回:0=设备无效,0x10=CH341,0x20=CH341A - ULONG iIndex ); // 指定CH341设备序号 -#define IC_VER_CH341A 0x20 -#define IC_VER_CH341A3 0x30 - - -BOOL WINAPI CH341FlushBuffer( // 清空CH341的缓冲区 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341WriteRead( // 执行数据流命令,先输出再输入 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 写长度,准备写出的长度 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据 - ULONG iReadStep, // 准备读取的单个块的长度, 准备读取的总长度为(iReadStep*iReadTimes) - ULONG iReadTimes, // 准备读取的次数 - PULONG oReadLength, // 指向长度单元,返回后为实际读取的长度 - PVOID oReadBuffer ); // 指向一个足够大的缓冲区,用于保存读取的数据 - - -BOOL WINAPI CH341SetStream( // 设置串口流模式 - ULONG iIndex, // 指定CH341设备序号 - ULONG iMode ); // 指定模式,见下行 -// 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz(默认值),10=快速/400KHz,11=高速/750KHz -// 位2: SPI的I/O数/IO引脚, 0=单入单出(D3时钟/D5出/D7入)(默认值),1=双入双出(D3时钟/D5出D4出/D7入D6入) -// 位7: SPI字节中的位顺序, 0=低位在前, 1=高位在前 -// 其它保留,必须为0 - - -BOOL WINAPI CH341SetDelaymS( // 设置硬件异步延时,调用后很快返回,而在下一个流操作之前延时指定毫秒数 - ULONG iIndex, // 指定CH341设备序号 - ULONG iDelay ); // 指定延时的毫秒数 - - -BOOL WINAPI CH341StreamI2C( // 处理I2C数据流,2线接口,时钟线为SCL引脚,数据线为SDA引脚(准双向I/O),速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - ULONG iWriteLength, // 准备写出的数据字节数 - PVOID iWriteBuffer, // 指向一个缓冲区,放置准备写出的数据,首字节通常是I2C设备地址及读写方向位 - ULONG iReadLength, // 准备读取的数据字节数 - PVOID oReadBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -typedef enum _EEPROM_TYPE { // EEPROM型号 - ID_24C01, - ID_24C02, - ID_24C04, - ID_24C08, - ID_24C16, - ID_24C32, - ID_24C64, - ID_24C128, - ID_24C256, - ID_24C512, - ID_24C1024, - ID_24C2048, - ID_24C4096 -} EEPROM_TYPE; - - -BOOL WINAPI CH341ReadEEPROM( // 从EEPROM中读取数据块,速度约56K字节 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备读取的数据字节数 - PUCHAR oBuffer ); // 指向一个缓冲区,返回后是读入的数据 - - -BOOL WINAPI CH341WriteEEPROM( // 向EEPROM中写入数据块 - ULONG iIndex, // 指定CH341设备序号 - EEPROM_TYPE iEepromID, // 指定EEPROM型号 - ULONG iAddr, // 指定数据单元的地址 - ULONG iLength, // 准备写出的数据字节数 - PUCHAR iBuffer ); // 指向一个缓冲区,放置准备写出的数据 - - -BOOL WINAPI CH341GetInput( // 通过CH341直接输入数据和状态,效率比CH341GetStatus更高 - ULONG iIndex, // 指定CH341设备序号 - PULONG iStatus ); // 指向一个双字单元,用于保存状态数据,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚, 位23对应CH341的SDA引脚 -// 位13对应CH341的BUSY/WAIT#引脚, 位14对应CH341的AUTOFD#/DATAS#引脚,位15对应CH341的SLCTIN#/ADDRS#引脚 - - -BOOL WINAPI CH341SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iEnable, // 数据有效标志,参考下面的位说明 -// 位0为1说明iSetDataOut的位15-位8有效,否则忽略 -// 位1为1说明iSetDirOut的位15-位8有效,否则忽略 -// 位2为1说明iSetDataOut的7-位0有效,否则忽略 -// 位3为1说明iSetDirOut的位7-位0有效,否则忽略 -// 位4为1说明iSetDataOut的位23-位16有效,否则忽略 - ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 - ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 -// 位7-位0对应CH341的D7-D0引脚 -// 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 -// 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 -// 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚 - - -BOOL WINAPI CH341Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 -/* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 - ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 -// 以上数据的位5-位0分别对应CH341的D5-D0引脚 - - -BOOL WINAPI CH341StreamSPI3( // 该API已失效,请勿使用 - ULONG iIndex, - ULONG iChipSelect, - ULONG iLength, - PVOID ioBuffer ); - - -BOOL WINAPI CH341StreamSPI4( // 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前的低电平期间输出, DIN/D7引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - - -BOOL WINAPI CH341StreamSPI5( // 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ - ULONG iIndex, // 指定CH341设备序号 - ULONG iChipSelect, // 片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 - ULONG iLength, // 准备传输的数据字节数 - PVOID ioBuffer, // 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 - PVOID ioBuffer2 ); // 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据 - - -BOOL WINAPI CH341BitStreamSPI( // 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 - ULONG iIndex, // 指定CH341设备序号 - ULONG iLength, // 准备传输的数据位数,一次最多896,建议不超过256 - PVOID ioBuffer ); // 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 -/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前的低电平期间输出, DIN/D7和DIN2/D6引脚在时钟下降沿之前的高电平期间输入 */ -/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ -/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */ - - -BOOL WINAPI CH341SetBufUpload( // 设定内部缓冲上传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲上传模式,使用直接上传,非0则启用内部缓冲上传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲上传模式,那么CH341驱动程序创建线程自动接收USB上传数据到内部缓冲区,同时清除缓冲区中的已有数据,当应用程序调用CH341ReadData后将立即返回缓冲区中的已有数据 - - -LONG WINAPI CH341QueryBufUpload( // 查询内部上传缓冲区中的已有数据包个数,成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341SetBufDownload( // 设定内部缓冲下传模式 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iEnableOrClear ); // 为0则禁止内部缓冲下传模式,使用直接下传,非0则启用内部缓冲下传模式并清除缓冲区中的已有数据 -// 如果启用内部缓冲下传模式,那么当应用程序调用CH341WriteData后将仅仅是将USB下传数据放到内部缓冲区并立即返回,而由CH341驱动程序创建的线程自动发送直到完毕 - - -LONG WINAPI CH341QueryBufDownload( // 查询内部下传缓冲区中的剩余数据包个数(尚未发送),成功返回数据包个数,出错返回-1 - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - - -BOOL WINAPI CH341ResetInter( // 复位中断数据读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetRead( // 复位数据块读操作 - ULONG iIndex ); // 指定CH341设备序号 - - -BOOL WINAPI CH341ResetWrite( // 复位数据块写操作 - ULONG iIndex ); // 指定CH341设备序号 - - -typedef VOID ( CALLBACK * mPCH341_NOTIFY_ROUTINE ) ( // 设备事件通知回调程序 - ULONG iEventStatus ); // 设备事件和当前状态(在下行定义): 0=设备拔出事件, 3=设备插入事件 - -#define CH341_DEVICE_ARRIVAL 3 // 设备插入事件,已经插入 -#define CH341_DEVICE_REMOVE_PEND 1 // 设备将要拔出 -#define CH341_DEVICE_REMOVE 0 // 设备拔出事件,已经拔出 - - -BOOL WINAPI CH341SetDeviceNotify( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -BOOL WINAPI CH341SetupSerial( // 设定CH341的串口特性,该API只能用于工作于串口方式的CH341芯片 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - ULONG iParityMode, // 指定CH341串口的数据校验模式: NOPARITY/ODDPARITY/EVENPARITY/MARKPARITY/SPACEPARITY - ULONG iBaudRate ); // 指定CH341串口的通讯波特率值,可以是50至3000000之间的任意值 - -/* 以下API可以用于工作于串口方式的CH341芯片,除此之外的API一般只能用于并口方式的CH341芯片 - CH341OpenDevice - CH341CloseDevice - CH341SetupSerial - CH341ReadData - CH341WriteData - CH341SetBufUpload - CH341QueryBufUpload - CH341SetBufDownload - CH341QueryBufDownload - CH341SetDeviceNotify - CH341GetStatus -// 以上是主要API,以下是次要API - CH341GetVersion - CH341DriverCommand - CH341GetDrvVersion - CH341ResetDevice - CH341GetDeviceDescr - CH341GetConfigDescr - CH341SetIntRoutine - CH341ReadInter - CH341AbortInter - CH341AbortRead - CH341AbortWrite - CH341ReadI2C - CH341WriteI2C - CH341SetExclusive - CH341SetTimeout - CH341GetDeviceName - CH341GetVerIC - CH341FlushBuffer - CH341WriteRead - CH341ResetInter - CH341ResetRead - CH341ResetWrite -*/ -HANDLE WINAPI CH341OpenDeviceEx( // 打开CH341设备,返回句柄,出错则无效 - ULONG iIndex ); // 指定CH341设备序号,0对应插入的第一个设备,1对应插入的第二个设备,为节约设备设备序号资源,用完后要关闭设备 - -VOID WINAPI CH341CloseDeviceEx( // 关闭CH341设备 - ULONG iIndex ); // 指定CH341设备序号 - -PCHAR WINAPI CH341GetDeviceNameEx( // 返回指向CH341设备名称的缓冲区,出错则返回NULL - ULONG iIndex ); // 指定CH341设备序号,0对应第一个设备 - -BOOL WINAPI CH341SetDeviceNotifyEx( // 设定设备事件通知程序 - ULONG iIndex, // 指定CH341设备序号,0对应第一个设备 - PCHAR iDeviceID, // 可选参数,指向字符串,指定被监控的设备的ID,字符串以\0终止 - mPCH341_NOTIFY_ROUTINE iNotifyRoutine ); // 指定设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_DLL_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" deleted file mode 100644 index 773361b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\271\266\345\217\243\351\251\261\345\212\250\347\250\213\345\272\217\346\216\245\345\217\243\345\272\223/LIB/C/CH341DLL.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" deleted file mode 100644 index bf12dd5..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/3. \344\272\214\346\254\241\345\274\200\345\217\221\347\244\272\344\276\213\346\272\220\347\240\201/\345\274\200\345\217\221\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,13 +0,0 @@ -二次开发网上资源 - -WCH电子论坛:http://www.wch.cn/bbs/Board.asp?S=101 - -开发过程中遇到自己实在不清楚怎么使用函数接口可以到WCH论坛发问,有专业的工程师支持,也可发邮件szk@wch.cn直接咨询,一般第二天就会有回复的。 - -最新驱动下载:http://www.wch.cn/download/index.asp - -官方最新软件例程: - -CH341EVT.ZIP -http://www.wch.cn/downloads.php?name=pro&proid=60 - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" deleted file mode 100644 index 8885344..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\344\270\262\345\217\243\344\275\277\347\224\250\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,321 +0,0 @@ -CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序, - -CH341的USB转串口支持大多数常用的串口监控及调试工具程序。 - -驱动安装方法: - -1. 标准INF文件安装方法 - -WINDOWS提示找到新硬件,指定驱动程序所在目录DRIVER,自动安装驱动, - -如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中, - -选择带问号的USB设备,更新驱动程序并指定目录。 - -2. 使用驱动程序安装工具 - -直接使用CH341SER.EXE安装包,可以安装/升级/卸载驱动程序, - -该方法更适用于最终用户。 - -CH341串口使用方法: - -CH341实现USB转串口,在逻辑功能方面的使用方法与普通计算机串口相同。 - -与普通计算机串口的区别: - -CH341提供的是仿真串口,所以不支持串口本身的纯硬件操作,例如I/O操作, - -普通计算机串口是静态设备,而CH341串口是动态设备,理论上随时会断开, - -CH341的附加功能(下面有介绍):读取外部串行EEPROM,支持更高波特率。 - -提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”, - -打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。 - -注意事项: - -CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, - -不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), - -也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。 - -如果在应用程序使用CH341串口的过程中,CH341串口设备从USB插座中断开, - -那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。 - -如果在CH341串口通讯过程中发生错误,极有可能是CH341串口已经物理断开, - -所以在检测到错误后建议关闭CH341串口,稍等两秒后再重新打开串口通讯。 - -采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开, - -从而使串口应用程序能够及时打开和关闭CH341串口。 - -串口动态链接库CH341PT.DLL提供了API,可以监视CH341串口插拔事件, - -可以搜索和识别CH341串口等,具体需参考CH341PT.H文件。 - -如果通讯波特率较高,建议设置较大的缓冲区,尤其在WINDOWS 98/ME下, - -线程调度能力和USB实时性都比WINDOWS 2000/XP差,如果串口接收缓冲区较小, - -那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。 - -由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输, - -所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至 - -两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。 - -******************************************************************************* - -如果需要速率控制(流控制),建议不要使用MODEM信号控制,因为其效率较低, - -建议用CH341的TEN#和RDY#实现纯硬件的速率控制,其中TEN#为输入,RDY#为输出, - -当TEN#输入为低电平时允许CH341从串口发送数据,高电平时CH341将暂停发送数据, - -当RDY#输出为低电平时说明CH341可以接收串口数据,高电平说明CH341正忙而不能接收。 - -如果计算机及单片机不忙,或者波特率在115200bps以下时,通常不需要速率控制, - -如果波特率再高或者计算机及单片机较忙,才需要考虑采用TEN#和RDY#进行速率控制。 - -CH341用于串口时,其硬件最简单时只需要三根线:GND,TXD,RXD, - -可以直接与单片机相连,波特率支持从50bps到2Mbps,例如MCS51单片机: - -CH341引脚 MCS51单片机引脚 - -GND <=> GND - -TXD <=> RXD - -RXD <=> TXD - -TEN接GND - -与单片机相连时,通常将CH341的TEN#引脚直接接地,总是允许CH341发送数据, - -如果预算单片机可能会来不及接收串口数据,那么应该将TEN#连接到单片机的I/O引脚, - -当单片机不忙时,由单片机将CH341的TEN#置为低电平,允许CH341从串口发出数据, - -当单片机较忙时,由单片机将CH341的TEN#置为高电平,CH341将暂停从串口发出数据 - -CH341的TNOW引脚是收发状态,可以用于半双工通讯的收发切换,例如RS485的收发切换。 - -******************************************************************************* - -如何识别CH341串口,如何知道CH341的串口号COM? - -在首次安装CH341串口驱动时,CH341串口号由WINDOWS自动分配(通常从COM3开始分配), - -安装完成后可以在设备管理中点其属性修改串口号。由于应用程序事先无法知道CH341的 - -实际串口号,所以必须使用一些特殊方法识别出CH341串口,然后才能使用。 - -在WINDOWS 98/ME系统下,CH341串口号与当前硬件资源配置有关,默认为自动分配资源, - -从而排在当前实际串口号之后,可以在串口属性中选择CH341资源配置来指定串口号。 - -在WINDOWS 2000/XP系统下,CH341串口号与当前所在USB端口有关,由首次安装时分配, - -WINDOWS记忆各USB端口CH341的串口号,可以在串口属性中通过高级选项指定串口号。 - -比较简单但很费事的方法是,在首次安装CH341串口后,用程序修改注册表或者点其属性, - -人为将CH341的串口号修改为COM5,避开常用的COM1到COM4,该方法简单但是有可能冲突。 - -常规的识别方法是采用软件查询方法: - -尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, - -该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, - -那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 - -收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: - -从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), - -如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", - -注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, - -如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 - -例如,用串口监控/调试工具软件演示: - -将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - -发出特征字符串,为10个ASCII码数据: $CH341Ser? - -发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W - -建议使用CH341PT.DLL动态库,应用程序可以直接调用DLL中相应的API识别CH341串口, - -识别速度快,效率高。注意,CH341PT.DLL在INF中定义为可选安装,默认是安装的 - -******************************************************************************* - -关于读取外部串行EEPROM - -CH341可以外接I2C接口的器件,例如常用的24系列串行非易失存储器EEPROM, - -支持24C01A,24C02,24C04,24C08,24C16等,以及与之时序兼容的器件, - -24系列EEPROM既可以用于配置CH341,也可以用于断电期间保存重要数据。 - -例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等。 - -如果需要支持24C64、24C256、24C512以及更大容量的EEPROM,请参考CH341评估板资料。 - -应用程序可以按串口方式读写CH341所连接的24系列EEPROM,方法是: - -设置CH341串口波特率为300,然后以4字节为一组的命令包写串口, - -命令包的首字节必须是@,地址符,对应的十六进制数为40H, - -命令包的第二字节是24系列EEPROM的设备地址,位0是方向标志,0为写,1为读, - -命令包的第三字节是24系列EEPROM的单元地址, - -命令包的第四字节是准备写入24系列EEPROM的一个数据,如果是读操作则指定为00H, - -如果是写操作,那么命令发送成功就说明写成功,对于EEPROM还要延时10mS才能下一个操作, - -如果是读操作,那么命令发送成功后,可以从串口接收到一个字节的数据,就是读出的数据 - -例如,CH341连接24C0X,A2=A1=A0=GND,将仿真串口的波特率选择为300bps, - -可以用串口监控/调试工具软件演示: - -1、发出命令包,为4个十六进制数据: 40 A1 01 00 - -将24C0X中地址为01H的数据读出,可以从串口接收到一个字节的数据 - -2、发出命令包,为4个十六进制数据: 40 A0 2A 69 - -将一个字节的数据69H写到24C0X中地址为2AH的单元,通常等待10mS后才能进行下一个操作 - -3、发出命令包,为4个十六进制数据: 40 A5 E7 00 - -将24C0X中地址为02E7H的数据读出,可以从串口接收到一个字节的数据 - -注意,只有24C08和24C16中有地址为02E7H的数据单元 - -******************************************************************************* - -关于支持非标准波特率或者更高通讯波特率 - -对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, - -应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: - -设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, - -命令包的首字节必须是#,井字符,对应的十六进制数为23H, - -命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, - -命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, - -也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, - -在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, - -而不会被作为数据从串口真正发出,当该操作成功返回后, - -CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, - -如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。 - -例如,用串口监控/调试工具软件演示: - -1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - -发出字符串命令包,为6个ASCII码数据: #9600_ - -发送成功后,CH341将实际工作于9600bps - -2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - -发出字符串命令包,为8个ASCII码数据: #460800_ - -发送成功后,CH341将实际工作于460800bps - -3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - -发出字符串命令包,为9个ASCII码数据: #1000000_ - -发送成功后,CH341将实际工作于1000000bps - -CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, - -CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, - -所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, - -由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, - -所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: - -X = 6000000 除以波特率后的值 - -Y = X 四舍五入后的值 - -误差 = ( Y - X ) / X - -以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% - -921600 (12MHz), 460800, 307200 (12MHz), - -230400, 153600, 128000 (0.27%), 115200, - -76800, 57600, 56000, 38400, 33600, - -28800, 19200, 14400, 9600, 7200, - -4800, 3600, 2400, 1800, 1200, - -900, 600, 300, 150, 134.5, - -110, 100, 75, 50, 2000000, - -1500000, 1200000, 1000000, 750000, 500000, - -375000, 250000, 200000, 187500, 100000, - -93750, 75000, 50000, 25000, 10000 - -其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 - -但是为了可靠进行通讯,建议不要使用误差大于1%的波特率。 - -******************************************************************************* - -USB设备驱动程序与仿真串口驱动程序 - -CH341串口硬件的默认驱动程序是仿真串口驱动程序, - -即在计算机端多出一个串口,并且在下位机端CH341芯片也使用串口通讯。 - -计算机端应用程序通过操作仿真串口实现USB数据传输,其用法与普通串口相同。 - -如果不希望在计算机端仿真为串口,那么可以使用USB设备驱动程序, - -即在计算机端多出一个USB设备,但是在下位机端CH341芯片仍然使用串口通讯。 - -计算机端应用程序通过调用DLL提供的API实现USB数据传输, - -其用法与CH341并口、CH372、CH375类似,可以参考相关的应用程序的源程序。 - -CH341串口硬件的USB设备驱动与并口硬件的USB设备驱动CH341PAR完全相同, - -区别仅在于驱动安装信息文件INF中的PID不同(参考CH341PAR的INF中的注释行说明)。 - -******************************************************************************* \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" deleted file mode 100644 index 2566140..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/4. \351\227\256\351\242\230\350\247\243\347\255\224/\345\256\236\351\231\205\344\275\277\347\224\250\350\277\207\347\250\213\344\270\255\351\201\207\345\210\260\347\232\204\351\227\256\351\242\230\350\247\243\347\255\224.txt" +++ /dev/null @@ -1,86 +0,0 @@ - -Email : szk@wch.cn -Phone : 025-52638363 - -问:我的电脑是64位系统,安装驱动系统提示驱动程序未经数字签名,不可用.要怎样解决呢? - -答:1、系统启动时按F8 “禁用数字签名模式”2、进系统后,控制面板->用户->UAC的勾选去掉就可以了. - - -问:关于支持非标准波特率或者更高通讯波特率的设置? - -答:对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, -应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: - 设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, - 命令包的首字节必须是#,井字符,对应的十六进制数为23H, - 命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, - 命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, - 也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, - 在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, - 而不会被作为数据从串口真正发出,当该操作成功返回后, - CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, - 如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。 - -例如,用串口监控/调试工具软件演示: -1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为6个ASCII码数据: #9600_ - 发送成功后,CH341将实际工作于9600bps -2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为8个ASCII码数据: #460800_ - 发送成功后,CH341将实际工作于460800bps -3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为9个ASCII码数据: #1000000_ - 发送成功后,CH341将实际工作于1000000bps - -CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, -CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, -所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, -由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, -所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: - X = 6000000 除以波特率后的值 - Y = X 四舍五入后的值 - 误差 = ( Y - X ) / X - -以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% - 921600 (12MHz), 460800, 307200 (12MHz), - 230400, 153600, 128000 (0.27%), 115200, - 76800, 57600, 56000, 38400, 33600, - 28800, 19200, 14400, 9600, 7200, - 4800, 3600, 2400, 1800, 1200, - 900, 600, 300, 150, 134.5, - 110, 100, 75, 50, 2000000, - 1500000, 1200000, 1000000, 750000, 500000, - 375000, 250000, 200000, 187500, 100000, - 93750, 75000, 50000, 25000, 10000 -其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 -但是为了可靠进行通讯,建议不要使用误差大于1%的波特率 - -问:多串口情况下如何识别当前串口? -答:常规的识别方法是采用软件查询方法: - 尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, - 该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, - 那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 - 收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: - 从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), - 如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", - 注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, - 如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 - 例如,用串口监控/调试工具软件演示: - 将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出特征字符串,为10个ASCII码数据: $CH341Ser? - 发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W -我们做过测试是没有问题的! - -问:USB\VID_1A86&PID_7523&REV_0254 用的win 7 64bit,下载了当前3.1.2009.6的驱动 -设备管理器里显示有串口,但是我连接不到设备(交换机、路由器)请问这怎么解决? - -答:把串口号改为COM1 试试,很多设备只认COM1 - -问:ch431在windows7是否可以使用呢,就是USB转串口,用来下载单片机程序。 -答:可以在win7上使用 - -问:请问CH341能转LPT口吗?? -答:CH341虚拟并口是可以的,功能也可以实现,但是没有办法象操作LPT口那样直接对IO地址进行读写,需要调用CH341动态链接库的API函数才能实现,因为PC没有给USB设备分配硬件地址,所以没有办法象操作LPT口那样直接对IO地址进行读写. - -问:请问USB2IIC I2C外部是否需要加上拉电阻? -答:不需要,主控芯片内部已经内置上拉电阻了。 \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" deleted file mode 100644 index 3c39b67..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/WIN7\346\227\240\346\263\225\345\256\211\350\243\205\351\251\261\345\212\250\351\227\256\351\242\230.jpg" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" deleted file mode 100644 index 05eaaaf..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\347\233\270\345\205\263\350\265\204\346\226\231/\345\205\266\344\273\226\350\265\204\346\226\231\345\217\202\350\200\203/allinone\347\224\250\346\210\267\346\211\213\345\206\214.pdf" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" deleted file mode 100644 index f3f7825..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341PT.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" deleted file mode 100644 index 9ce8f8b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S64.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" deleted file mode 100644 index ec20708..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341S98.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" deleted file mode 100644 index 2e6c3d7..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.INF" +++ /dev/null @@ -1,213 +0,0 @@ -; CH341SER.INF -; Driver for CH341 (USB=>SERIAL chip) V3.1 -; WDM&VXD for Windows 98/Me/2000/XP/Server2003/Vista/64bit Vista/Server2008/Win7/64bit Win7 -; Copyright (C) W.ch 2001-2009 -; - -[Version] -Signature = "$Chicago$" -Class = Ports -ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} -Provider = %WinChipHead% -DriverVer = 06/03/2009, 3.1.2009.06 -CatalogFile = CH341SER.CAT - -[ControlFlags] -ExcludeFromSelect = USB\VID_1A86&PID_7523 -ExcludeFromSelect = USB\VID_1A86&PID_5523 -ExcludeFromSelect = USB\VID_4348&PID_5523 -ExcludeFromSelect = USB\VID_4348&PID_5523&REV_0250 -ExcludeFromSelect = USBSERPORT\SER5523 -ExcludeFromSelect = CH341PORT\SER5523 - -[Manufacturer] -%WinChipHead% = WinChipHead,NT,NTamd64,NTia64 - -[WinChipHead] -%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Install, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Install, USB\VID_4348&PID_5523&REV_0250 -%CH341S98.DeviceDesc% = CH341S98_Install, USBSERPORT\SER5523 -%CH341S98.DeviceDesc% = CH341S98_Install, CH341PORT\SER5523 - -[WinChipHead.NT] -%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Install.NT, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Install.NT, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NTamd64] -%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Inst.NTamd64, USB\VID_4348&PID_5523&REV_0250 - -[WinChipHead.NTia64] -%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_7523 -%CH341ASER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_1A86&PID_5523 -%CH341SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523 -%CH340SER.DeviceDesc% = CH341SER_Inst.NTia64, USB\VID_4348&PID_5523&REV_0250 - -[CH341SER_Install] -DelFiles = CH341S98.DelFiles.SYS -CopyFiles = CH341SER.CopyFiles.SYS, CH341SER.CopyFiles.DLL -AddReg = CH341SER.9X.AddReg, CH341SER.AddReg - -[CH341SER_Install.NT] -CopyFiles = CH341SER.NT.CopyFiles.SYS, CH341SER.CopyFiles.DLL -AddReg = CH341SER.NT.AddReg, CH341SER.AddReg - -[CH341SER_Install.NT.HW] -AddReg = CH341SER.NT.HW.AddReg - -[CH341SER_Inst.NTamd64] -CopyFiles = CH341SER.NT.CopyFiles.SYSA64 -AddReg = CH341SER.NT.AddReg, CH341SER.AddReg - -[CH341SER_Inst.NTamd64.HW] -AddReg = CH341SER.NT.HW.AddReg - -[CH341SER_Inst.NTia64] -CopyFiles = CH341SER.NT.CopyFiles.SYSI64 -AddReg = CH341SER.NT.AddReg, CH341SER.AddReg - -[CH341SER_Inst.NTia64.HW] -AddReg = CH341SER.NT.HW.AddReg - -[CH341S98_Install] -DelFiles = CH341S98.DelFiles.SYS -CopyFiles = CH341S98.CopyFiles.VXD, CH341SER.CopyFiles.SYS -AddReg = CH341S98.9X.AddReg, CH341S98.AddReg - -;[CH341S98_Install.NT] - -[CH341S98.DelFiles.SYS] -CH341S98.SYS, , , 1 - -[CH341SER.CopyFiles.SYS] -CH341S98.SYS, , , 2 - -[CH341SER.NT.CopyFiles.SYS] -CH341SER.SYS, , , 2 - -[CH341SER.NT.CopyFiles.SYSA64] -CH341S64.SYS, , , 2 - -[CH341SER.NT.CopyFiles.SYSI64] -;CH341I64.SYS, , , 2 - -[CH341S98.CopyFiles.VXD] -CH341SER.VXD, , , 2 - -[CH341SER.CopyFiles.DLL] -CH341PT.DLL, , , 2 -;安装DLL是可选的,DLL可以用于识别CH341端口和监视CH341端口的插拔事件 - -[CH341SER.9X.AddReg] -HKR, , DevLoader, , *NTKERN -HKR, , NTMPDriver, , CH341S98.SYS - -[CH341SER.NT.AddReg] -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[CH341SER.NT.HW.AddReg] -HKR,,"UpperFilters",0x00010000,"serenum" -;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉 - -[CH341S98.9X.AddReg] -HKR, , DevLoader, , *vcomm -HKR, , PortDriver, , CH341SER.VXD -HKR, , Contention, , *vcd -HKR, , ConfigDialog, , serialui.dll -HKR, , DCB, 3, 1C,00,00,00, 80,25,00,00, 11,00,00,00, 00,00,0A,00, 0A,00,08,00, 00,11,13,00, 00,00,00,00 -HKR, , PortSubClass, 1, 01 -HKR, , EnumPropPages, , "serialui.dll,EnumPropPages" -HKR, , Enumerator, , serenum.vxd -;上面这行用于枚举接在串口的即插即用设备,启动时将产生DTR和RTS信号,如果需要枚举,请将上面这行的分号去掉 - -[CH341SER.AddReg] -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, WDM, 0x00010001, 0x00000031 -HKLM, SOFTWARE\WinChipHead\IC\CH341PORT, DLL, 0x00010001, 0x00000010 -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, Function, , "USB=>Serial" -;HKLM, SYSTEM\CurrentControlSet\Services\CH341SER, UserRemoval, 0x00010001, 0x00000001 -;上面这行用于在系统托盘中显示“安全删除USB转SERIAL硬件设备”,便于用户手工删除硬件 - -[CH341S98.AddReg] -HKLM, SOFTWARE\WinChipHead\IC\CH341SER, VXD, 0x00010001, 0x00000023 - -[CH341SER_Install.NT.Services] -AddService = CH341SER, 2, CH341SER.Service -AddService = Serenum, , Serenum_Service_Inst - -[CH341SER_Inst.NTamd64.Services] -AddService = CH341SER_A64, 2, CH341SER.ServiceA64 -AddService = Serenum, , Serenum_Service_Inst - -[CH341SER_Inst.NTia64.Services] -AddService = CH341SER_I64, 2, CH341SER.ServiceI64 -AddService = Serenum, , Serenum_Service_Inst - -[CH341SER.Service] -DisplayName = "CH341SER" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341SER.SYS - -[CH341SER.ServiceA64] -DisplayName = "CH341SER_A64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341S64.SYS - -[CH341SER.ServiceI64] -DisplayName = "CH341SER_I64" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %10%\System32\Drivers\CH341I64.SYS - -[Serenum_Service_Inst] -DisplayName = "SerEnum" -ServiceType = 1 -StartType = 3 -ErrorControl = 1 -ServiceBinary = %12%\serenum.sys -LoadOrderGroup = PNP Filter - -[DestinationDirs] -DefaultDestDir = 10, System32\Drivers -CH341S98.DelFiles.SYS = 11 -CH341SER.CopyFiles.SYS = 10, System32\Drivers -CH341SER.NT.CopyFiles.SYS = 10, System32\Drivers -CH341S98.CopyFiles.VXD = 11 -CH341SER.CopyFiles.DLL = 11 -CH341SER.NT.CopyFiles.SYSA64 = 10, System32\Drivers -;CH341SER.NT.CopyFiles.SYSI64 = 10, System32\Drivers - -[SourceDisksFiles] -CH341SER.SYS = 1 -CH341S98.SYS = 1 -CH341SER.VXD = 1 -CH341PT.DLL = 1 -CH341S64.SYS = 1 -;CH341I64.SYS = 1 - -[SourceDisksNames] -1 = %DISK_NAME%, , , - -[SourceDisksNames.amd64] -1 = %DISK_NAME%, , , - -[SourceDisksNames.ia64] -1 = %DISK_NAME%, , , - -[Strings] -WinChipHead = "wch.cn" -CH341SER.DeviceDesc = "USB-SERIAL CH341" -CH341S98.DeviceDesc = "USB-SERIAL CH341" -CH340SER.DeviceDesc = "USB-SERIAL CH340" -CH341ASER.DeviceDesc = "USB-SERIAL CH341A" -DISK_NAME = "CH341 Serial Installation Disk" diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" deleted file mode 100644 index 6f843b3..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.SYS" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" deleted file mode 100644 index 1c04d3d..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/CH341SER.VXD" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" deleted file mode 100644 index e7f75c7..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/SETUP.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" deleted file mode 100644 index 824b6f8..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/DRIVER/ch341SER.CAT" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" deleted file mode 100644 index 701d167..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.BAS" +++ /dev/null @@ -1,55 +0,0 @@ -Attribute VB_Name = "CH341PTDLL" -' 2005.07.28 -'**************************************** -'** Copyright (C) W.ch 1999-2005 ** -'** Web: http:'www.winchiphead.com ** -'**************************************** -'** DLL for USB interface chip CH341 ** -'** C, VC5.0 ** -'**************************************** -' -' USB总线接口芯片CH341端口应用层接口库 V1.0 -' 南京沁恒电子有限公司 作者: W.ch 2005.07 -' CH341-Port-DLL V1.0 -' 运行环境: Windows 98/ME, Windows 2000/XP -' support USB chip: CH341, CH341A -' USB => Serial, Parallel -' - - - -Public Const MAX_DEVICE_PATH_SIZE = 128 ' 设备名称的最大字符数 -Public Const MAX_DEVICE_ID_SIZE = 64 ' 设备ID的最大字符数 - -Declare Function CH341PtGetVersion Lib "CH341PT.DLL" () As Long ' 获得DLL版本号,返回版本号 - -Declare Function CH341PtHandleIsCH341 Lib "CH341PT.DLL" (ByVal iPortHandle As Long) As Boolean ' 指定已经打开的端口句柄 -' CH341PtHandleIsCH341 检查已经打开的端口是否为CH341端口 -' iPortHandle ' 指定已经打开的端口句柄 - -Declare Function CH341PtNameIsCH341 Lib "CH341PT.DLL" (ByVal iPortName As String) As Boolean -' CH341PtNameIsCH341 检查指定名称的端口是否为CH341端口 -' iPortName 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - -' 端口设备事件通知回调程序 -' sub mPCH341PT_NOTIFY_ROUTINE (byval iDevIndexAndEvent as long) ' 端口设备序号和事件及当前状态(参考下行说明) -' iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - -Declare Function CH341PtSetDevNotify Lib "CH341PT.DLL" (ByVal iDeviceID As String, ByVal iNotifyRoutine As Long) As Boolean ' 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 -' CH341PtSetDevNotify 设定端口设备事件通知程序 -' iDeviceID, 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" -' iNotifyRoutine 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - -'/* 即插即用设备的应用程序编程参考 -'1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -'2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -'3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -'4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, -' 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, -' 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -'5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -'6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -'*/ - - - diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" deleted file mode 100644 index 84447c6..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.H" +++ /dev/null @@ -1,67 +0,0 @@ -// 2005.07.28 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341端口应用层接口库 V1.0 -// 南京沁恒电子有限公司 作者: W.ch 2005.07 -// CH341-Port-DLL V1.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Serial, Parallel -// - -#ifndef _CH341_PORT_H -#define _CH341_PORT_H - -#ifdef __cplusplus -extern "C" { -#endif - - -#define MAX_DEVICE_PATH_SIZE 128 // 设备名称的最大字符数 -#define MAX_DEVICE_ID_SIZE 64 // 设备ID的最大字符数 - - -ULONG WINAPI CH341PtGetVersion( ); // 获得DLL版本号,返回版本号 - - -BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 - HANDLE iPortHandle ); // 指定已经打开的端口句柄 - - -BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 - PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - - -typedef VOID ( CALLBACK * mPCH341PT_NOTIFY_ROUTINE ) ( // 端口设备事件通知回调程序 - LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明) -// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - - -BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序 - PCHAR iDeviceID, // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" - mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -/* 即插即用设备的应用程序编程参考 -1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, - 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, - 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -*/ - - -#ifdef __cplusplus -} -#endif - -#endif // _CH341_PORT_H diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" deleted file mode 100644 index 9788f23..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.LIB" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" deleted file mode 100644 index fe7d331..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/DLL_LIB/CH341PT.PAS" +++ /dev/null @@ -1,59 +0,0 @@ -unit CH341PTDLL; - -interface -// 2005.07.28 -//**************************************** -//** Copyright (C) W.ch 1999-2005 ** -//** Web: http://www.winchiphead.com ** -//**************************************** -//** DLL for USB interface chip CH341 ** -//** C, VC5.0 ** -//**************************************** -// -// USB总线接口芯片CH341端口应用层接口库 V1.0 -// 南京沁恒电子有限公司 作者: W.ch 2005.07 -// CH341-Port-DLL V1.0 -// 运行环境: Windows 98/ME, Windows 2000/XP -// support USB chip: CH341, CH341A -// USB => Serial, Parallel -// - -const MAX_DEVICE_PATH_SIZE = 128 ; // 设备名称的最大字符数 - MAX_DEVICE_ID_SIZE= 64 ; // 设备ID的最大字符数 - - -Function CH341PtGetVersion( ):cardinal;stdcall; external 'CH341PT.DLL'; // 获得DLL版本号,返回版本号 - - -Function CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 - iPortHandle:cardinal ):boolean;stdcall; external 'CH341PT.DLL'; // 指定已经打开的端口句柄 - - -Function CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 - iPortName:PCHAR ):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开) - - -type mPCH341PT_NOTIFY_ROUTINE=Procedure ( // 端口设备事件通知回调程序 - iDevIndexAndEvent:integer );stdcall; // 端口设备序号和事件及当前状态(参考下行说明) -// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255) - - -Function CH341PtSetDevNotify( // 设定端口设备事件通知程序 - iDeviceID:PCHAR; // 可选参数,指向以\0终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" - iNotifyRoutine:mPCH341PT_NOTIFY_ROUTINE):boolean;stdcall; external 'CH341PT.DLL'; // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序 - - -{/* 即插即用设备的应用程序编程参考 -1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输 -2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数 -3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息 -4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, - 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, - 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭 -5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输 -6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口 -*/} - -implementation - -end. diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" deleted file mode 100644 index df64a5d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/README.TXT" +++ /dev/null @@ -1,195 +0,0 @@ -CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序, -CH341的USB转串口支持大多数常用的串口监控及调试工具程序。 - -驱动安装方法: -1. 标准INF文件安装方法 - WINDOWS提示找到新硬件,指定驱动程序所在目录DRIVER,自动安装驱动, - 如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中, - 选择带问号的USB设备,更新驱动程序并指定目录。 -2. 使用驱动程序安装工具 - 直接使用CH341SER.EXE安装包,可以安装/升级/卸载驱动程序, - 该方法更适用于最终用户。 - -CH341串口使用方法: - CH341实现USB转串口,在逻辑功能方面的使用方法与普通计算机串口相同。 - 与普通计算机串口的区别: - CH341提供的是仿真串口,所以不支持串口本身的纯硬件操作,例如I/O操作, - 普通计算机串口是静态设备,而CH341串口是动态设备,理论上随时会断开, - CH341的附加功能(下面有介绍):读取外部串行EEPROM,支持更高波特率。 - 提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”, - 打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。 - -注意事项: - CH341串口是即插即用的USB设备,正在使用CH341串口进行数据传输的过程中, - 不可以将其断开(断开是指从USB插座中取出CH341或者关闭CH341的电源), - 也就是说,必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出。 - - 如果在应用程序使用CH341串口的过程中,CH341串口设备从USB插座中断开, - 那么应用程序应该尽快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。 - - 如果在CH341串口通讯过程中发生错误,极有可能是CH341串口已经物理断开, - 所以在检测到错误后建议关闭CH341串口,稍等两秒后再重新打开串口通讯。 - - 采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开, - 从而使串口应用程序能够及时打开和关闭CH341串口。 - 串口动态链接库CH341PT.DLL提供了API,可以监视CH341串口插拔事件, - 可以搜索和识别CH341串口等,具体需参考CH341PT.H文件。 - - 如果通讯波特率较高,建议设置较大的缓冲区,尤其在WINDOWS 98/ME下, - 线程调度能力和USB实时性都比WINDOWS 2000/XP差,如果串口接收缓冲区较小, - 那么在通讯波特率较高时,接收大量数据会导致串口缓冲区溢出而丢弃数据。 - - 由于底层的USB是将多个字节组成数据包后安插到各个1mS帧中进行传输, - 所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至 - 两个USB帧中,在最坏情况下这两个字节在时间上有可能相隔1mS甚至2mS。 - -******************************************************************************* - -如果需要速率控制(流控制),建议不要使用MODEM信号控制,因为其效率较低, -建议用CH341的TEN#和RDY#实现纯硬件的速率控制,其中TEN#为输入,RDY#为输出, -当TEN#输入为低电平时允许CH341从串口发送数据,高电平时CH341将暂停发送数据, -当RDY#输出为低电平时说明CH341可以接收串口数据,高电平说明CH341正忙而不能接收。 - -如果计算机及单片机不忙,或者波特率在115200bps以下时,通常不需要速率控制, -如果波特率再高或者计算机及单片机较忙,才需要考虑采用TEN#和RDY#进行速率控制。 - -CH341用于串口时,其硬件最简单时只需要三根线:GND,TXD,RXD, -可以直接与单片机相连,波特率支持从50bps到2Mbps,例如MCS51单片机: - CH341引脚 MCS51单片机引脚 - GND <=> GND - TXD <=> RXD - RXD <=> TXD - TEN接GND - -与单片机相连时,通常将CH341的TEN#引脚直接接地,总是允许CH341发送数据, -如果预算单片机可能会来不及接收串口数据,那么应该将TEN#连接到单片机的I/O引脚, -当单片机不忙时,由单片机将CH341的TEN#置为低电平,允许CH341从串口发出数据, -当单片机较忙时,由单片机将CH341的TEN#置为高电平,CH341将暂停从串口发出数据 - -CH341的TNOW引脚是收发状态,可以用于半双工通讯的收发切换,例如RS485的收发切换。 - -******************************************************************************* -如何识别CH341串口,如何知道CH341的串口号COM? - -在首次安装CH341串口驱动时,CH341串口号由WINDOWS自动分配(通常从COM3开始分配), -安装完成后可以在设备管理中点其属性修改串口号。由于应用程序事先无法知道CH341的 -实际串口号,所以必须使用一些特殊方法识别出CH341串口,然后才能使用。 - -在WINDOWS 98/ME系统下,CH341串口号与当前硬件资源配置有关,默认为自动分配资源, - 从而排在当前实际串口号之后,可以在串口属性中选择CH341资源配置来指定串口号。 -在WINDOWS 2000/XP系统下,CH341串口号与当前所在USB端口有关,由首次安装时分配, - WINDOWS记忆各USB端口CH341的串口号,可以在串口属性中通过高级选项指定串口号。 - -比较简单但很费事的方法是,在首次安装CH341串口后,用程序修改注册表或者点其属性, -人为将CH341的串口号修改为COM5,避开常用的COM1到COM4,该方法简单但是有可能冲突。 - -常规的识别方法是采用软件查询方法: - 尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, - 该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, - 那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 - 收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: - 从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), - 如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", - 注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, - 如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 - 例如,用串口监控/调试工具软件演示: - 将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出特征字符串,为10个ASCII码数据: $CH341Ser? - 发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W - -建议使用CH341PT.DLL动态库,应用程序可以直接调用DLL中相应的API识别CH341串口, - 识别速度快,效率高。注意,CH341PT.DLL在INF中定义为可选安装,默认是安装的 - -******************************************************************************* -关于读取外部串行EEPROM - -CH341可以外接I2C接口的器件,例如常用的24系列串行非易失存储器EEPROM, -支持24C01A,24C02,24C04,24C08,24C16等,以及与之时序兼容的器件, -24系列EEPROM既可以用于配置CH341,也可以用于断电期间保存重要数据。 -例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等。 -如果需要支持24C64、24C256、24C512以及更大容量的EEPROM,请参考CH341评估板资料。 - -应用程序可以按串口方式读写CH341所连接的24系列EEPROM,方法是: - 设置CH341串口波特率为300,然后以4字节为一组的命令包写串口, - 命令包的首字节必须是@,地址符,对应的十六进制数为40H, - 命令包的第二字节是24系列EEPROM的设备地址,位0是方向标志,0为写,1为读, - 命令包的第三字节是24系列EEPROM的单元地址, - 命令包的第四字节是准备写入24系列EEPROM的一个数据,如果是读操作则指定为00H, - 如果是写操作,那么命令发送成功就说明写成功,对于EEPROM还要延时10mS才能下一个操作, - 如果是读操作,那么命令发送成功后,可以从串口接收到一个字节的数据,就是读出的数据 - -例如,CH341连接24C0X,A2=A1=A0=GND,将仿真串口的波特率选择为300bps, -可以用串口监控/调试工具软件演示: -1、发出命令包,为4个十六进制数据: 40 A1 01 00 - 将24C0X中地址为01H的数据读出,可以从串口接收到一个字节的数据 -2、发出命令包,为4个十六进制数据: 40 A0 2A 69 - 将一个字节的数据69H写到24C0X中地址为2AH的单元,通常等待10mS后才能进行下一个操作 -3、发出命令包,为4个十六进制数据: 40 A5 E7 00 - 将24C0X中地址为02E7H的数据读出,可以从串口接收到一个字节的数据 - 注意,只有24C08和24C16中有地址为02E7H的数据单元 - -******************************************************************************* -关于支持非标准波特率或者更高通讯波特率 - -对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, -应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: - 设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, - 命令包的首字节必须是#,井字符,对应的十六进制数为23H, - 命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, - 命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, - 也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, - 在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, - 而不会被作为数据从串口真正发出,当该操作成功返回后, - CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, - 如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。 - -例如,用串口监控/调试工具软件演示: -1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为6个ASCII码数据: #9600_ - 发送成功后,CH341将实际工作于9600bps -2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为8个ASCII码数据: #460800_ - 发送成功后,CH341将实际工作于460800bps -3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), - 发出字符串命令包,为9个ASCII码数据: #1000000_ - 发送成功后,CH341将实际工作于1000000bps - -CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, -CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, -所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, -由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, -所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: - X = 6000000 除以波特率后的值 - Y = X 四舍五入后的值 - 误差 = ( Y - X ) / X - -以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% - 921600 (12MHz), 460800, 307200 (12MHz), - 230400, 153600, 128000 (0.27%), 115200, - 76800, 57600, 56000, 38400, 33600, - 28800, 19200, 14400, 9600, 7200, - 4800, 3600, 2400, 1800, 1200, - 900, 600, 300, 150, 134.5, - 110, 100, 75, 50, 2000000, - 1500000, 1200000, 1000000, 750000, 500000, - 375000, 250000, 200000, 187500, 100000, - 93750, 75000, 50000, 25000, 10000 -其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 -但是为了可靠进行通讯,建议不要使用误差大于1%的波特率。 - -******************************************************************************* -USB设备驱动程序与仿真串口驱动程序 - -CH341串口硬件的默认驱动程序是仿真串口驱动程序, -即在计算机端多出一个串口,并且在下位机端CH341芯片也使用串口通讯。 -计算机端应用程序通过操作仿真串口实现USB数据传输,其用法与普通串口相同。 - -如果不希望在计算机端仿真为串口,那么可以使用USB设备驱动程序, -即在计算机端多出一个USB设备,但是在下位机端CH341芯片仍然使用串口通讯。 -计算机端应用程序通过调用DLL提供的API实现USB数据传输, -其用法与CH341并口、CH372、CH375类似,可以参考相关的应用程序的源程序。 - -CH341串口硬件的USB设备驱动与并口硬件的USB设备驱动CH341PAR完全相同, -区别仅在于驱动安装信息文件INF中的PID不同(参考CH341PAR的INF中的注释行说明)。 - -******************************************************************************* diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" deleted file mode 100644 index feda97b..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/CH341\344\270\262\345\217\243\351\251\261\345\212\250\357\274\210\345\244\207\347\224\250\357\274\211/INSTALL/\346\250\241\345\235\227\350\260\203\350\257\225.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" deleted file mode 100644 index 7241072..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PAR.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" deleted file mode 100644 index b93b4ce..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341PRT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" deleted file mode 100644 index d07cfad..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/CH341SER.EXE" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" deleted file mode 100644 index 701f21d..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/Readme.txt" +++ /dev/null @@ -1,40 +0,0 @@ -最新版驱动下载: - -并口驱动 (I2C/SPI) -http://www.wch.cn/downloads.php?name=pro&proid=64 - -串口驱动(UART) -http://www.wch.cn/downloads.php?name=pro&proid=65 - -请预先安装本目录下的两个驱动程序,然后把USB下载器接入电脑,按提示完成驱动的安装! ------------------------------------------------------------------ -资料名称:CH341SER.EXE -资料类型:应用资料 -资料大小:227KB -资料版本:3.3 -更新时间:2012-02-15 -软件简介:USB转串口CH341/CH340的WINDOWS驱动程序安装包, 支持WINDOWS 98/ME/2000/XP/Server 2003/VISTA/, Server 2008/Win7/Win8 32位/64位,通过微软数字签名认证,, 在计算机端将USB设备仿真为标准Serial串口设备COM?, 包含识别CH34X串口号及监视CH34X设备插拔的库 ------------------------------------------------------------------ -资料名称:CH341PAR.EXE -资料类型:应用资料 -资料大小:185KB -资料版本:2.2 -更新时间:2011-04-29 -软件简介:USB转并口CH341的WINDOWS驱动程序和DLL动态库的安装包, 支持WINDOWS 98/ME/2000/XP/Server 2000/VISTA/Server 2008/, Win7/Win8 32位/64位,通过微软数字签名认证,支持USB转EPP, /MEM并口,支持USB转同步串口:IIC/I2C、SPI等,, 用于随产品发行到最终用户 ------------------------------------------------------------------ -资料名称:USBPRINT.ZIP -资料类型:辅助资料 -资料大小:131KB -资料版本:1.2 -更新时间:2007-09-17 -软件简介:USB转打印口CH341的WINDOWS驱动程序,, 将普通并口打印机转换为USB打印机,支持WINDOWS 98/ME,, 无CH341和原始厂商标识,用于OEM产品制造商,, 支持自动搜索安装和SETUP.EXE安装,支持CH341和CH340 ------------------------------------------------------------------ -资料名称:CH341PRT.ZIP -资料类型:应用资料 -资料大小:110KB -资料版本:1.2 -更新时间:2007-09-17 -软件简介:USB转打印口CH340或CH341的WINDOWS驱动程序, 将普通并口打印机转换为USB打印机,支持WINDOWS 98/ME, (WINDOWS 2000/XP不需要安装驱动程序) - -// Http://usendz.taobao.com -// USB TO I2C\SPI\UART CH341A CH341T CP2102 CH340T PL2303 CP2210方案板 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" deleted file mode 100644 index 46652a1..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A USB\350\275\254\346\215\242\346\250\241\345\235\227/\351\251\261\345\212\250/Windows\347\255\276\345\220\215\351\251\261\345\212\250\357\274\214\346\224\257\346\214\201win7\357\274\210\351\246\226\351\200\211\357\274\211/USBPRINT.ZIP" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" deleted file mode 100644 index 2e59272..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/CH341A.exe" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" deleted file mode 100644 index 81102a9..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Config.ini" +++ /dev/null @@ -1,25 +0,0 @@ -[Config] -DriverDLL=USBIOX.DLL -language=2052 -IsWinStatus=1 -WindowState=0 -Left=576 -Top=322 -Width=836 -Height=541 -ChipType=0 -24ChipManuIndex=2 -25ChipManuIndex=1 -Default24ChipIndex=3 -Default25ChipIndex=25 -IsLastDir=1 -DefaultInitDir=D:\Users\Fairy\Documents\project\DIY\logic analyzer\固件\ - -[OperOption] -IsWriteCompleteVerify=1 -UseFastRead=0 -UseAAI=0 -IsClean=1 -IsChkBlank=1 -IsProgramming=1 -IsVerify=1 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" deleted file mode 100644 index f36027e..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/DataBase.Dat" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" deleted file mode 100644 index 92f5942..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseSimp.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=2052 -!LanguageName=ChineseSimp(简体中文) -!TranslationAuthor=风铃夜思雨 -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=CH341A编程器 -mFile.Caption=文件(&F) -mOpen.Caption=打开(&O) -mSave.Caption=保存(&S) -mExit.Caption=退出(&X) -mBuffer.Caption=缓冲区(&B) -mFill.Caption=填充缓充区(&F) -mSwap.Caption=高低字节交换(&S) -mCopy.Caption=复制(&C) -mCopyAsHex.Caption=复制为Hex格式(&H) -mFind.Caption=查找(&F) -mFindNext.Caption=查找下一个(&N) -mGoto.Caption=跳转(&G) -mSelectAll.Caption=全选(&A) -mOpter.Caption=操作(&P) -mOpterOption.Caption=操作选项(&O) -mAuto.Caption=自 动(&A) -mChkEmpty.Caption=查 空(&B) -mRead.Caption=读 取(&R) -mWrite.Caption=编 程(&W) -mVerify.Caption=校 验(&V) -mClean.Caption=擦 除(&E) -mAbort.Caption=终 止(&T) -mDetect.Caption=检测芯片(&T) -mlanguages.Caption=语言(Languages)(&L) -mHelp.Caption=帮助(&H) -mHelpContent.Caption=帮助(&H) -mLicense.Caption=许可信息(&L) -mAbout.Caption=关于(&A) -pCopy.Caption=复制(&C) -pCopyAsHex.Caption=复制为Hex格式(&H) -pSelectAll.Caption=全选(&A) -BtnOpen.Caption=打开 -BtnOpen.Hint=打开 -BtnSave.Caption=保存 -BtnSave.Hint=保存 -BtnFill.Caption=填充 -BtnFill.Hint=填充 -BtnSwap.Caption=交换 -BtnSwap.Hint=交换 -BtnAuto.Caption=自动 -BtnAuto.Hint=自动 -BtnChkEmpty.Caption=查空 -BtnChkEmpty.Hint=查空 -BtnRead.Caption=读取 -BtnRead.Hint=读取 -BtnWrite.Caption=编程 -BtnWrite.Hint=编程 -BtnVerify.Caption=校验 -BtnVerify.Hint=校验 -BtnClean.Caption=擦除 -BtnClean.Hint=擦除 -BtnAbort.Caption=终止 -BtnAbort.Hint=终止 -BtnAbout.Caption=关于 -BtnAbout.Hint=关于 -BtnExit.Caption=退出 -BtnExit.Hint=退出 -lbChipType.Caption=类型: -lbManuName.Caption=厂商: -lbChipName.Caption=名称: -lbChipSize.Caption=容量: -BtnChipFind.Caption=芯片查找(&S) -BtnDetect.Caption=检测(&D) -spStatus.!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -RzToolbar.CustomizeCaptions.Close=关闭 -RzToolbar.CustomizeCaptions.MoveDown=下移 -RzToolbar.CustomizeCaptions.MoveUp=上移 -RzToolbar.CustomizeCaptions.NoTextLabels=无文字标签 -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=选择性地将文字置于右侧 -RzToolbar.CustomizeCaptions.ShowTextLabels=显示文字标签 -RzToolbar.CustomizeCaptions.TextOptions=文字选项 -RzToolbar.CustomizeCaptions.Title=自定义工具栏 -OD.DefaultExt=Bin -OD.Filter=支持的文件 (*.bin;*.hex)|*.bin;*.hex|Bin 文件 (*.Bin)|*.bin|Hex 文件(*.Hex)|*.hex|所有文件 (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=支持的文件 (*.bin;*.hex)|*.bin;*.hex|Bin 文件 (*.Bin)|*.bin|Hex 文件(*.Hex)|*.hex|所有文件 (*.*)|*.* -sCH341_Status=设备连接状态: %s. -sUseTime=%s - 用时: %s -sRW_UseTime=%s - 速度: %d 字节/秒, 大小: %d 字节, 用时: %s -sEditorOffset=位置: %s, %d -sNoCH341=未发现有编程器连接到电脑! -sIgnoreLengthRange=文件长度超出范围, 超出部份将被忽略! -sRangeAddress=范围(0x%s-0x%s) -sNoChipEmpty=该芯片不为空. -sWriteOperTimeout=写操作超时失败! -sChipContentDifferent=芯片内容与缓冲区内容不一致. -sEraseOk=芯片擦除操作完毕, 请使用查空功能检查是否为空! -sChipBlank=芯片是空白的! -sChipVerfyOK=芯片与缓冲区内容一致! -sBeginRange=开始地址超出范围 -sEndRange=结束地址超出范围 -sNotExit=编程器工作中, 禁止退出. -sFindNotWords=找不到 "%s" -sGoto=转到 -sUserAbort=用户已终止 -sConnectionStatus0=未连接 -sConnectionStatus1=已连接 -sInsertMode0=覆盖 -sInsertMode1=插入 -sWorkStatus0=正在查空中... -sWorkStatus1=正在读取中... -sWorkStatus2=正在编程中... -sWorkStatus3=正在校验中... -sWorkStatus4=正在擦除中... - -[TFrmFill] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=填充缓冲区 -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=确定(&O) -GB1.Caption=数据 -GB2.Caption=范围(0x0-0x0) -rbbit1.Caption=常量字节 (8bit) -rbbit2.Caption=常量字节 (16bit) -rbbit3.Caption=随机数 -rbbit4.Caption=序列字节 (8bit) -rbbit5.Caption=序列字节 (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=开始地址: -RzLabel4.Caption=结束地址: - -[TFrmFind] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=查找 -lbFind.Caption=查找内容(&N): -cbNoCase.Caption=区分大小写(&C) -cbHex.Caption=Hex格式(&H) -BtnFind.Caption=查找下一个(&F) -BtnClose.Caption=取消(&C) - -[TFrmOperOption] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=操作选项 -GB1.Caption=常规 -ChkWriteCompleteVerify.Caption=写入完成后校验(&W) -ChkLastDir.Caption=记住最后的文件夹(&L) -ChkWinStatus.Caption=记住窗口位置和大小(&E) -GB2.Caption=25 芯片 -ChkUseFastRead.Caption=使用快速读取模式(&U) -ChkUseAAI.Caption=SST/ESMT芯片使用AAI编程模式(&A) -GB3.Caption=自动编程选项 -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=擦 除
查 空
编 程
校 验
-Btns.CaptionOk=确定(&O) -Btns.CaptionCancel=取消(&C) - -[TFrmChipSel] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Caption=芯片查找 -lbChipName.Caption=器件名称: -lbChipFindInfo.Caption=不区分大小写, 支持 '*' 通配符, 例如: EN25*80 -DBGrid.Columns.Item0.Title.Caption=芯片名称 -DBGrid.Columns.Item1.Title.Caption=容量 -DBGrid.Columns.Item2.Title.Caption=厂商 -DBGrid.Columns.Item3.Title.Caption=类型 -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=选择(&S) -sChipFindCount=共找到 %d 个结果. - -[TFrmLicense] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -Btns.CaptionCancel=取消(&C) -Btns.CaptionOk=确定(&O) -Caption=许可信息 -lbAddr.Caption=地 址: -lbEmail.Caption=支付宝: -lbID.Caption=交易号: -lbName.Caption=姓 名: -lbNickName.Caption=昵 称: -lbPhone.Caption=电 话: - -[TFrmAbout] -!Font=宋体,9,,0,clWindowText,GB2312_CHARSET -sAboutCaption=关于 -sVerCaption=版本: -sAuthorCaption=作者: -sClose=关闭(&C) -sLicenseCaption=许可: -sAuthor=风铃夜思雨 -sCopyRight=购买地址: http://usendz.taobao.com diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" deleted file mode 100644 index 1861f54..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/ChineseTrad.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=1028 -!LanguageName=ChineseTrad(羉砰いゅ) -!TranslationAuthor=筧獴 -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=CH341A絪祘竟 -mFile.Caption=郎(&F) -mOpen.Caption=ゴ秨(&O) -mSave.Caption=玂(&S) -mExit.Caption=癶(&X) -mBuffer.Caption=絯≧跋(&B) -mFill.Caption=恶絯跋(&F) -mSwap.Caption=蔼竊ユ传(&S) -mCopy.Caption=ī(&C) -mCopyAsHex.Caption=īHexΑ(&H) -mFind.Caption=琩т(&F) -mFindNext.Caption=琩т(&N) -mGoto.Caption=铬锣(&G) -mSelectAll.Caption=匡(&A) -mOpter.Caption=巨(&P) -mOpterOption.Caption=巨匡兜(&O) -mAuto.Caption= 笆(&A) -mChkEmpty.Caption=琩 (&B) -mRead.Caption=弄 (&R) -mWrite.Caption=絪 祘(&W) -mVerify.Caption= 喷(&V) -mClean.Caption=揽 埃(&E) -mAbort.Caption=沧 ゎ(&T) -mDetect.Caption=浪代(&T) -mlanguages.Caption=粂ē(Languages)(&L) -mHelp.Caption=腊(&H) -mHelpContent.Caption=腊(&H) -mLicense.Caption=砛獺(&L) -mAbout.Caption=闽(&A) -pCopy.Caption=ī(&C) -pCopyAsHex.Caption=īHexΑ(&H) -pSelectAll.Caption=匡(&A) -BtnOpen.Caption=ゴ秨 -BtnOpen.Hint=ゴ秨 -BtnSave.Caption=玂 -BtnSave.Hint=玂 -BtnFill.Caption=恶 -BtnFill.Hint=恶 -BtnSwap.Caption=ユ传 -BtnSwap.Hint=ユ传 -BtnAuto.Caption=笆 -BtnAuto.Hint=笆 -BtnChkEmpty.Caption=琩 -BtnChkEmpty.Hint=琩 -BtnRead.Caption=弄 -BtnRead.Hint=弄 -BtnWrite.Caption=絪祘 -BtnWrite.Hint=絪祘 -BtnVerify.Caption=喷 -BtnVerify.Hint=喷 -BtnClean.Caption=揽埃 -BtnClean.Hint=揽埃 -BtnAbort.Caption=沧ゎ -BtnAbort.Hint=沧ゎ -BtnAbout.Caption=闽 -BtnAbout.Hint=闽 -BtnExit.Caption=癶 -BtnExit.Hint=癶 -lbChipType.Caption=摸: -lbManuName.Caption=紅坝: -lbChipName.Caption=嘿: -lbChipSize.Caption=甧秖: -BtnChipFind.Caption=琩т(&S) -BtnDetect.Caption=浪代(&D) -spStatus.!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -RzToolbar.CustomizeCaptions.Close=闽超 -RzToolbar.CustomizeCaptions.MoveDown=簿 -RzToolbar.CustomizeCaptions.MoveUp=簿 -RzToolbar.CustomizeCaptions.NoTextLabels=礚ゅ夹帽 -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=匡拒┦盢ゅ竚凹 -RzToolbar.CustomizeCaptions.ShowTextLabels=陪ボゅ夹帽 -RzToolbar.CustomizeCaptions.TextOptions=ゅ匡兜 -RzToolbar.CustomizeCaptions.Title=﹚竡ㄣ逆 -OD.DefaultExt=Bin -OD.Filter=や郎 (*.bin;*.hex)|*.bin;*.hex|Bin 郎 (*.Bin)|*.bin|Hex 郎(*.Hex)|*.hex|┮Τ郎 (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=や郎 (*.bin;*.hex)|*.bin;*.hex|Bin 郎 (*.Bin)|*.bin|Hex 郎(*.Hex)|*.hex|┮Τ郎 (*.*)|*.* -sCH341_Status=砞称硈钡篈: %s. -sUseTime=%s - ノ: %s -sRW_UseTime=%s - 硉: %d 竊/, : %d 竊, ノ: %s -sEditorOffset=竚: %s, %d -sNoCH341=ゼ祇瞷Τ絪祘竟硈钡筿福! -sIgnoreLengthRange=郎禬璖瞅, 禬场盢砆┛菠! -sRangeAddress=璖瞅(0x%s-0x%s) -sNoChipEmpty=赣ぃ. -sWriteOperTimeout=糶巨禬ア毖! -sChipContentDifferent=ず甧籔絯≧跋ず甧ぃ璓. -sEraseOk=揽埃巨Ч拨, 叫ㄏノ琩浪琩琌! -sChipBlank=琌フ! -sChipVerfyOK=籔絯≧跋ず甧璓! -sBeginRange=秨﹍禬璖瞅 -sEndRange=挡禬璖瞅 -sNotExit=絪祘竟い, 窽ゎ癶. -sFindNotWords=тぃ "%s" -sGoto=锣 -sUserAbort=ノめ沧ゎ -sConnectionStatus0=ゼ硈钡 -sConnectionStatus1=硈钡 -sInsertMode0=滦籠 -sInsertMode1=础 -sWorkStatus0=タ琩い... -sWorkStatus1=タ弄い... -sWorkStatus2=タ絪祘い... -sWorkStatus3=タ喷い... -sWorkStatus4=タ揽埃い... - -[TFrmFill] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=恶絯≧跋 -Btns.CaptionCancel=(&C) -Btns.CaptionOk=絋﹚(&O) -GB1.Caption=计沮 -GB2.Caption=璖瞅(0x0-0x0) -rbbit1.Caption=盽秖竊 (8bit) -rbbit2.Caption=盽秖竊 (16bit) -rbbit3.Caption=繦诀计 -rbbit4.Caption=竊 (8bit) -rbbit5.Caption=竊 (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=秨﹍: -RzLabel4.Caption=挡: - -[TFrmFind] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=琩т -lbFind.Caption=琩тず甧(&N): -cbNoCase.Caption=跋だ糶(&C) -cbHex.Caption=HexΑ(&H) -BtnFind.Caption=琩т(&F) -BtnClose.Caption=(&C) - -[TFrmOperOption] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=巨匡兜 -GB1.Caption=盽砏 -ChkWriteCompleteVerify.Caption=糶ЧΘ喷(&W) -ChkLastDir.Caption=癘程郎Ж(&L) -ChkWinStatus.Caption=癘跌怠竚㎝(&E) -GB2.Caption=25  -ChkUseFastRead.Caption=ㄏノе硉弄家Α(&U) -ChkUseAAI.Caption=SST/ESMTㄏノAAI絪祘家Α(&A) -GB3.Caption=笆絪祘匡兜 -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=揽 埃
琩 
絪 祘
 喷
-Btns.CaptionOk=絋﹚(&O) -Btns.CaptionCancel=(&C) - -[TFrmChipSel] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Caption=琩т -lbChipName.Caption=竟ン嘿: -lbChipFindInfo.Caption=ぃ跋だ糶, や '*' 硄皌才, ㄒ: EN25*80 -DBGrid.Columns.Item0.Title.Caption=嘿 -DBGrid.Columns.Item1.Title.Caption=甧秖 -DBGrid.Columns.Item2.Title.Caption=紅坝 -DBGrid.Columns.Item3.Title.Caption=摸 -Btns.CaptionCancel=(&C) -Btns.CaptionOk=匡拒(&S) -sChipFindCount=т %d 挡狦. - -[TFrmLicense] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -Btns.CaptionCancel=(&C) -Btns.CaptionOk=絋﹚(&O) -Caption=砛獺 -lbAddr.Caption= : -lbEmail.Caption=や腳: -lbID.Caption=ユ腹: -lbName.Caption=﹎ : -lbNickName.Caption=晤 嘿: -lbPhone.Caption=筿 杠: - -[TFrmAbout] -!Font=穝灿砰,9,,0,clWindowText,CHINESEBIG5_CHARSET -sAboutCaption=闽 -sVerCaption=セ: -sAuthorCaption=: -sClose=闽超(&C) -sLicenseCaption=砛: -sAuthor=筧獴 -sCopyRight=舦┮Τ (C) 2004 番腑絬 diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" deleted file mode 100644 index c8e52a1..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Languages/English.ini" +++ /dev/null @@ -1,191 +0,0 @@ -[!Global] -!LanguageID=1033 -!LanguageName=English -!TranslationAuthor=SkyGz.Com -!TranslationAuthorEmail= -!TranslationDefaultFont=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET - -[TFrmMain] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=CH341A Programmer -mFile.Caption=&File -mOpen.Caption=&Open -mSave.Caption=&Save -mExit.Caption=E&xit -mBuffer.Caption=Data &Buffer -mFill.Caption=&Fill Data Buffer -mSwap.Caption=Byte &Swap -mCopy.Caption=&Copy -mCopyAsHex.Caption=Copy as &hex -mFind.Caption=&Find -mFindNext.Caption=Find &next -mGoto.Caption=&Goto -mSelectAll.Caption=Select &All -mOpter.Caption=O&perate -mOpterOption.Caption=&Operate Option -mAuto.Caption=&Auto Program -mChkEmpty.Caption=&Blank Check -mRead.Caption=&Read Chip -mWrite.Caption=&Program Chip -mVerify.Caption=&Verify Chip -mClean.Caption=&Erase Chip -mAbort.Caption=Abor&t -mDetect.Caption=De&tect Chip -mlanguages.Caption=&Languages -mHelp.Caption=&Help -mHelpContent.Caption=&Help -mLicense.Caption=&License Info -mAbout.Caption=&About -pCopy.Caption=&Copy -pCopyAsHex.Caption=Copy as &hex -pSelectAll.Caption=Select &All -BtnOpen.Caption=Open -BtnOpen.Hint=Open -BtnSave.Caption=Save -BtnSave.Hint=Save -BtnFill.Caption=Fill -BtnFill.Hint=Fill Data Buffer -BtnSwap.Caption=Swap -BtnSwap.Hint=Byte Swap -BtnAuto.Caption=Auto -BtnAuto.Hint=Auto Program -BtnChkEmpty.Caption=Blank -BtnChkEmpty.Hint=Blank Check -BtnRead.Caption=Read -BtnRead.Hint=Read Chip -BtnWrite.Caption=Program -BtnWrite.Hint=Program Chip -BtnVerify.Caption=Verify -BtnVerify.Hint=Verify Chip -BtnClean.Caption=Erase -BtnClean.Hint=Erase Chip -BtnAbort.Caption=Abort -BtnAbort.Hint=Abort -BtnAbout.Caption=About -BtnAbout.Hint=About -BtnExit.Caption=Exit -BtnExit.Hint=Exit -lbChipType.Caption=Type: -lbManuName.Caption=Manu: -lbChipName.Caption=Name: -lbChipSize.Caption=Size: -BtnChipFind.Caption=Chip &Search -BtnDetect.Caption=&Detect -spStatus.!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -RzToolbar.CustomizeCaptions.Close=&Close -RzToolbar.CustomizeCaptions.MoveDown=Move Down -RzToolbar.CustomizeCaptions.MoveUp=Move Up -RzToolbar.CustomizeCaptions.NoTextLabels=No text labels -RzToolbar.CustomizeCaptions.SelectiveTextOnRight=Selective text on right -RzToolbar.CustomizeCaptions.ShowTextLabels=Show text labels -RzToolbar.CustomizeCaptions.TextOptions=Text Options -RzToolbar.CustomizeCaptions.Title=Custom Toolbar -OD.DefaultExt=Bin -OD.Filter=Support File (*.bin;*.hex)|*.bin;*.hex|Bin File (*.Bin)|*.bin|Hex File (*.Hex)|*.hex|All File (*.*)|*.* -SD.DefaultExt=Bin -SD.Filter=Support File (*.bin;*.hex)|*.bin;*.hex|Bin File (*.Bin)|*.bin|Hex File (*.Hex)|*.hex|All File (*.*)|*.* -sCH341_Status=Device state: %s. -sUseTime=%s - Time: %s -sRW_UseTime=%s - Speed: %d Byte/Sec, Size: %d Byte, Time: %s -sEditorOffset=Offset: %s, %d -sNoCH341=No programmer is connected to computer! -sIgnoreLengthRange=File length, beyond range of will be ignored. -sRangeAddress=Range(0x%s-0x%s) -sNoChipEmpty=The chips are not null. -sWriteOperTimeout=Write operations timeout failed! -sChipContentDifferent=Chip with the contents are in disagreement. -sEraseOk=Chip erasing is completed, please check is empty! -sChipBlank=Chip are blank! -sChipVerfyOK=Chip and buffer same! -sBeginRange=Start address out of range -sEndRange=End address out of range -sNotExit=Programmer working, Can't exit. -sFindNotWords=Not Find "%s" -sGoto=Goto -sUserAbort=User aborted -sConnectionStatus0=NotConnect -sConnectionStatus1=Connected -sInsertMode0=Overwrite -sInsertMode1=Insert -sWorkStatus0=Chkecking... -sWorkStatus1=Reading... -sWorkStatus2=Programing... -sWorkStatus3=Verifying... -sWorkStatus4=Eraseing... - -[TFrmFill] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Fill Data Buffer -Btns.CaptionCancel=&Cancel -Btns.CaptionOk=&OK -GB1.Caption=Data -GB2.Caption=Range(0x0-0x0) -rbbit1.Caption=Constant byte (8bit) -rbbit2.Caption=Constant byte (16bit) -rbbit3.Caption=Random values -rbbit4.Caption=Sequential bytes (8bit) -rbbit5.Caption=Sequential words (16bit) -RzLabel1.Caption=HEX: -RzLabel2.Caption=HEX: -RzLabel3.Caption=From: -RzLabel4.Caption=To: - -[TFrmFind] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Find -lbFind.Caption=Fi&nd content: -cbNoCase.Caption=&Case sensitive -cbHex.Caption=&Hex format -BtnFind.Caption=&Find next -BtnClose.Caption=&Cancel - -[TFrmOperOption] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Operate Option -GB1.Caption=General -ChkWriteCompleteVerify.Caption=&Write complete after verify -ChkLastDir.Caption=&Memorize last use in folder -ChkWinStatus.Caption=M&emorize windows position and size -GB2.Caption=25 Chips -ChkUseFastRead.Caption=&Use fast read mode -ChkUseAAI.Caption=SST/ESMT chip use &AAI program mode -GB3.Caption=Auto Program Option -CL.!GroupFont=MS Sans Serif,8,B,,clHighlight,DEFAULT_CHARSET -CL.Items.Text=Erase
Blank
Program
Verify
-Btns.CaptionOk=&OK -Btns.CaptionCancel=&Cancel - -[TFrmChipSel] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Caption=Chip Search -lbChipName.Caption=Chip Name: -lbChipFindInfo.Caption=Case insensitive, and support wildcard character '*', for example: EN25*80 -DBGrid.Columns.Item0.Title.Caption=Chip Name -DBGrid.Columns.Item1.Title.Caption=Chip Size -DBGrid.Columns.Item2.Title.Caption=Manufacture -DBGrid.Columns.Item3.Title.Caption=Type -Btns.CaptionCancel=&Cancel -Btns.CaptionOk=&Select -sChipFindCount=Find %d Chips. - -[TFrmLicense] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -Btns.CaptionOk=&OK -Caption=License Info -lbAddr.Caption=Address: -lbEmail.Caption=Email: -lbID.Caption=ID: -lbName.Caption=Name: -lbNickName.Caption=Nick Name: -lbPhone.Caption=Phone: - - -[TFrmAbout] -!Font=MS Sans Serif,8,,0,clWindowText,DEFAULT_CHARSET -sAboutCaption=About -sVerCaption=Version: -sAuthorCaption=Author: -sClose=&Close -sLicenseCaption=License: -sAuthor=SkyGz -sCopyRight=Copyright (C) 2004 SkyGz.Com \ No newline at end of file diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" deleted file mode 100644 index c9048ae..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/USBIOX.DLL" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" deleted file mode 100644 index bff8fe6..0000000 Binary files "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/Zlib1.dll" and /dev/null differ diff --git "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" "b/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" deleted file mode 100644 index 9862481..0000000 --- "a/Software/logic analyzer/\347\203\247\345\275\225\345\231\250\350\265\204\346\226\231/CH341A1.16 - 24\347\263\273\345\210\227EEPROM-25\347\263\273\345\210\227FLASH\347\274\226\347\250\213\350\275\257\344\273\266/\346\233\264\346\226\260\350\257\264\346\230\216.txt" +++ /dev/null @@ -1,104 +0,0 @@ -测试环境 WINXP 1.1G CPU, 512M内存 -测试结果仅供参考, 不同电脑配置, 速度有所影响 - -名称 容量 写入 读取 -WINBOND W25X80 1MByte/8MBit 42秒 8秒 -MXIC 25L1605D 2MByte/16MBit 1分23秒 18秒 -MXIC 25L3205D 4MByte/32MBit 35秒 -MXIC 25L6405D 8MByte/64MBit 1分10秒 -MXIC 25L12805D 16MByte/128MBit 2分20秒 - -1.00版 -完成基本功能 - -1.01版 -25系列应坛友要求加入128K支持 - -1.02版 -加入多语言了 -加入SST模式(待测) -能打开\保存Intel Hex文件了(待测),Hex文件格式解释可能有误, 不推荐使用 -加读取芯片标识和序列号(待测) -改了几处BUG - -1.03版 -修正打开\保存Intel Hex文件的功能, 用BIN\HEX交叉保存测试正常了, 用其它编程软件也能打开了 -修正多语言功能 -其它改动 - -1.04版 -加入防窗体假死, 肯定会影响烧写速度的 -加入在编程完成后自动校验功能 -读芯片信息功能在左侧也加入了 -语言文件有变动 -在编程工作时, 加入禁止退止 -修正 填充 窗口 范围地址不正常 -发现有不少芯片编程指令不同, 不能通过简单的选择容量解决, 下一版会做一个大改动. - -1.05版 -修正上一版因个人犯的严重失误导致所有芯片烧写失常 -移除SST模式, 用芯片数据库的芯片参数控制 -移除容量选择, 改用芯片数据库 -加入芯片数据库, 编程指令\参数存在数据库中, 改进为选择芯片类型\厂商\名称的方式 -加入芯片查找选择功能 -已知ESMT 25系列的的芯片 不能烧写, 待解决, 主要是手头没这芯片, 无法调试程序 - -1.06版 -修正芯片列表会出现报Listbox 索引 -1 的BUG -修正芯片查找 过滤功能不正常的BUG - -1.07版 -修正WIN7不能运行的BUG - -1.08版 -去除数据区已修改内容的着色功能, 让填充功能速度提升 -增加编程工作时, 禁用打开\保存\填充\交换功能, 避免误操作 -修正语言中一个错误的单词 -可以成功烧写SST和ESMT芯片了, 但速度超慢(没办法的, 这两种不支持按页编程模式) - -1.09版 -改窗体, 可以最大化, 适用大屏幕\大字体 WIN7.... -去掉认会眼花的文字效果 -修正KH芯片烧写问题 -芯片数据库加入几个型号的芯片 - -1.10版 -增加快速读取模式, 可以在操作选项窗口切换. 默认标准读取模式 否则为 快速读取模式 -增加SST/ESMT芯片使用AAI编程模式, 可以在操作选项窗口切换. 默认AAI编程模式 否则为 字节编程模式, 如果不能写入, 请切换为字节编程模式 -优化查空\读取\校验功能, 比原有速度快差不多一半时间 -增加状态栏显示当前操作状态 -增加选项 写入完成后校验 - -1.11版 -修正擦除后立刻写入时, 会报写入超时的问题 -修正擦除后立刻查空时, 有时会报芯片不为空的问题 -修改选项 AAI编程模式 默认为 不打钩 - -1.12版 -修改为使用USBIOX.DLL, 如想使用CH341DLL.DLL, 把CH341DLL.DLL放在软件目录下, 修改Config.ini中的 DriverDLL=DLL文件名 并保存即可 -增加缓冲区数据查找功能 -增加缓冲区数据跳转功能 -修正个别对25T80不能 擦除\编程 的问题 - -1.13版 -修改计时显示格式 原来的是 "分:秒:毫秒" 改为 "时:分:秒:毫秒" -增加可以拖放文件到程序中加载 -菜单增加全选缓冲区数据 - -1.14版 -增加终止功能, 可以在读写操作过程中进行终止. -修正状态栏显示当前操作的状态刷新不实时的问题 -芯片数据库增加了几个芯片 - -1.15版 -25芯片扩展支持最大容量到256MByte/2048MBit芯片, WINDOWS内存小于1G的, 请不选择, 否则是无法加载这么大的数据, 并会造成操作系统内存用尽,系统变慢... -修正对个别芯片在编程报"写操作超时失败"的BUG -增加记住最后使用的文件夹, 可在选项关闭 -增加记住窗口位置和大小,可在选项关闭 - -1.16版 -增加繁体中文语言 -修正芯片数据库中EON系列芯片, 有部份型号容量错误的问题 -芯片数据库再次增加了几个芯片 -重复修正对个别芯片在编程报"写操作超时失败"的BUG -其它细小的改动优化 \ No newline at end of file diff --git "a/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/AT24C02.pdf" "b/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/AT24C02.pdf" deleted file mode 100644 index 297eecb..0000000 Binary files "a/Software/logic analyzer/\350\212\257\347\211\207\346\211\213\345\206\214/AT24C02.pdf" and /dev/null differ