- วัสดุที่จำเป็น
- แผนภูมิวงจรรวม
- การอัพโหลด Maple Boot loader ไปยัง STM32 Development board
- การเตรียม Arduino IDE และการติดตั้งไดรเวอร์
- การเขียนโปรแกรม STM32 (Blue Pill) โดยตรงผ่านพอร์ต USB
คณะกรรมการพัฒนาการ STM32ที่อยู่อาศัย STM32F103C8 ไมโครคอนโทรลเลอร์จะได้รับความนิยมมากขึ้นขอบคุณสถาปัตยกรรม ARM Cortex M3 ของมันก็มีความเร็วในการดำเนินงานสูงและตัวเลือกอุปกรณ์ต่อพ่วงอื่น ๆ นอกจากนี้บอร์ดนี้สามารถตั้งโปรแกรมได้อย่างง่ายดายโดยใช้ Arduino IDE จึงกลายเป็นตัวเลือกที่ดีกว่าสำหรับมือสมัครเล่นและวิศวกรจำนวนมากสำหรับการสร้างต้นแบบอย่างรวดเร็ว
ในบทช่วยสอนก่อนหน้านี้เราได้เรียนรู้พื้นฐานของ STM32 Development Board และยังตั้งโปรแกรมให้กะพริบ LED แต่มีข้อเสียเปรียบอย่างมากอย่างหนึ่ง ในการตั้งโปรแกรมบอร์ดเราใช้โมดูลโปรแกรมเมอร์ FTDI และต้องสลับจัมเปอร์ 0 บูตระหว่างและ 1 ตำแหน่งในขณะที่อัปโหลดและทดสอบโค้ดซึ่งเป็นงานที่น่ากลัวอย่างแน่นอน นอกจากนี้พอร์ต mini-USB บนบอร์ดพัฒนาก็ไม่ได้ใช้งานโดยสิ้นเชิง เหตุผลในการทำเช่นนั้นคือเมื่อซื้อบอร์ดพัฒนา STM32 แล้วจะไม่ได้มาพร้อมกับบูตโหลดเดอร์ Arduino และด้วยเหตุนี้คอมพิวเตอร์ของคุณจะไม่ค้นพบบอร์ดเมื่อเชื่อมต่อผ่าน USB
หวังว่าจะมีบูตโหลดเดอร์ทดลองที่พัฒนาโดย LeafLabs สำหรับเมเปิ้ลมินิบอร์ด บูตโหลดเดอร์นี้สามารถแฟลชลงใน STM32 หนึ่งครั้งและหลังจากนั้นเราสามารถใช้พอร์ต USB ของบอร์ด STM32 ได้โดยตรงเพื่ออัปโหลดโปรแกรมเช่นเดียวกับบอร์ด Arduino อื่น ๆ อย่างไรก็ตามบูตโหลดเดอร์นี้ยังอยู่ในขั้นตอนการพัฒนาในขณะที่จัดทำเอกสารบทช่วยสอนนี้และไม่แนะนำให้ใช้กับแอปพลิเคชันที่สำคัญ ก่อนดำเนินการตามบทช่วยสอนนี้ตรวจสอบให้แน่ใจว่าคุณได้อ่านบทช่วยสอนก่อนหน้านี้เพื่อทำความเข้าใจพื้นฐานของบอร์ดนี้รวมถึงรายละเอียดเกี่ยวกับข้อกำหนดและพินเอ้าท์
วัสดุที่จำเป็น
- STM32 - (BluePill) คณะกรรมการพัฒนาการ (STM32F103C8)
- โปรแกรมเมอร์ FTDI
- เขียงหั่นขนม
- การเชื่อมต่อสายไฟ
- แล็ปท็อปพร้อมอินเทอร์เน็ต
แผนภูมิวงจรรวม
ในการตั้งโปรแกรมบอร์ด STM32 Blue Pill โดยตรงผ่านพอร์ต USB เราจำเป็นต้องแฟลชตัวโหลดบูต Maple เข้ากับ MCU ก่อน ในการดำเนินการนี้เราจำเป็นต้องใช้บอร์ด Serial FTDI บอร์ดนี้เชื่อมต่อกับขา Rx และ Tx ของ STM32 ตามที่แสดงด้านล่าง
พิน Vcc ของบอร์ด FTDI เชื่อมต่อกับพิน STM32 5V ของเพาเวอร์บอร์ด กราวด์เชื่อมต่อกับกราวด์ของ STM32 พิน Rx และ Tx ของบอร์ด FTDI เชื่อมต่อกับพิน A9 และ A10 ของ STM32 ตามลำดับ โดยที่ A9 คือพิน Tx ของ STM32 MCU และ A10 คือพิน Rx
ตรวจสอบให้แน่ใจว่าพินจัมเปอร์บูต 0 บนบอร์ดตั้งค่าเป็น 1 (โหมดการเขียนโปรแกรม) ขณะอัปโหลดบูต เมื่อตัวโหลดบูตกะพริบพินนี้สามารถเปลี่ยนกลับไปที่ตำแหน่งเริ่มต้น (โหมดการทำงาน)
การอัพโหลด Maple Boot loader ไปยัง STM32 Development board
เมื่อเราทำการเชื่อมต่อข้างต้นแล้วให้เชื่อมต่อบอร์ด FTDI กับคอมพิวเตอร์ของคุณและทำตามขั้นตอนเพื่อแฟลชตัวบูตเข้ากับ STM32
ขั้นตอนที่ 1: เราต้องดาวน์โหลดไบนารีไฟล์โปรแกรมบูตโหลดเดอร์ (ไฟล์ bin) จากหน้า github ไฟล์ bin มีหลายเวอร์ชันสำหรับบอร์ด Blue Pill ให้ใช้ลิงก์ github นี้และคลิกที่ปุ่มดาวน์โหลดเพื่อดาวน์โหลดไฟล์ bin
ขั้นตอนที่ 2: ต่อไปเราต้องดาวน์โหลดและติดตั้งซอฟต์แวร์ STM Flash loader เพื่อแฟลชไฟล์ bin ที่ดาวน์โหลดมาลงใน STM32 คลิกที่ลิงค์นี้เพื่อเข้าสู่เว็บไซต์ ST และเลื่อนไปที่ด้านล่างและคลิกที่รับซอฟต์แวร์
ขั้นตอนที่ 3: ในการดาวน์โหลดซอฟต์แวร์คุณต้องป้อนที่อยู่อีเมลของคุณจากนั้นลิงค์ดาวน์โหลดจะถูกส่งไปยังอีเมลของคุณ จากนั้นไปที่ลิงค์กลับไปที่เว็บไซต์และคลิกที่รับซอฟต์แวร์อีกครั้งและคุณจะเริ่มดาวน์โหลด ใช่มันน่าหงุดหงิดเล็กน้อย แต่นี่คือวิธีที่ควรทำ อย่าลืมตรวจสอบโฟลเดอร์สแปมของคุณสำหรับอีเมลบางครั้งอาจใช้เวลาสองถึงสามนาทีกว่าที่อีเมลจะมาถึง
ขั้นตอนที่ 4: เมื่อดาวน์โหลดแล้วให้ติดตั้งซอฟต์แวร์ตรวจสอบให้แน่ใจว่าบอร์ด STM32 ของคุณเชื่อมต่อกับคอมพิวเตอร์ของคุณผ่านบอร์ด FTDI จากนั้นเปิดซอฟต์แวร์ ซอฟต์แวร์จะตรวจจับพอร์ต COM โดยอัตโนมัติหากไม่ใช้ตัวจัดการอุปกรณ์และตรวจสอบให้แน่ใจว่าคุณเลือกหมายเลขพอร์ต COM ที่ถูกต้อง ในกรณีของฉันมันคือ COM4 ปล่อยให้ส่วนที่เหลือของการตั้งค่าตามที่แสดงด้านล่าง
ขั้นตอนที่ 5: คลิกที่ปุ่มถัดไปสองครั้งจากนั้นซอฟต์แวร์จะตรวจหารายละเอียดบอร์ดและแสดงผลโดยอัตโนมัติตามที่แสดงด้านล่าง บอร์ดที่เราใช้คือ STM32F1 พร้อมหน่วยความจำแฟลช 128K
ขั้นตอนที่ 6: ในขั้นตอนต่อไปให้เลือกดาวน์โหลดลงในอุปกรณ์และเรียกดูตำแหน่งที่เราดาวน์โหลดไฟล์ bin ของเราในขั้นตอนที่ 1 แล้วเลือก คลิกที่ถัดไป
ขั้นตอนที่ 7: ซอฟต์แวร์จะดาวน์โหลดไฟล์ที่ต้องการตามที่แสดงด้านล่างจากนั้นจะเริ่มกระบวนการกระพริบ
ขั้นตอนที่ 8: เมื่อการกระพริบเสร็จสมบูรณ์เราจะได้หน้าจอด้านล่าง คลิกที่ปิดและออกจากแอปพลิเคชัน เราได้แฟลชบอร์ด STM32 ด้วย Arduino boot loader เรียบร้อยแล้ว ตอนนี้เราต้องเตรียม Arduino IDE และติดตั้งไดรเวอร์ก่อนที่เราจะสามารถตั้งโปรแกรมบอร์ด STM32 ได้
การเตรียม Arduino IDE และการติดตั้งไดรเวอร์
ทำตามขั้นตอนด้านล่างเพื่อดาวน์โหลดและเตรียม Arduino IDE เพื่อใช้กับบอร์ดพัฒนา STM 32
ขั้นตอนที่ 1: - หากคุณยังไม่ได้ติดตั้ง Arduino IDE ให้ดาวน์โหลดและติดตั้งจากลิงค์นี้ ตรวจสอบให้แน่ใจว่าคุณเลือกระบบปฏิบัติการที่ถูกต้อง
ขั้นตอนที่ 2: - หลังจากติดตั้ง Arduino IDE แล้วให้เปิดและดาวน์โหลดแพ็คเกจที่จำเป็นสำหรับบอร์ด STM32 ซึ่งสามารถทำได้โดยการเลือก File -> การตั้งค่า
ขั้นตอนที่ 3: - คลิกที่การตั้งค่าจะเปิดกล่องโต้ตอบที่แสดงด้านล่าง ในกล่องข้อความ Boards Manager URL เพิ่มเติมให้วางลิงก์ด้านล่าง
dan.drown.org/stm32duino/package_STM32duino_index.json
แล้วกดตกลง
ขั้นตอนที่ 4: - ตอนนี้ไปที่ เครื่องมือ -> บอร์ด -> ผู้จัดการคณะกรรมการ ซึ่งจะเป็นการเปิดกล่องโต้ตอบตัวจัดการบอร์ดค้นหา“ STM32F1” และติดตั้งแพ็คเกจที่ปรากฏขึ้น
ขั้นตอนที่ 5: หลังจากที่มีการติดตั้งแพคเกจไปที่ C: \ Program Files (x86) Arduino \ ฮาร์ดแวร์ \ Arduino_STM32 ต้นแบบ \ Drivers \ ชนะที่คุณจะพบ install_drivers.bat และ install_STM_COM_drivers.bat
ขั้นตอนที่ 6: คลิกที่ไฟล์ bat และติดตั้งไดรเวอร์ คุณจะได้หน้าจอ DOS ดังภาพด้านล่าง
ตอนนี้ Arduino IDE เตรียมไว้สำหรับการเขียนโปรแกรมบอร์ดพัฒนา STM32 (Blue Pill) และติดตั้งไดรเวอร์ด้วย
การเขียนโปรแกรม STM32 (Blue Pill) โดยตรงผ่านพอร์ต USB
ถอดบอร์ด FTDI และการเชื่อมต่อทั้งหมดที่มีอยู่ออกจากคุณ STM32 เพียงใช้พอร์ต micro-USB บนบอร์ด STM32 เพื่อเชื่อมต่อกับคอมพิวเตอร์ดังที่แสดงด้านล่าง ตรวจสอบให้แน่ใจว่า ขาจัมเปอร์ 0 อยู่ในตำแหน่งกลับที่ 0 (โหมดการทำงาน) หลังจากนี้เราไม่จำเป็นต้องสลับจัมเปอร์อีกต่อไปเพื่ออัปโหลดและเรียกใช้โปรแกรม
คอมพิวเตอร์ของคุณควรจะสามารถค้นพบบอร์ดได้แล้ว รอสักครู่หากคุณเห็นไดรเวอร์เพิ่มเติมกำลังติดตั้งอยู่ จากนั้นเข้าสู่ Device manager และตรวจสอบว่าบอร์ด STM32 ของคุณถูกค้นพบภายใต้ส่วน COM และพอร์ตดังที่แสดงด้านล่างหรือไม่ Mine เชื่อมต่อกับ COM8 ด้วยชื่อ Maple Mini
ไปที่ Tools และเลื่อนลงเพื่อค้นหา Generic STM32F103C series ตามที่แสดงด้านล่าง แล้วให้แน่ใจว่าตัวแปรเป็น 64k ประเภทแฟลช , ความเร็วของ CPU เป็น 72MHz และเปลี่ยนวิธีการในการอัปโหลด STM32duino Bootloader เลือกพอร์ต COM ที่ถูกต้องตามพอร์ตบนตัวจัดการอุปกรณ์ของคุณด้วย
หลังจากทำการเปลี่ยนแปลงทั้งหมดแล้วให้ตรวจสอบที่มุมล่างขวาของ Arduino IDE และคุณควรสังเกตว่ามีการตั้งค่าต่อไปนี้ บอร์ด STM32 ของฉันเชื่อมต่อกับ COM8 แต่ของคุณอาจแตกต่างออกไป
ตอนนี้ Arduino IDE พร้อมที่จะตั้งโปรแกรมบอร์ดพัฒนายาสีน้ำเงิน STM 32 แล้ว ให้เราอัปโหลด Sample Blink Program จาก Arduino IDE ไปยังบอร์ด STM32 Blue Pill เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง โปรแกรมตัวอย่างสามารถพบได้ที่
ในโปรแกรมตัวอย่างที่เปิดขึ้น เราจะต้องทำการเปลี่ยนแปลงเล็กน้อย โดยค่าเริ่มต้นโปรแกรมจะเขียนขึ้นสำหรับ PB1 แต่บนบอร์ดของเรา LED ออนบอร์ดเชื่อมต่อกับ PC13 ดังนั้นให้เปลี่ยน PB1 ทั้งหมดด้วย PC13 และเราก็พร้อมที่จะดำเนินการต่อ โปรแกรมตัวอย่างที่สมบูรณ์ ซึ่งมีการแก้ไขยังสามารถพบได้ที่ด้านล่างของหน้านี้
โค้ดภายใน ฟังก์ชั่น ลูป เพียงอย่างเดียวแสดงอยู่ด้านล่างซึ่งเราสามารถสังเกตได้ว่าพิน PC13 ถูกเก็บไว้สูง (เปิด) เป็นเวลา 1,000 มิลลิวินาทีจากนั้นจึงปิด LOW (ปิด) อีก 1,000 มิลลิวินาทีและจะทำเป็นเวลาที่ไม่มีที่สิ้นสุดเนื่องจากอยู่ใน ฟังก์ชัน ลูป ดังนั้นดูเหมือนว่าไฟ LED จะกะพริบเป็นช่วง 1,000 มิลลิวินาที
digitalWrite (PC13, สูง); // เปิดไฟ LED (สูงคือระดับแรงดันไฟฟ้า) ล่าช้า (1000); // รอ digitalWrite วินาที(PC13, LOW); // ปิดไฟ LED โดยทำให้แรงดันไฟฟ้าล่าช้าต่ำ(1,000); // รอสักครู่
กดปุ่มอัปโหลดบน Arduino IDE และโปรแกรมของคุณควรได้รับการรวบรวมและอัปโหลด หากทุกอย่างทำงานได้ตามที่คาดไว้คุณจะเห็นสิ่งต่อไปนี้บนคอนโซล Arduino IDE ของคุณ
หากอัปโหลดโปรแกรมสำเร็จคุณจะเห็นไฟ LED สีเขียวกะพริบในช่วงเวลา 1 วินาทีดังที่แสดงใน วิดีโอ ด้านล่าง คุณยังสามารถใช้โปรแกรมเพื่อเพิ่มหรือลดความล่าช้าได้อีกด้วย ตอนนี้คุณสามารถเริ่มใช้บอร์ดพัฒนา STM32 (Blue Pill) เหมือนกับบอร์ด Arduino อื่น ๆ นั่นคือคุณไม่จำเป็นต้องเปลี่ยนตำแหน่งของจัมเปอร์หรือใช้ฮาร์ดแวร์ภายนอกเพื่ออัปโหลดและทดสอบโปรแกรมอีกต่อไป
หวังว่าคุณจะเข้าใจการกวดวิชาและพบว่ามันมีประโยชน์ที่จะ เริ่มต้นกับ STM32 คณะกรรมการ หากคุณมีปัญหาใด ๆ ทิ้งไว้ในส่วนความคิดเห็นและบอกฉันด้วยว่าเราควรลองทำโครงการอะไรกับบอร์ด STM32 นี้ในอนาคต