- การตั้งค่า Arduino IDE
- การตั้งค่าบอร์ด STM8S103F3 สำหรับ Arduino IDE Programming
- LED กะพริบบน STM8S103F3 โดยใช้ Arduino
- Arduino Pin Mapping สำหรับ STM8S103F3
- การรวบรวม SPL Libraries บน Arduino IDE
Arduino ได้เติบโตขึ้นเป็นเครื่องมือสร้างต้นแบบที่ใช้งานง่ายและรวดเร็วอย่างไม่ต้องสงสัยเนื่องจากชุมชนผู้ใช้ที่สนับสนุน วันนี้เนื่องจากลักษณะของโอเพนซอร์สแพลตฟอร์มจึงไม่เพียง จำกัด เฉพาะบอร์ด Arduino เท่านั้น แต่ยังรวมถึงบอร์ดพัฒนาอื่น ๆ เช่น NodeMCU, ESP8266, STM32, MSP430 และอื่น ๆ จาก Arduino IDE หากคุณสนใจที่จะทราบวิธีการคุณสามารถติดตามลิงก์ด้านล่าง
- การเขียนโปรแกรม NodeMCU ด้วย Arduino IDE
- การเขียนโปรแกรม ESP8266 ด้วย Arduino IDE
- การเขียนโปรแกรม STM32 ด้วย Arduino IDE
- การเขียนโปรแกรม MSP430 ด้วย Energeia (คล้ายกับ Arduino)
ไม่ต้องสงสัยเลยว่า Arduino IDE นั้นยอดเยี่ยมสำหรับผู้เริ่มต้น แต่ถึงกระนั้นสำหรับการพัฒนาอย่างมืออาชีพการทำงานกับสภาพแวดล้อมการพัฒนาดั้งเดิมและคอมไพเลอร์ก็เป็นสิ่งที่ดี เช่นเดียวกับ MPLABX สำหรับ PIC Microcontrollers และ Code Composer studio สำหรับ TI Microcontrollers การใช้แพลตฟอร์มเนทีฟทำให้เราสามารถทำงานในระดับรีจิสเตอร์ได้ (แม้กระทั่งระดับแอสเซมบลีหากจำเป็น) ทำให้โปรแกรมมีหน่วยความจำที่มีประสิทธิภาพมากขึ้น นี่คือเหตุผลที่เมื่อเราเริ่มการสอนไมโครคอนโทรลเลอร์ STM8Sซีรีส์ทางเลือกของแพลตฟอร์มคือคอมไพเลอร์ STVD และ Cosmic C ซึ่งทั้งสองอย่างนี้สามารถดาวน์โหลดและใช้งานได้ฟรี น่าเสียดายที่ STVD เป็น IDE ที่เก่ามากและให้ความรู้สึกเหมือนยุค 90 ในขณะที่ทำงานกับมัน ยิ่งไปกว่านั้นเครื่องมือโปรแกรมเมอร์ STVP ยังรวมเข้ากับ IDE ได้ไม่ดีและคุณต้องใช้แยกต่างหาก ซึ่งจะเพิ่มเวลาในการรวบรวมและอัปโหลดและทำให้การพัฒนาและการแก้ไขจุดบกพร่องเป็นเรื่องยาก
ฉันค้นหาทางเลือกอื่นและนั่นคือตอนที่ Arduino IDE มาเพื่อช่วยเหลือ เครื่องมือที่เรียกว่า Sduino โดย Michael Mayor ช่วยให้เราสามารถตั้งโปรแกรมไมโครคอนโทรลเลอร์ STM8s (ส่วนใหญ่ที่เป็นที่นิยม) จาก Arduino IDE ได้โดยตรงและใช้เวลาเพียงไม่กี่นาทีในการตั้งค่าและเริ่มต้นใช้งาน สิ่งที่น่าสนใจกว่านั้นคือนอกเหนือจากการรองรับการเขียนโปรแกรมสไตล์ Arduino แล้ว Sduino ยังช่วยให้เราใช้ Standard Peripheral Library (SPL) กล่าวอีกนัยหนึ่งเราสามารถรวบรวมโปรแกรมเดียวกันบน STVD ลงใน Arduino IDE ได้ แม้ว่า Sduino จะเป็นเครื่องมือที่ยอดเยี่ยม แต่ก็ยังอยู่ในระหว่างการพัฒนาและยังไม่รองรับไลบรารีและฟังก์ชันต่างๆของ Arduino ตามที่กล่าวมาเรามาเรียนรู้วิธีใช้Arduino IDE กับ STM8S103F Development Boardหากคุณยังใหม่กับบอร์ดนี้ให้ตรวจสอบการเริ่มต้นใช้งานบทช่วยสอน STM8S103F นอกเหนือจาก STM8S103F แล้ว Sduino ยังรองรับไมโครคอนโทรลเลอร์ STM8S อื่น ๆ เช่น STM8S003, STM8S105C, STM8S105K, STM8S, STM8S208MB, ESP14 เป็นต้นขั้นตอนที่อธิบายในบทช่วยสอนนี้จะเหมือนกันสำหรับทั้งหมด
การตั้งค่า Arduino IDE
ขั้นตอนที่ 1:หากคุณยังใหม่กับ Arduino Environment ให้ดาวน์โหลด Arduino ตามระบบปฏิบัติการของคุณและติดตั้ง
ขั้นตอนที่ 2:ตาม ไฟล์ -> การตั้งค่า เพื่อเปิดหน้าต่างการตั้งค่าและวางลิงค์ที่ระบุด้านล่างลงในบอร์ดเพิ่มเติมจัดการกล่องข้อความ URL และคลิกที่ตกลง
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
ขั้นตอนที่ 3:ทำตาม Tools -> Board -> Board manager เพื่อเปิดกล่องโต้ตอบ board manager และค้นหา“ sduino” คลิกที่ติดตั้งและปิดกล่องโต้ตอบหลังจากการติดตั้งเสร็จสิ้น
ขั้นตอนที่ 4:เริ่มต้นใหม่ IDE ที่แล้วทำตาม เครื่องมือ -> คณะกรรมการ -> STM8S103F3 คุณสามารถเลือกบอร์ดอื่น ๆ ได้หากคุณมีบอร์ดพัฒนาอื่น
ตอนนี้ Arduino IDE พร้อมสำหรับการเขียนโปรแกรม STM8S103F3 Development Board ให้เราตั้งค่าบอร์ดเชื่อมต่อกับคอมพิวเตอร์และตั้งโปรแกรมสำหรับไฟ LED กะพริบอย่างง่าย
การตั้งค่าบอร์ด STM8S103F3 สำหรับ Arduino IDE Programming
เชื่อมต่อ ST-Link V2 กับบอร์ดพัฒนาดังที่แสดงด้านล่าง
การเชื่อมต่อค่อนข้างตรงไปตรงมาและส่วนที่ดีที่สุดคือคุณไม่จำเป็นต้องมีส่วนประกอบภายนอก การตั้งค่าฮาร์ดแวร์สำหรับการเขียนโปรแกรมของฉันแสดงไว้ด้านล่างฉันเพิ่งใช้สายไฟส่วนหัวหญิงเพื่อทำการเชื่อมต่อ อย่างไรก็ตามโปรดทราบว่าหมุดของ ST-Link ของคุณอาจแตกต่างจากของฉันโปรดทำตามพินเอาต์บนอุปกรณ์ก่อนทำการเชื่อมต่อ
ทำการเชื่อมต่อและเชื่อมต่ออุปกรณ์กับคอมพิวเตอร์ของคุณการติดตั้งไดรเวอร์ควรเริ่มโดยอัตโนมัติ คุณสามารถใช้ตัวจัดการอุปกรณ์เพื่อตรวจสอบว่าคอมพิวเตอร์ของคุณค้นพบ ST-LINK V2 อย่างถูกต้องหรือไม่ คุณจะสังเกตเห็นไฟ LED ทดสอบบนบอร์ดกะพริบหากนี่เป็นครั้งแรกที่เปิดบอร์ด
LED กะพริบบน STM8S103F3 โดยใช้ Arduino
ตอนนี้สำหรับการกะพริบ LED แบบธรรมดาเราสามารถใช้โปรแกรมกะพริบได้จากส่วนตัวอย่าง ทำตาม ที่ File -> ตัวอย่าง -> Generic_Example -> พื้นฐาน -> กะพริบตา
โปรแกรมที่สมบูรณ์สำหรับการกะพริบไฟ LED ออนบอร์ดแสดงไว้ด้านล่าง -
การตั้งค่าเป็นโมฆะ () {// เริ่มต้นพินดิจิทัล LED_BUILTIN เป็นเอาต์พุต pinMode (LED_BUILTIN, เอาท์พุท); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป void loop () {digitalWrite (LED_BUILTIN, HIGH); // เปิดไฟ LED (สูงคือระดับแรงดันไฟฟ้า) ล่าช้า (1000); // รอ digitalWrite วินาที (LED_BUILTIN, LOW); // ปิด LED โดยทำให้แรงดันไฟฟ้าล่าช้า (1000); // รอสักครู่}
อย่างที่คุณเห็นนี้คล้ายกับโปรแกรมกะพริบ Arduino มาก ในการอัปโหลดโปรแกรมตรวจสอบให้แน่ใจว่าบอร์ดของคุณเชื่อมต่อผ่าน st-link v2 ตามที่กล่าวไว้ข้างต้นแล้วเลือกโปรแกรมเมอร์เป็น“ ST-Link / V2” ตามที่แสดงด้านล่าง
หมายเหตุ: ไม่เหมือนบอร์ด Arduino คุณไม่จำเป็นต้องเลือกพอร์ต COM ที่ถูกต้องสำหรับการเขียนโปรแกรมบอร์ด คุณจะใช้พอร์ต COM สำหรับการสื่อสารแบบอนุกรมเท่านั้น
เมื่อเลือกพอร์ต COM แล้วการอัปโหลดโค้ดก็ทำได้ง่ายมากเช่นกัน เพียงแค่กดปุ่มอัปโหลด (ล้อมรอบด้วยสีแดงด้านล่าง) จากนั้นโค้ดจะถูกรวบรวมและอัปโหลดไปยังบอร์ดของเราโดยอัตโนมัติ
นั่นคือโปรแกรมจะถูกอัปโหลดไปยังบอร์ดโดยตรงและคุณจะเห็นไฟ LED ออนบอร์ดกะพริบ ไม่มีซอฟต์แวร์อัปโหลดภายนอกไม่มีอะไรเลย ง่ายเหมือนที่ คุณสามารถดูวิดีโอที่ด้านล่างของหน้านี้สำหรับการทำงาน
Arduino Pin Mapping สำหรับ STM8S103F3
หากคุณต้องการดำเนินการต่อจากที่นี่คุณจำเป็นต้องทราบวิธีระบุพินแต่ละพินบนบอร์ดพัฒนา STM8S103F3 การจับคู่พินสามารถเข้าใจได้จากภาพด้านล่างนี้ -
ตัวอย่างเช่นจากแผนภาพวงจร STM8S103F3 Board เราทราบว่า LED ออนบอร์ดเชื่อมต่อกับ PB5 ในการระบุพินนี้บน Arduino เราต้องใช้ 3 ดังนั้นจึงสามารถเขียนโปรแกรมเป็น -
การตั้งค่าเป็นโมฆะ () {// เริ่มต้นพินดิจิทัล LED_BUILTIN เป็นเอาต์พุต pinMode (3, เอาท์พุท); } // ฟังก์ชันลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป void loop () {digitalWrite (3, LOW); // เปิดไฟ LED (สูงคือระดับแรงดันไฟฟ้า) ล่าช้า (1000); // รอ digitalWrite วินาที (3, สูง); // ปิด LED โดยทำให้แรงดันไฟฟ้าล่าช้า (1000); // รอสักครู่}
การรวบรวม SPL Libraries บน Arduino IDE
ดังที่ได้กล่าวไว้ก่อนหน้านี้เรายังสามารถใช้ไลบรารี SPL บน Arduino IDE หากคุณจำได้ในบทช่วยสอน STM8S GPIO ก่อนหน้านี้เราได้เขียนโค้ดเพื่อกะพริบ LED ออนบอร์ดและ LED ภายนอกโดยใช้ปุ่มกด โค้ดเดียวกันที่มีการปรับเปลี่ยนน้อยมากสามารถคอมไพล์บน Arduino ได้ โค้ดที่แก้ไขแสดงไว้ด้านล่าง
# กำหนด Green_LED GPIOA, GPIO_PIN_3 การตั้งค่าเป็นโมฆะ () {GPIO_DeInit (GPIOA); // เตรียม Port A สำหรับการทำงาน GPIO_DeInit (GPIOB); // เตรียมพอร์ต B สำหรับการทำงาน // ประกาศ PA2 เป็นพินดึงอินพุต GPIO_Init (GPIOA, GPIO_PIN_2, GPIO_MODE_IN_PU_IT); // ประกาศ PA3 เป็นพิน Push Pull Output GPIO_Init (Green_LED, GPIO_MODE_OUT_PP_LOW_SLOW); // ประกาศ PB5 เป็นพินพุชดึงขาออก GPIO_Init (GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW); } void loop () {if (GPIO_ReadInputPin (GPIOA, GPIO_PIN_2)) // ถ้ากดปุ่ม GPIO_WriteLow (Green_LED); // LED อื่น ๆ GPIO_WriteHigh (Green_LED); // LED ปิด GPIO_WriteReverse (GPIOB, GPIO_PIN_5); ล่าช้า (100); }
สรุป Arduino IDE พร้อมกับ Sduino เป็นตัวเลือกที่ดีมากหากคุณต้องการเริ่มต้นการพัฒนาด้วย STM8S อย่างไรก็ตามแพลตฟอร์มดังกล่าวยังอยู่ระหว่างการพัฒนาและยังไม่รองรับไลบรารี Arduino จำนวนมาก ถึงกระนั้นหากคุณต้องการเจาะลึกและมีส่วนร่วมในการพัฒนามันจะดีมาก แต่เพื่อประโยชน์ในการเรียนรู้ฉันจะดำเนินการต่อในซีรีส์การสอนด้วย STVD และคอมไพเลอร์ cosmic C