- ST-LINK V2
- STM32CubeMX
- חומרים נדרשים
- תרשים מעגלים וחיבורים
- יצירה ושריפה של תוכנית ב- STM32 באמצעות Keil uVision ו- ST-Link
- פלט של לוח STM32 מתוכנת על ידי קייל
- תכנית
STM32 מיקרו-בקרים המשתמשים בארכיטקטורת ARM Cortex M הופכת כעת לפופולרית ומשמשת ביישומים רבים בגלל התכונה, העלות והביצועים שלה. תכננו את STM32F103C8 באמצעות ה- Arduino IDE בהדרכות הקודמות שלנו. תכנות STM32 עם Arduino IDE הוא פשוט, מכיוון שיש הרבה ספריות עבור חיישנים שונים לביצוע כל משימה, אנחנו רק צריכים להוסיף את הספריות האלה בתוכנית. זהו הליך קל וייתכן שלא תיכנס למידה מעמיקה על מעבדי ARM. אז עכשיו אנחנו נכנסים לשלב הבא של תכנות שנקרא תכנות ARM. על ידי זה אנו יכולים, לא רק לשפר את מבנה הקוד שלנו אלא גם לחסוך מקום בזיכרון על ידי שימוש בספריות מיותרות.
STMicroelectronics הציגה כלי בשם STM32Cube MX, המייצר קוד בסיסי על פי ציוד היקפי ולוח STM32 שנבחר. אז אנחנו לא צריכים לדאוג לקידוד עבור מנהלי התקנים וציוד היקפי בסיסיים. יתר על כן ניתן להשתמש בקוד שנוצר זה ב- Keil uVision לעריכה בהתאם לדרישה. ולבסוף הקוד נצרב ב- STM32 באמצעות מתכנת ST-Link מבית STMicroelectronics.
במדריך זה נלמד כיצד לתכנת STM32F103C8 באמצעות Keil uVision & STM32CubeMX על ידי ביצוע פרוייקט פשוט של ממשק לחצן כפתור ונורית עם לוח הגלולות הכחול STM32F103C8. ניצור את הקוד באמצעות STM32Cube MX ואז נערוך ונעלה את הקוד ל- STM32F103C8 באמצעות Keil uVision. לפני שנפרט לפרטים, נלמד תחילה על מתכנת ST-LINK וכלי התוכנה STM32CubeMX.
ST-LINK V2
ה- ST-LINK / V2 הוא איתור באגים ומתכנת במעגל למשפחות המיקרו-בקר STM8 ו- STM32. אנו יכולים להעלות קוד ל- STM32F103C8 ולמיקרו-בקרים STM8 ו- STM32 אחרים באמצעות ST-LINK זה. מודול ממשק החוט היחיד (SWIM) וממשקי JTAG / איתור חוטים טורי (SWD) משמשים לתקשורת עם כל מיקרו-בקר STM8 או STM32 הממוקם על לוח יישומים. כיישומי STM32 משתמשים בממשק USB המהיר במלואו כדי לתקשר עם סביבות פיתוח משולבות של Atollic, IAR, Keil או TASKING, כך שנוכל להשתמש בחומרה זו כדי לתכנת את בקרי המיקרו STM 8 ו- STM32.
למעלה מוצגת התמונה של הפלאג ST-LINK V2 מבית STMicroelectronics התומך במגוון המלא של ממשק איתור באגים STM32 SWD, ממשק 4 חוטים פשוט (כולל הספק), מהיר ויציב. זה זמין במגוון צבעים. הגוף עשוי מסגסוגת אלומיניום. יש לו חיווי LED כחול שכן הוא משמש לתצפית על מצב העבודה של ST-LINK. שמות הסיכות מסומנים בבירור על הקליפה כפי שניתן לראות בתמונה שלעיל. ניתן להתממשק לתוכנת Keil שבה ניתן להבהב את התוכנית למיקרו-בקרים STM32. אז בואו נראה במדריך זה כיצד ניתן להשתמש בתכנת ST-LINK זה לתכנות מיקרו-בקר STM32. התמונה למטה מציגה את הסיכות של מודול ST-LINK V2.
הערה: בעת חיבור ST-Link למחשב בפעם הראשונה. אנו זקוקים להתקנת מנהל התקן. מנהלי התקנים ניתן למצוא בקישור זה בהתאם למערכת ההפעלה שלך.
STM32CubeMX
כלי STM32CubeMX הוא חלק מ- STMicroelectronics STMCube. כלי תוכנה זה מקל על הפיתוח על ידי הפחתת מאמץ פיתוח, זמן ועלות. STM32Cube כולל את STM32CubeMX שהוא כלי תצורה גרפי לתוכנה המאפשר יצירת קוד אתחול C באמצעות אשפים גרפיים. ניתן להשתמש בקוד זה בסביבות פיתוח שונות כגון keil uVision, GCC, IAR וכו 'תוכלו להוריד כלי זה מהקישור הבא.
STM32CubeMX כולל את התכונות הבאות
- פתר פותר סכסוכים
- עוזר להגדרת עץ השעון
- מחשבון צריכת חשמל
- כלי עזר המבצע תצורה היקפית של MCU כמו סיכות GPIO, USART וכו '
- כלי עזר המבצע תצורה היקפית של MCU עבור ערימות תיווך כמו USB, TCP / IP וכו '
חומרים נדרשים
חוּמרָה
- לוח גלולות כחול STM32F103C8
- ST-LINK V2
- לחץ על הכפתור
- לד
- קרש לחם
- חוטי מגשר
תוֹכנָה
- כלי יצירת קוד STM32CubeMX (קישור)
- Keil uVision 5 (קישור)
- מנהלי התקנים עבור ST-Link V2 (קישור)
תרשים מעגלים וחיבורים
להלן תרשים המעגל לחיבור פשוט נורית עם לוח STM32 באמצעות כפתור לחצן.
חיבור בין ST-LINK V2 ו- STM32F103C8
כאן לוח הגלולה הכחול STM32 מופעל מ- ST-LINK המחובר ליציאת ה- USB של המחשב. אז אנחנו לא צריכים להפעיל את STM32 בנפרד. הטבלה שלהלן מציגה את הקשר בין ST-Link לבין לוח גלולות כחול.
STM32F103C8 |
ST-Link V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3V3 |
3.3 וולט |
כפתור לד ולחיצה
נורית ה- LED משמשת לציון הפלט מלוח הגלולה הכחולה כאשר לוחצים על כפתור. האנודה של ה- LED מחוברת לסיכה PC13 בלוח הגלולה הכחולה והקטודה מקורקעת.
כפתור דחיפה מחובר לספק קלט אל PA1 סיכה של הלוח הגלולה הכחולה. עלינו להשתמש גם בנגד משיכה בעל ערך 10k מכיוון שהסיכה עשויה לצוף ללא כל קלט כאשר שחרור הכפתור. קצה אחד של כפתור הלחיצה מחובר לקרקע וקצה אחר לסיכה PA1 ונגד משיכה של 10k מחובר גם ל -3.3 V של לוח הגלולה הכחולה.
יצירה ושריפה של תוכנית ב- STM32 באמצעות Keil uVision ו- ST-Link
שלב 1: - התקן תחילה את כל מנהלי ההתקנים עבור ST-LINK V2, כלי התוכנה STM32Cube MX ו- Keil uVision והתקן חבילות נחוצות עבור STM32F103C8.
שלב 2: - שלב שני הוא פתיחה >> STM32Cube MX
שלב 3: - ואז לחץ על פרויקט חדש
שלב 4: - לאחר החיפוש ובחר את המיקרו-בקר שלנו STM32F103C8
שלב 5: - כעת מופיע שרטוט ההצמדה של STM32F103C8, כאן נוכל להגדיר את תצורות הסיכה. אנו יכולים גם לבחור את הסיכות שלנו בקטע היקפי בהתאם לפרויקט שלנו.
שלב 6: - תוכלו גם ללחוץ על הסיכה ישירות ותופיע רשימה, כעת בחרו בתצורת הסיכה הנדרשת.
שלב 7: - לפרויקט שלנו בחרנו PA1 כ- GPIO INPUT, PC13 כ- GPIO OUTPUT & SYS באגים כחוט SERIAL, כאן רק אנו מחברים את סיכות ST-LINK SWCLK ו- SWDIO. הסיכות שנבחרו והוגדרו מופיעות בצבע ירוק. אתה יכול לציין כי בתמונה למטה.
שלב 8: - הבא תחת הכרטיסיה תצורה , בחר GPIO כדי להגדיר תצורות סיכה של GPIO עבור הפינים שבחרנו.
שלב 9: - הבא בתיבת תצורת סיכה זו נוכל להגדיר את תווית המשתמש לסיכות בהן אנו משתמשים, כלומר שמות סיכות שהוגדרו על ידי המשתמש.
שלב 10: - לאחר מכן לחץ על פרויקט >> צור קוד .
שלב 11: - כעת מופיעה תיבת הדו-שיח של הגדרות הפרויקט. בתיבה זו בחרו את שם הפרויקט ואת מיקומכם ובחרו את סביבת הפיתוח. אנו משתמשים ב- Keil ולכן בחרו ב- MDK-ARMv5 כ- IDE.
שלב 12: - הבא בכרטיסיה מחולל קוד , בחר העתק רק את קבצי הספרייה הדרושים ואז לחץ על אישור.
שלב 13: - כעת מופיעה תיבת הדו-שיח להפקת קוד. בחר Open Project כדי לפתוח את הפרויקט באופן אוטומטי את הקוד שנוצר ב- Keil uvsion.
שלב 14: - כעת כלי KeVision uVision נפתח עם הקוד שנוצר ב- STM32CubeMx עם אותו שם פרוייקט עם ספרייה וקודים נחוצים שמוגדרים לסיכות שבחרנו.
שלב 15: - כעת עלינו רק לכלול את ההיגיון בכדי לבצע פעולה כלשהי במנורת הפלט (סיכה PC13) כאשר לוחצים על הכפתור ומשתחררים בכניסה GPIO (סיכה PA1). אז בחר בתוכנית main.c שלנו כדי לכלול כמה קודים.
שלב 16: - כעת הוסף את הקוד בלולאת while (1) , ראה את התמונה למטה בה הדגשתי את אותו קטע להפעלת הקוד ברציפות.
בעוד (1) {אם (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => לחצן DETECTS נלחץ {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // כדי להפוך את הפלט לגבוה כאשר לוחצים על כפתור} אחר {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // כדי להפיק פלט נמוך כאשר לוחצים על לחצן}}
שלב 17: - לאחר סיום עריכת הקוד, לחץ על סמל אפשרויות יעד בכרטיסיית ניפוי באגים בחר ST-LINK ניפוי באגים
כמו כן, לחץ על כפתור ההגדרות ואז בכרטיסיה הורדת פלאש סמן את תיבת הסימון איפוס והפעל ולחץ על 'אישור'.
שלב 18: - כעת לחץ על סמל בניין מחדש כדי לבנות מחדש את כל קבצי היעד.
שלב 19: - עכשיו אתה יכול לחבר את ST-LINK למחשב עם חיבורי המעגל מוכנים ולחץ על סמל ההורדה או לחץ על F8 כדי להבהב את STM32F103C8 עם הקוד שיצרת וערכת.
שלב 20: - ניתן להבחין באינדיקציה המהבהבת בתחתית חלון uVision.
פלט של לוח STM32 מתוכנת על ידי קייל
כעת כשאנו לוחצים על כפתור הלחיצה, נורית הדלק דולקת וכאשר אנו משחררים אותה, הנורית מכבה.
תכנית
החלק העיקרי שהוספנו בתוכנית שנוצרה מוצג להלן. צריך לכלול את הקוד שלמטה זה בעוד (1 ) של תוכנית main.c שנוצרה על ידי STM32CubeMX. אתה יכול לחזור לשלב 15 לשלב 17 כדי ללמוד כיצד יש להוסיף אותו בתוכנית main.c.
בעוד (1) {אם (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => לחצן DETECTS נלחץ {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // כדי להפוך את הפלט לגבוה כאשר לוחצים על כפתור} אחר {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // כדי להפיק פלט נמוך כאשר לוחצים על לחצן}}
תהליך שלם של יצירת והעלאת פרויקט ללוח STM32 מוסבר גם בסרטון הווידיאו שניתן בסוף. כמו כן הקוד המלא של קובץ main.c ניתן להלן כולל הקוד הנתון לעיל.
יתר על כן, תוכל למצוא את הסט המלא של פרויקטי STM32 כאן.