สารบัญ:
วีดีโอ: การดีบักแบบอนุกรมด้วย CloudX: 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ในโครงการนี้ ฉันตั้งเป้าที่จะอธิบายแนวคิดของการดีบักผ่านเทอร์มินัลอนุกรม แต่ก่อนอื่น เรามาอธิบายแนวคิดผ่านความหมายกันก่อน
1. การสื่อสารแบบอนุกรม
การสื่อสารแบบอนุกรมใช้สำหรับการสื่อสารระหว่างบอร์ด CloudX กับคอมพิวเตอร์หรืออุปกรณ์อื่นๆ บอร์ด CloudX ทั้งหมดมีพอร์ตอนุกรมที่เห็นอย่างน้อยหนึ่งพอร์ต (หรือที่เรียกว่า UART หรือ USART): อนุกรม มันสื่อสารบนพิน RX และ TX แบบดิจิตอลกับฮาร์ดแวร์อื่น ๆ หรือโมดูลการสื่อสารแบบอนุกรม (เช่น gsm และ gps) เช่นเดียวกับคอมพิวเตอร์ผ่าน USB โดยใช้ SoftCard ดังนั้น หากคุณใช้ฟังก์ชันเหล่านี้ คุณจะไม่สามารถใช้ TX และ RX สำหรับอินพุตหรือเอาต์พุตดิจิทัลได้ คุณสามารถใช้จอภาพอนุกรมในตัวของสภาพแวดล้อม CloudX เพื่อสื่อสารกับบอร์ด CloudX คลิกปุ่มมอนิเตอร์แบบอนุกรมในแถบเครื่องมือและเลือกอัตราบอดเดียวกับที่ใช้ในพารามิเตอร์ที่เรียกว่า serialBegin()
2. ดีบัก
การดีบักหมายถึงการระบุและลบข้อผิดพลาดจาก (ฮาร์ดแวร์หรือซอฟต์แวร์ของคอมพิวเตอร์) การดีบักเกี่ยวข้องกับการค้นหาและแก้ไขข้อผิดพลาดของโค้ดในโปรแกรมคอมพิวเตอร์ การดีบักเป็นส่วนหนึ่งของกระบวนการทดสอบซอฟต์แวร์และเป็นส่วนสำคัญของวงจรการพัฒนาซอฟต์แวร์ทั้งหมด ให้ยกตัวอย่างว่าโค้ดของคุณคอมไพล์สำเร็จแล้ว และคุณกำลังทดสอบฮาร์ดแวร์และไม่ทำงานตามที่คาดไว้ แม้ว่าจะมีหลายวิธีในการดีบักโค้ดของคุณ วิธีที่ง่ายและมีประสิทธิภาพในการดีบักคือการใช้การดีบักแบบอนุกรม CloudX IDE สร้างไฟล์ 2 ประเภทจากการคอมไพล์ที่ประสบความสำเร็จ ไฟล์ HEX และ COFF ไฟล์ HEX เป็นรหัสเครื่องอย่างเคร่งครัด ซึ่งเป็นสิ่งที่บูตโหลดเข้าสู่บอร์ดเพื่อดำเนินการในโลกแห่งความเป็นจริง แต่ยังสามารถเรียกใช้บนซอฟต์แวร์จำลองพีซีของคุณ เช่น Proteus Isis ในขณะที่ไฟล์ COFF เป็นรูปแบบที่สามารถอ่านได้บนซอฟต์แวร์จำลอง PC ของคุณ (Proteus Isis). สำหรับขอบเขตนี้ เราจะพิจารณาการดีบักพื้นฐานสองประเภทบนโปรโตคอลอนุกรม
1. การดีบักแบบอนุกรมแบบอ่อน:
ในวิธีนี้ ทุกการทดสอบและการดีบักจะทำบนพีซีผ่านซอฟต์แวร์ที่มีประโยชน์ เช่น Proteus ISIS เนื่องจากโดยทั่วไป CloudX สร้างไฟล์ COFF ฉันขอแนะนำให้ใช้สิ่งนี้สำหรับการจำลองพีซีเพราะโดยพื้นฐานแล้วคุณสามารถก้าวระหว่างบรรทัดของรหัสและค้นหาว่าปัญหามาจากที่ใด และหากรหัสของคุณต้องทำงานโดยไม่ก้าว ให้ใช้ virtual teminal จาก "virtual โหมดเครื่องมือ" คุณสามารถทราบได้ตลอดเวลาว่าตัวควบคุมกำลังทำงานอยู่ที่บรรทัดใด มาดูตัวอย่างโค้ดนี้กัน
ขั้นตอนที่ 1:
/*
* ไฟล์: newmain.c
* ผู้แต่ง: OGBOYE GODWIN * * สร้างเมื่อ 28 มิถุนายน 2018, 10:15 น. */
#รวม
#รวม
/* เราจะทำให้
หมุดสีแดง1 หมุดสีเขียว2 หมุดสีเหลือง3 * หมุดปุ่ม4 */ ถ่าน *บอก= "หืม ฉันเคยสัมผัสแล้ว"; ตั้งค่า () { โหมดพิน (1, เอาต์พุต); โหมดพิน (2, เอาต์พุต); โหมดพิน (3, เอาต์พุต); โหมดพิน (4, อินพุต); Serial_begin(9600); วนซ้ำ (){ ในขณะที่ (!readPin (4)); Serial_writeText(บอก); Serial_writeText("….เปลี่ยนเป็นสีแดง"); Serial_write(0x0D); portWrite(1, 0x00); pinSelect(1, สูง); ความล่าช้า (200); // ลองลบความคิดเห็นทั้งหมดออกแล้วดูว่าเกิดอะไรขึ้น // จากนั้นแทนที่ (คุณจะต้องชอบอย่างแน่นอน!) ในขณะที่(!readPin(4)); Serial_writeText(บอก); Serial_writeText("….เปลี่ยนเป็นสีเขียว"); Serial_write(0x0D); portWrite(1, 0x00); pinSelect(2, สูง); ความล่าช้า (200); // ลองลบความคิดเห็นทั้งหมดออกแล้วดูว่าเกิดอะไรขึ้น // จากนั้นแทนที่ (คุณจะต้องชอบอย่างแน่นอน!)
ในขณะที่(!readPin(4));
Serial_writeText(บอก); Serial_writeText("….เปลี่ยนเป็นสีเหลือง"); Serial_write(0x0D); portWrite(1, 0x00); pinSelect(3, สูง); ความล่าช้า (200); // ลองลบความคิดเห็นทั้งหมดออกแล้วดูว่าเกิดอะไรขึ้น // จากนั้นแทนที่ (คุณจะต้องชอบอย่างแน่นอน!) } }
ด้วยสิ่งนี้ คุณจะเห็นว่าการดีบักแบบอนุกรมมีความสำคัญอย่างไร หากคุณลบการหน่วงเวลา ถ้าคุณทำอย่างนั้น คุณจะเห็นว่ามันสร้างปัญหาให้กับโค้ดง่ายๆ ได้อย่างไร หากมันถูกเรียกใช้งานในโลกแห่งความเป็นจริงโดยไม่เกิดความล่าช้า
ขั้นตอนที่ 2:
2. การดีบักฮาร์ดแวร์:
ในวิธีนี้ การทดสอบและการดีบักทุกอย่างทำได้โดยแนบบอร์ดต้นแบบ CloudX เข้ากับพีซีโดยใช้ซอฟต์การ์ด และใช้เทอร์มินัลซีเรียลของ CloudX IDE (แนะนำ) หรือซอฟต์แวร์ที่มีประโยชน์อื่นๆ เช่น Proteus ISIS compim, realTerm ฯลฯ สร้าง COFF ไฟล์ไม่สามารถใช้ได้ที่นี่เพราะวิธีนี้ต้องการ HEX bootloaded ลงในฮาร์ดแวร์ ฉันขอแนะนำให้ใช้สิ่งนี้สำหรับซอฟต์การ์ด CloudX โปรดทราบว่าโค้ดของคุณทำงานโดยไม่ต้องก้าว ดังนั้นคุณจึงสามารถทราบได้ตลอดเวลาว่าตัวควบคุมกำลังทำงานอยู่ที่บรรทัดใดโดยเอาต์พุตแบบอนุกรม ลองดูที่โค้ดนี้ในตัวอย่างเดียวกันกับที่กล่าวข้างต้น ตั้งค่าฮาร์ดแวร์ของคุณให้คล้ายกับเหมือง LED สีแดง --------- ไปยัง pin1 LED สีเขียว --------- ไฟ LED สีเหลือง pin2 -- -------- ปุ่ม pin3 --------- pin4
ขั้นตอนที่ 3:
ขั้นตอน
1. ใช้รหัสเดียวกับด้านบน
2. bootload ลงในบอร์ดของคุณ
3. เริ่ม CloudX Serial Terminal โดยคลิกปุ่ม "serial" ในแถบเครื่องมือ
4. เลือกพอร์ตและอัตราบอดที่ต้องการ (9600 ในบทช่วยสอนนี้)
5. เริ่มต้นเทอร์มินัลโดยคลิกที่เชื่อมต่อ (ยกเลิกการเชื่อมต่อหากคุณต้องการออก)
6. เมื่อเปิด/เชื่อมต่อพอร์ตแล้ว ให้กดปุ่มตามต้องการสักครู่ แล้วคุณจะเห็นเอาต์พุตอนุกรมที่แสดงบนหน้าต่างเทอร์มินัล โปรดทราบว่าหากคุณมีความล่าช้าในโค้ด คุณจะได้รับเอาต์พุตแบบอนุกรมหลายบรรทัดที่ทำงานอย่างรวดเร็วโดยไม่มีการควบคุม ก่อนที่คุณจะปล่อยมือจากปุ่ม หากคุณมีปัญหาดังกล่าวหรือคล้ายกันไม่ว่าด้วยเหตุผลใดก็ตามในโค้ดของคุณ คุณสามารถใช้วิธีนี้เพื่อแก้ไขจุดบกพร่องได้เสมอ
แนะนำ:
Simple CloudX M633 นาฬิกาจับเวลาดิจิตอล: 4 ขั้นตอน
Simple CloudX M633 Digital Stopwatch: ในโครงการนี้ เราจะสร้างนาฬิกาดิจิทัลรุ่นหนึ่งที่สามารถบันทึกชั่วโมง นาที และวินาที ได้เหมือนกับนาฬิกาจับเวลาบนโทรศัพท์มือถือของคุณ! เราจะใช้ LCD เพื่อแสดงเวลา
ข้อมูลเบื้องต้นเกี่ยวกับไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน
ข้อมูลเบื้องต้นเกี่ยวกับไมโครคอนโทรลเลอร์ CloudX: ไมโครคอนโทรลเลอร์ CloudX เป็นฮาร์ดแวร์โอเพ่นซอร์สและซอฟต์แวร์ไมโครคอมพิวเตอร์ที่ช่วยให้คุณสามารถสร้างโครงการแบบโต้ตอบของคุณเองได้ CloudX เป็นชิปบอร์ดขนาดเล็กที่ให้ผู้ใช้บอกได้ว่าต้องทำอะไรก่อนดำเนินการใดๆ โดยยอมรับค
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: 3 ขั้นตอน
การควบคุมมอเตอร์กระแสตรงด้วย L298N โดยใช้ไมโครคอนโทรลเลอร์ CloudX: ในโครงการนี้ เราจะอธิบายวิธีใช้สะพาน H L298N ของเราเพื่อเพิ่มและลดความเร็วของมอเตอร์กระแสตรง โมดูลสะพาน H L298N สามารถใช้กับมอเตอร์ที่มีแรงดันไฟฟ้าระหว่าง 5 ถึง 35V DC นอกจากนี้ยังมีตัวควบคุมออนบอร์ด 5V ดังนั้นหากคุณ
แป้นพิมพ์ที่มี 7 ส่วนโดยใช้ CloudX MICROCONTROLLER: 4 ขั้นตอน
แป้นพิมพ์ที่มี 7 ส่วนโดยใช้ CLOUDX MICROCONTROLLER: สำหรับโครงการนี้ เราจะยอมรับการป้อนข้อมูลที่เป็นตัวเลขจากแป้นพิมพ์เมทริกซ์ แล้วแสดงบนโมดูลการแสดงผลเจ็ดส่วน เนื่องจาก LED 8 ดวงติดป้าย A ถึง G และ DP (สำหรับจุดทศนิยม) หากคุณต้องการแสดงตัวเลข 6 คุณจะต้องใช้
ลูกเต๋าอิเล็กทรอนิกส์โดยใช้ CloudX M633: 5 ขั้นตอน
ลูกเต๋าอิเล็กทรอนิกส์โดยใช้คลาวด์ M633: เราทุกคนต้องเคยเล่นเกมแห่งโอกาสไม่ทางใดก็ทางหนึ่งโดยใช้ลูกเต๋า การได้รู้ถึงลักษณะที่คาดเดาไม่ได้ว่าการทอยลูกเต๋าจะออกมาเป็นอย่างไร ช่วยเพิ่มความสนุกให้กับเกม ฉันขอนำเสนอได