สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: สร้างโครงการใหม่
- ขั้นตอนที่ 2: การกำหนดค่าโปรเซสเซอร์
- ขั้นตอนที่ 3: การกำหนดค่านาฬิกา
- ขั้นตอนที่ 4: บันทึกและสร้าง
- ขั้นตอนที่ 5: การเพิ่มโค้ดบางส่วน
- ขั้นตอนที่ 6: การเชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 7: การดีบัก
- ขั้นตอนที่ 8: ทำมากขึ้น
วีดีโอ: การตั้งค่า Blue Pill Board ใน STM32CubeIDE: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
Blue Pill เป็นบอร์ดพัฒนา ARM กระดูกเปล่าราคาถูกมาก มี STM32F103C8 เป็นโปรเซสเซอร์ซึ่งมีแฟลช 64 kbytes และหน่วยความจำ RAM 20 kbytes ทำงานได้ถึง 72 MHz และเป็นวิธีที่ถูกที่สุดในการพัฒนาซอฟต์แวร์ฝังตัว ARM
โครงการตัวอย่างส่วนใหญ่และวิธีการอธิบายการเขียนโปรแกรมบอร์ด Blue Pill โดยใช้สภาพแวดล้อม Auduino แม้ว่าจะใช้งานได้และเป็นวิธีเริ่มต้น แต่ก็มีข้อจำกัด สภาพแวดล้อม Arduino ปกป้องคุณเล็กน้อยจากฮาร์ดแวร์พื้นฐาน นั่นคือเป้าหมายการออกแบบ ด้วยเหตุนี้ คุณจะไม่สามารถใช้ประโยชน์จากคุณลักษณะทั้งหมดที่โปรเซสเซอร์มีให้ และไม่สนับสนุนการรวมระบบปฏิบัติการแบบเรียลไทม์ ซึ่งหมายความว่าสภาพแวดล้อม Arduino ไม่ได้ใช้กันอย่างแพร่หลายในอุตสาหกรรม หากคุณต้องการประกอบอาชีพในการพัฒนาซอฟต์แวร์แบบฝังตัว Arduino เป็นจุดเริ่มต้นที่ดี แต่คุณต้องก้าวต่อไปและใช้สภาพแวดล้อมการพัฒนาที่ใช้ในอุตสาหกรรม ST มอบชุดสภาพแวดล้อมการพัฒนาที่สมบูรณ์ฟรีสำหรับโปรเซสเซอร์ที่เรียกว่า STM32CubeIDE มีการใช้กันอย่างแพร่หลายในอุตสาหกรรม ดังนั้นจึงเป็นการดีที่จะก้าวต่อไป
อย่างไรก็ตาม และนี่เป็นเรื่องใหญ่ อย่างไรก็ตาม STM32CubeIDE นั้นซับซ้อนอย่างน่ากลัวและเป็นซอฟต์แวร์ที่น่ากลัวที่จะใช้ รองรับคุณสมบัติทั้งหมดของโปรเซสเซอร์ ST ทั้งหมด และอนุญาตให้กำหนดค่าอย่างใกล้ชิด ซึ่งคุณไม่พบใน Arduino IDE เพราะทั้งหมดนี้ทำเพื่อคุณ
คุณต้องตั้งค่าบอร์ดของคุณเป็นขั้นตอนแรกใน STM32CubeIDE IDE รู้เกี่ยวกับบอร์ดพัฒนาของ ST และตั้งค่าให้คุณ แต่ Blue Pill นั้นใช้โปรเซสเซอร์ ST ไม่ใช่ผลิตภัณฑ์ ST ดังนั้นคุณจึงอยู่ที่นี่ด้วยตัวเอง
คำแนะนำนี้จะนำคุณไปสู่ขั้นตอนการตั้งค่าบอร์ด Blue Pill ของคุณ เปิดใช้งานพอร์ตอนุกรม และเขียนข้อความบางส่วน ไม่มากแต่เป็นก้าวแรกที่สำคัญ
เสบียง
STM32CubeIDE - ดาวน์โหลดจากเว็บไซต์ของ ST คุณต้องลงทะเบียนและใช้เวลาในการดาวน์โหลด
กระดานยาสีน้ำเงิน คุณสามารถรับได้จากอีเบย์ คุณต้องมีโปรเซสเซอร์ ST ของแท้เนื่องจากบางตัวไม่มี ใน ebay ให้ซูมเข้าที่รูปภาพและมองหาโลโก้ ST บนโปรเซสเซอร์
ดีบักเกอร์/โปรแกรมเมอร์ ST-LINK v2 จาก ebay ในราคาไม่กี่ปอนด์
สายเคเบิลอนุกรม FTDI TTL เป็น USB 3.3V สำหรับเอาต์พุตและสายหัวต่อตัวผู้กับตัวเมีย 2 เส้นเพื่อเชื่อมต่อ
โปรแกรมเทอร์มินัลอนุกรมเช่น PuTTY
ขั้นตอนที่ 1: สร้างโครงการใหม่
- เริ่ม STM32CubeIDE จากนั้นจากเมนูให้เลือก File|New|STM32 Project
- ในกล่องค้นหาหมายเลขชิ้นส่วน ให้ป้อน STM32F103C8
- ในรายการ MCUs/MPUs คุณควรเห็น STM32F103C8 เลือกบรรทัดนี้ตามภาพด้านบน
- คลิกถัดไป
- ในกล่องโต้ตอบการตั้งค่าโปรเจ็กต์ ให้ตั้งชื่อโปรเจ็กต์ให้คุณ
- ปล่อยให้ทุกอย่างเป็นเหมือนเดิมแล้วคลิกเสร็จสิ้น โครงการของคุณจะปรากฏทางด้านซ้ายในบานหน้าต่าง Project Explorer
ขั้นตอนที่ 2: การกำหนดค่าโปรเซสเซอร์
- ในบานหน้าต่าง Project Explorer เปิดโปรเจ็กต์ของคุณและดับเบิลคลิกที่ไฟล์.ioc
- บนแท็บ Project & Configuration ให้ขยาย System Core จากนั้นเลือก SYS
- ภายใต้ SYS Mode and Configuration ในเมนูแบบเลื่อนลง Debug ให้เลือก Serial Wire
- ตอนนี้เลือก RCC ในรายการ System Core เหนือ SYS ที่คุณเลือกด้านบน
- ภายใต้ RCC Mode & Configuration จาก High Speed Clock (HSE) ดรอปดาวน์ ให้เลือก Crystal/Ceramic Resonator
- ตอนนี้ภายใต้ หมวดหมู่ อีกครั้ง เปิดการเชื่อมต่อ และเลือก USART2
- ภายใต้ USART2 Mode and Configuration จากเมนูดรอปดาวน์ของ Mode ให้เลือก Asynchronous
- ตอนนี้เลือกแท็บการกำหนดค่านาฬิกาและไปที่ขั้นตอนถัดไป
ขั้นตอนที่ 3: การกำหนดค่านาฬิกา
ตอนนี้คุณสามารถดูไดอะแกรมนาฬิกาที่ค่อนข้างน่ากลัวได้แล้ว แต่ต้องตั้งค่าเพียงครั้งเดียว นี่เป็นคำอธิบายที่ยากที่สุดเนื่องจากไดอะแกรมซับซ้อน ทุกสิ่งที่คุณต้องเปลี่ยนจะถูกเน้นในภาพด้านบน
- บอร์ด Blue Pill มาพร้อมกับคริสตัล 8 MHz บนบอร์ด และนั่นคือสิ่งที่ไดอะแกรมการกำหนดค่านาฬิกาเป็นค่าเริ่มต้น ดังนั้นเราจึงไม่จำเป็นต้องเปลี่ยนสิ่งนั้น
- ภายใต้ PLL Source Mux ให้เลือกตัวเลือกที่ต่ำกว่า HSE
- ไปทางขวา ตั้งค่า PLLMul เป็น X9
- ทางด้านขวาอีกครั้งภายใต้ System Clock Mux เลือก PLLCLK
- ทางด้านขวาอีกครั้งภายใต้ APB1 Prescalar เลือก /2
- แค่นั้นแหละ. หากคุณเห็นส่วนใดๆ ของไดอะแกรมที่ไฮไลต์ด้วยสีม่วง แสดงว่าคุณทำอะไรผิด
ขั้นตอนที่ 4: บันทึกและสร้าง
- บันทึกการกำหนดค่า.ioc ด้วย Ctrl-S เมื่อคุณถูกถามว่าคุณต้องการสร้างรหัสหรือไม่ ให้เลือก ใช่ (และทำเครื่องหมาย จำการตัดสินใจของฉัน เพื่อที่คุณจะไม่ถูกถามทุกครั้ง) คุณสามารถปิดไฟล์.ioc
- ตอนนี้สร้างจากเมนู Project|Build Project
ขั้นตอนที่ 5: การเพิ่มโค้ดบางส่วน
ตอนนี้เราจะเพิ่มรหัสเพื่อใช้พอร์ตอนุกรมที่เรากำหนดค่าไว้
- ใน Project Explorer เปิด Core\Src และดับเบิลคลิก main.c เพื่อแก้ไข
- เลื่อนลงมาจนกว่าคุณจะพบฟังก์ชัน main() และเพิ่มโค้ดที่แสดงด้านล่างใต้ความคิดเห็น /* USER CODE BEGIN 3 */ แล้วสร้างใหม่อีกครั้ง
HAL_UART_Transmit(&huart2, (uint8_t *)"สวัสดี ชาวโลก!\r\n", 15U, 100U);
ต่อไปก็เชื่อมต่อฮาร์ดแวร์ขึ้นและเริ่มต้นใช้งาน
ขั้นตอนที่ 6: การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อ ST-LINK v2
ST-LINK v2 ควรมาพร้อมกับสายแพรแถบหัวต่อตัวเมียถึงตัวเมีย 4 เส้น คุณต้องทำการเชื่อมต่อต่อไปนี้:
ยาเม็ดสีน้ำเงินไปยัง ST-LINK v2
GND เป็น GND
CLK เป็น SWCLK
DIO เป็น SWDIO
3.3 ถึง 3.3V
ดูภาพแรกด้านบน
การเชื่อมต่อสายเคเบิลอนุกรม
หากคุณกลับไปที่ไฟล์.ioc และดูที่แผนภาพชิปทางด้านขวา คุณจะเห็นว่าเส้น Tx ของ UART2 อยู่ที่พิน PA2 ดังนั้นให้เชื่อมต่อพินที่มีป้ายกำกับ PA2 บนบอร์ด Blue Pill เข้ากับการเชื่อมต่อด้วยสายสีเหลืองบนสายเคเบิล FTDI Serial เชื่อมต่อหมุดกราวด์ตัวใดตัวหนึ่งของ Blue Pill (ที่มีข้อความว่า G) กับสายสีดำบนสายเคเบิลอนุกรม FTDI
ดูภาพที่สองด้านบน
ขั้นตอนที่ 7: การดีบัก
เสียบสายเคเบิลอนุกรม FTDI ของคุณและเปิดเครื่องเทอร์มินัลอนุกรมที่ 115200 บอด จากนั้นเสียบ ST-LINK v2 ของคุณแล้วคุณก็พร้อมใช้งาน
- จาก STM32CubeIDE ให้เลือก Run|Debug เมื่อกล่องโต้ตอบ Debug as ปรากฏขึ้น ให้เลือก STM32 Cortex-M C/C++ Application และ OK
- เมื่อกล่องโต้ตอบแก้ไขการกำหนดค่าปรากฏขึ้น ให้กดตกลง
- ดีบักเกอร์จะแตกในบรรทัดแรกของ main() จากเมนู ให้เลือก Run|Resume และตรวจสอบข้อความในเทอร์มินัลซีเรียล
ขั้นตอนที่ 8: ทำมากขึ้น
เพียงเท่านี้ แอปพลิเคชัน STM32CubeIDE แรกของคุณก็ได้รับการกำหนดค่าและใช้งานอยู่ ตัวอย่างนี้ไม่ได้ช่วยอะไรมาก แค่ส่งข้อมูลบางส่วนออกจากพอร์ตอนุกรม
ในการใช้อุปกรณ์ต่อพ่วงอื่นๆ และเขียนไดรเวอร์สำหรับอุปกรณ์ภายนอก คุณต้องจัดการกับตัวแก้ไขการกำหนดค่าที่น่ากลัวอีกครั้ง! เพื่อช่วย ฉันได้จัดทำชุดตัวอย่างโปรเจ็กต์ STM32CubeIDE ที่กำหนดค่าและใช้งานอุปกรณ์ต่อพ่วงทั้งหมดบนโปรเซสเซอร์ของ Blue Pill ในโครงการขนาดเล็กที่เข้าใจง่าย พวกเขาทั้งหมดเป็นโอเพ่นซอร์สและคุณมีอิสระที่จะทำสิ่งที่คุณต้องการกับพวกเขา อุปกรณ์ต่อพ่วงแต่ละตัวได้รับการกำหนดค่าแล้วมีโค้ดตัวอย่างเพื่อใช้แยกส่วน (เกือบ!) เพื่อให้คุณมีสมาธิกับการใช้อุปกรณ์ต่อพ่วงเพียงเครื่องเดียวในแต่ละครั้ง
นอกจากนี้ยังมีไดรเวอร์สำหรับอุปกรณ์ภายนอกตั้งแต่ชิป EEPROM ธรรมดาไปจนถึงเซ็นเซอร์ความดัน LCD ข้อความและกราฟิก โมเด็ม SIM800 สำหรับ TCP, HTTP และ MQTT ปุ่มกด โมดูลวิทยุ USB และยังรวมเข้ากับ FatFS การ์ด SD และ FreeRTOS
พวกเขาทั้งหมดสามารถพบได้ใน Github ที่นี่…
github.com/miniwinwm/BluePillDemo
แนะนำ:
การตั้งค่า Eclipse & JUnit: 11 ขั้นตอน
การตั้งค่า Eclipse & JUnit: สิ่งที่คุณต้องการ: คอมพิวเตอร์ที่มี Eclipse IDE ไฟล์ Java ที่มีฟังก์ชัน/เมธอดที่คุณต้องการทดสอบ ไฟล์ทดสอบที่มีการทดสอบ JUnit เพื่อรันบนฟังก์ชันของคุณ
DIY Smart Doorbell: รหัส การตั้งค่า และการรวม HA: 7 ขั้นตอน (พร้อมรูปภาพ)
DIY Smart Doorbell: Code, Setup และ HA Integration: ในโครงการนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถเปลี่ยนกริ่งประตูธรรมดาของคุณให้เป็นแบบสมาร์ทได้อย่างไรโดยไม่ต้องเปลี่ยนฟังก์ชันการทำงานปัจจุบันหรือตัดสายไฟ ฉันจะใช้บอร์ด ESP8266 ชื่อ Wemos D1 mini ใหม่กับ ESP8266 หรือไม่ ดู Introdu ของฉัน
ดังนั้น คุณโหลด STM32duino Bootloader ใน "Blue Pill" ของคุณแล้วตอนนี้ล่ะ: 7 ขั้นตอน
ดังนั้นคุณโหลด STM32duino Bootloader ใน "Blue Pill" ของคุณ…แล้วตอนนี้ล่ะ?: หากคุณอ่านคำแนะนำของฉันแล้วอธิบายว่าโหลด STM32duino bootloader หรือเอกสารอื่นใดที่คล้ายคลึงกันคุณลองโหลดตัวอย่างโค้ดและ…. อาจไม่มีอะไร เกิดขึ้นเลย ปัญหาคือ หลายๆ ตัวอย่างสำหรับ "ทั่วไป" STM32 จะ
STM32 "Blue Pill" การเขียนโปรแกรมผ่าน Arduino IDE & USB: 8 ขั้นตอน
การเขียนโปรแกรม STM32 "Blue Pill" ผ่าน Arduino IDE และ USB: การเปรียบเทียบบอร์ดต้นแบบทั่วไปของ STM32F (เช่น Blue Pill) กับส่วนอื่นของ Arduino นั้นง่ายต่อการดูว่ามีทรัพยากรมากขึ้นเพียงใด ซึ่งเปิดโอกาสใหม่ๆ มากมายสำหรับโครงการ IOT ข้อเสียคือขาดการสนับสนุน จริงๆแล้วไม่ใช่เลย
Arduino Alternative - การเขียนโปรแกรม STM32 Blue Pill ผ่าน USB: 5 ขั้นตอน
Arduino Alternative - STM32 Blue Pill Programming ผ่าน USB: คุณและฉันต่างก็รักบอร์ด Arduino ตั้งแต่ Attiny85 ที่เล็กที่สุดไปจนถึง MEGA2560 ที่ใหญ่ที่สุด อย่างไรก็ตาม หากคุณต้องการความเร็วที่มากขึ้น อินพุตแบบอะนาล็อกที่มากขึ้น ความแม่นยำที่มากขึ้น แต่ยังไม่ต้องการเปลี่ยนจากการเขียนโปรแกรม Arduino มีวิธีแก้ปัญหาที่หรูหรา….The b