לוגו STM32

STM32F103C8T6 לוח פיתוח מערכת מינימום

STM32F103C8T6-מינימום-מערכת-פיתוח-לוח-מוצר

מידע על המוצר

STM32F103C8T6 ARM STM32 Minimum System Development Board Module הוא לוח פיתוח המבוסס על המיקרו-בקר STM32F103C8T6. הוא נועד להיות מתוכנת באמצעות Arduino IDE והוא תואם לשבטים שונים של Arduino, וריאציות ולוחות צד שלישי כמו ESP32 ו-ESP8266.

הלוח, הידוע גם בשם Blue Pill Board, פועל בתדירות גבוהה פי 4.5 בערך מאשר Arduino UNO. ניתן להשתמש בו לפרויקטים שונים וניתן לחבר אותו לציוד היקפי כגון צגי TFT.

הרכיבים הנדרשים לבניית פרויקטים עם לוח זה כוללים את לוח STM32, מתכנת FTDI, צג TFT צבעוני, לחצן לחיצה, לוח לחם קטן, חוטים, בנק חשמל (אופציונלי למצב עצמאי), וממיר USB לטורי.

סכימתי

כדי לחבר את לוח STM32F1 לצג TFT צבעוני מבוסס 1.8 ST7735 ולחצן לחיצה, עקוב אחר חיבורי פין-ל-פין המתוארים בתרשים המסופקים.

הגדרת ה-Arduino IDE עבור STM32

  1. פתח את Arduino IDE.
  2. עבור אל כלים -> לוח -> מנהל לוח.
  3. בתיבת הדו-שיח עם שורת חיפוש, חפש את "STM32F1" והתקן את החבילה המתאימה.
  4. המתן עד להשלמת הליך ההתקנה.
  5. לאחר ההתקנה, לוח STM32 אמור להיות זמין כעת לבחירה תחת רשימת לוחות Arduino IDE.

תכנות לוחות STM32 עם Arduino IDE

מאז הקמתו, ה-Arduino IDE הוכיח את הרצון לתמוך בכל מיני פלטפורמות, החל משבטים של Arduino ווריאציות של יצרנים שונים ועד ללוחות צד שלישי כמו ESP32 ו-ESP8266. ככל שיותר אנשים יכירו את ה-IDE, הם מתחילים לתמוך ביותר לוחות שאינם מבוססים על שבבי ATMEL ולמדריך של היום נסתכל על אחד הלוחות כאלה. נבחן כיצד לתכנת את לוח הפיתוח STM32F32C103T8 מבוסס STM6 עם ה-Arduino IDE.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

לוח ה- STM32 שישמש עבור הדרכה זו הוא לא אחר מאשר לוח הפיתוח STM32F103 מבוסס-שבב STM8F6 המכונה בדרך כלל "גלולה כחולה" בהתאם לצבע הכחול של ה-PCB שלו. Blue Pill מופעל על ידי מעבד 32 סיביות STM1F32C32T103 ARM החזק, שעון במהירות 8 מגה-הרץ. הלוח פועל ברמות לוגיות של 6V אך פיני ה-GPIO שלו נבדקו כעמידים ל-72V. למרות שהוא לא מגיע עם WiFi או Bluetooth כמו גרסאות ESP3.3 ו- Arduino, הוא מציע 5KB של זיכרון RAM ו-32KB של זיכרון פלאש מה שהופך אותו להתאים עבור פרויקטים גדולים. יש לו גם 20 פיני GPIO, 64 מהם יכולים לשמש עבור חיישנים אנלוגיים מכיוון שהם מופעלים ADC, יחד עם אחרים המאופשרים עבור SPI, I37C, CAN, UART ו-DMA. עבור לוח שעולה בסביבות 10$, תסכימו איתי שמדובר במפרט מרשים. גרסה מסוכמת של מפרטים אלה בהשוואה לזו של Arduino Uno מוצגת בתמונה למטה.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

בהתבסס על המפרט שלמעלה, התדירות בה פועלת Blue Pill גבוהה פי 4.5 מאשר Arduino UNO, עבור המדריך של היום, כאקסיתampעל אופן השימוש בלוח STM32F1, נחבר אותו לצג TFT בגודל 1.44 אינץ' ונתכנת אותו לחישוב קבוע "Pi". נציין כמה זמן לקח ללוח להשיג את הערך ולהשוות אותו לזמן שלוקח ל-Arduino Uno לבצע את אותה משימה.

רכיבים נדרשים

הרכיבים הבאים נדרשים לבניית פרויקט זה;

  • לוח STM32
  • מתכנת FTDI
  • צבע TFT
  • כפתור לחיצה
  • קרש לחם קטן
  • חוטים
  • בנק כוח
  • ממיר USB לטורי

כרגיל, ניתן לקנות את כל הרכיבים המשמשים להדרכה זו מהקישורים המצורפים. עם זאת, בנק הכוח נחוץ רק אם אתה רוצה לפרוס את הפרויקט במצב עצמאי.

סכימתי

  • כפי שהוזכר קודם לכן, נחבר את לוח STM32F1 לצג TFT צבעוני בגודל 1.8 אינץ' ST7735 יחד עם כפתור לחיצה.
  • הכפתור ישמש כדי להורות ללוח להתחיל את החישוב.
  • חבר את הרכיבים כפי שמוצג בתרשים שלהלן.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

כדי להקל על שכפול החיבורים, חיבורי ה-pin-to-pin בין STM32 לתצוגה מתוארים להלן.

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

עברו שוב על החיבורים כדי לוודא שהכל כפי שהוא צריך להיות, כי זה נוטה להיות קצת מסובך. עם ביצוע זה, המשכנו להגדיר את לוח STM32 שיתכנת עם ה- Arduino IDE.

הגדרת ה-Arduino IDE עבור STM32

  • כמו ברוב הלוחות שאינם מיוצרים על ידי Arduino, יש לבצע מעט הגדרה לפני שניתן יהיה להשתמש בלוח עם ה-Arduino IDE.
  • זה כרוך בהתקנת הלוח file או דרך מנהל לוח Arduino או הורדה מהאינטרנט והעתקת files לתוך תיקיית החומרה.
  • המסלול של מנהל המועצה הוא המסלול הפחות מייגע ומכיוון שה- STM32F1 הוא בין הלוחות הרשומים, נלך בדרך זו. התחל על ידי הוספת הקישור ללוח STM32 לרשימות ההעדפות של Arduino.
  • עבור אל File -> העדפות, ואז הזן את זה URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) בתיבה כפי שמצוין למטה ולחץ על אישור.

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. חפש STM32F1 and install the corresponding package.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • הליך ההתקנה ייקח מספר שניות. לאחר מכן, הלוח אמור להיות זמין כעת לבחירה תחת רשימת לוחות Arduino IDE.

קוד

  • הקוד ייכתב באותו האופן שבו היינו כותבים כל סקיצה אחרת עבור פרויקט Arduino, כשההבדל היחיד הוא האופן שבו מתייחסים הפינים.
  • כדי שנוכל לפתח בקלות את הקוד עבור הפרויקט הזה, נשתמש בשתי ספריות שהן שתיהן שינויים של ספריות Arduino סטנדרטיות כדי להפוך אותן לתואמות ל- STM32.
  • אנו נשתמש בגרסה המעודכנת של Adafruit GFX וספריות Adafruit ST7735.
  • ניתן להוריד את שתי הספריות דרך הקישורים המצורפים אליהן. כרגיל, אני אעשה פירוט קצר של הקוד.
  • אנו מתחילים את הקוד על ידי ייבוא ​​של שתי הספריות שבהן נשתמש.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • לאחר מכן, אנו מגדירים את הפינים של STM32 שאליהם מחוברים פיני CS, RST ו-DC של ה-LCD.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • לאחר מכן, אנו יוצרים כמה הגדרות צבע כדי להקל על השימוש בצבעים לפי שמותיהם בקוד מאוחר יותר במקום לפי ערכי הקושים שלהם.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • לאחר מכן, אנו מגדירים את מספר האיטרציות שאנו רוצים שהלוח יעבור יחד עם משך הרענון לשימוש בסרגל ההתקדמות.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • עם ביצוע זה, אנו יוצרים אובייקט של ספריית ST7735 אשר ישמש להתייחסות לתצוגה לאורך כל הפרויקט.
  • אנו מציינים גם את הפין של ה-STM32 אליו מחובר הכפתור ויוצרים משתנה שיחזיק את מצבו.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • כשזה נעשה, נעבור לפונקציה void setup() .
  • אנו מתחילים בהגדרת ה-pinMode() של הפין שאליו מחובר הכפתור, תוך הפעלת נגד משיכה פנימי על הפין שכן הכפתור מתחבר לאדמה בלחיצה.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • לאחר מכן, אנו מאתחלים את התקשורת הטורית ואת המסך, מגדירים את הרקע של התצוגה לשחור וקוראים לפונקציית ההדפסה () כדי להציג את הממשק.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • הבא היא הפונקציה void loop() . פונקציית void loop היא די פשוטה וקצרה, הודות לשימוש בספריות/פונקציות.
  • נתחיל בקריאת מצב הכפתור. אם הכפתור נלחץ, אנו מסירים את ההודעה הנוכחית על המסך באמצעות ה- removePressKeyText() ומציירים את סרגל ההתקדמות המשתנה באמצעות הפונקציה drawBar() .
  • לאחר מכן אנו קוראים לפונקציית ההתחלה של חישוב כדי לקבל ולהציג את הערך של Pi יחד עם הזמן שנדרש כדי לחשב אותו.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • אם הכפתור לא נלחץ, המכשיר נשאר במצב המתנה כשהמסך דורש ללחוץ על מקש כדי ליצור איתו אינטראקציה.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • לבסוף, השהייה מוכנסת בסוף הלולאה כדי לתת קצת זמן לפני שרטוט "לולאות".

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • החלק הנותר של הקוד הוא הפונקציות שנקראות להשגת המשימות משרטוט הסרגל ועד לחישוב ה-Pi.
  • רוב הפונקציות הללו כוסו במספר מדריכים אחרים הכוללים שימוש בצג ST7735.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • הקוד המלא של הפרויקט זמין למטה ומצורף בסעיף ההורדה.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

העלאת קוד ל-STM32

  • העלאת סקיצות ל-STM32f1 היא מעט מורכבת בהשוואה ללוחות סטנדרטיים תואמי ארדואינו. כדי להעלות קוד ללוח, אנחנו צריכים ממיר USB לטורי מבוסס FTDI.
  • חבר את ממיר ה-USB לטורי ל-STM32 כפי שמוצג בתרשים למטה.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

להלן מפת סיכה אל סיכה של החיבור

FTDI – STM32

  • כשזה נעשה, אנו משנים את המיקום של מגשר המצב של הלוח למיקום אחד (כפי שמוצג ב-GIF למטה), כדי להכניס את הלוח למצב תכנות.
  • לחץ על כפתור האיפוס בלוח פעם אחת לאחר מכן ואנחנו מוכנים להעלות את הקוד.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • במחשב, ודא שאתה בוחר ב"לוח STM32F103C גנרי" ובחר טורי לשיטת ההעלאה ולאחר מכן תוכל ללחוץ על כפתור ההעלאה.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • לאחר השלמת ההעלאה, שנה את מגשר המצב למיקום "או" זה יכניס את הלוח למצב "הפעלה" וכעת הוא אמור להתחיל לפעול בהתבסס על הקוד שהועלה.
  • בשלב זה, אתה יכול לנתק את ה-FTDI ולהפעיל את הלוח דרך ה-USB שלו. במקרה שהקוד לא פועל לאחר ההפעלה, ודא שחזרת את המגשר כראוי ומחזר את החשמל ללוח.

הַדגָמָה

  • כשהקוד הושלם, בצע את תהליך ההעלאה המתואר למעלה כדי להעלות את הקוד להגדרות שלך.
  • אתה אמור לראות את התצוגה עולה כפי שמוצג בתמונה למטה.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • לחץ על כפתור הלחיצה כדי להתחיל את החישוב. אתה אמור לראות את סרגל ההתקדמות מחליק בהדרגה עד הסוף.
  • בסוף התהליך, הערך של Pi מוצג יחד עם הזמן שלקח החישוב.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • אותו קוד מיושם על Arduino Uno. התוצאה מוצגת בתמונה למטה.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • בהשוואה בין שני הערכים הללו, אנו רואים ש- "Blue Pill" מהיר יותר פי 7 מה- Arduino Uno.
  • זה הופך אותו לאידיאלי עבור פרויקטים הכוללים עיבוד כבד ומגבלות זמן.
  • גודלה הקטן של הגלולה הכחולה משמש גם כעזרtage כאן מכיוון שהוא רק קצת יותר גדול מה- Arduino Nano וניתן להשתמש בו במקומות שבהם הננו לא יהיה מהיר מספיק.

מסמכים / משאבים

STM32 STM32F103C8T6 לוח פיתוח מערכת מינימום [pdfמדריך למשתמש
STM32F103C8T6 לוח לפיתוח מערכת מינימום, STM32F103C8T6, לוח לפיתוח מערכת מינימום, לוח לפיתוח מערכת, לוח פיתוח, לוח

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *