- בחירה והורדה של פלטפורמות הפיתוח הנדרשות ללוחות Nucleo64
- תרשים מעגלים והתקנת חומרה
- תחילת העבודה עם STM32CubeMX עבור לוחות פיתוח STM32 Nucleo64
- תכנות לוח פיתוח STM32 Nucleo64 באמצעות TrueSTUDIO
- תוכנית STM32 Nucleo64 לבקרת נורית באמצעות לחצן לחיצה
- ניפוי באגים והעלאת קוד ל- STM32 Necleo64 Board Board באמצעות TrueSTUDIO
רבים מאיתנו צריכים להכיר את המיקרו-בקרים ולוחות הפיתוח הפופולריים כמו Arduino, Raspberry Pi, ESP8266, NoduMCU, 8051, וכו '. למעשה, עבור רוב האנשים, Arduino היה לוח הפיתוח הראשון שלהם, אך כאשר אנו חופרים לעומק ומתחילים עיצובים מקצועיים, בקרוב נבין את המגבלות של ארדואינו (כמו עלות, צדדיות, יציבות, מהירות וכו ') ונבין את הצורך לעבור לפלטפורמת מיקרו-בקר טבעית יותר כמו PIC, STM, Renesas וכו'.
כבר כיסינו רצף של מדריכי PIC Microcontroller, המדריכים מתחילים ללמוד מיקרו בקרי PIC. באופן דומה, החל במאמר זה, אנו גם מתכננים רצף של הדרכות לוח פיתוח STM32 Nucleo64 שיכולות לעזור למתחילים מוחלטים ללמוד ולהתפתח באמצעות פלטפורמת STM32. לוחות הפיתוח של Nucleo64 הם בעלות נמוכה ופלטפורמה קלה לשימוש עבור מפתחים מקצועיים כמו גם עבור תחביבים. אם אתה חדש לגמרי בלוחות הפיתוח STM32 Nucleo64, בדוק את הסרטון Nucleo64 Review הזה כדי להבין את היסודות של הלוח הזה לפני שתמשיך הלאה. הסרטון מדגים גם כיצד לתכנת STM32 באמצעות ARM Mbed Platform אך לצורך הדרכה זו, נשתמש בפלטפורמה אחרת לשימוש חופשי של ST Microelectronics הנקראת TrueSTUDIO.
הערה: ישנן גרסאות רבות של לוחות פיתוח STM32 Nucleo64, הלוח המסוים המשמש במדריך זה הוא NUCLEO-F030R8. בחרנו בלוח זה בעיקר בגלל העלות הנמוכה שלו. גם אם יש לך גרסה אחרת, רוב הדברים שנדונו במדריך יספיקו לך כדי להתחיל.
בחירה והורדה של פלטפורמות הפיתוח הנדרשות ללוחות Nucleo64
תחילת העבודה עם כל מיקרו-בקר תצטרך IDE תכנותי כמו שיש לנו Arduino IDE ללוחות Arduino, Atmel Studio עבור מיקרו-בקר AVR, מעבדת MP עבור PIC וכו ', אז כאן אנו זקוקים גם ל- IDE עבור לוחות STM32 Nucleo64 שלנו כדי לבצע תכנות וניקוי באגים. משפחת STM32 מורכבת ממיקרו-בקרים של 32 סיביות התומכים ב- IDE ושרשראות הכלים הבאים:
- IAR Embedded Workbench® for ARM® (EWARM).
- MDK-ARM Keil
- TrueSTUDIO
- שולחן עבודה למערכת STM32
כאן להדרכות שלנו, TrueSTUDIO ישמש לכתיבה, קומפילציה וניקוי באגים מכיוון שהוא ניתן להורדה ולשימוש בחינם אפילו לפרויקטים מסחריים ללא כל דרישת רישיון. ואז STM32CubeMX ישמש ליצירת מנהלי התקן היקפיים ללוחות STM32 כדי להקל על התכנות. כדי להעלות את התוכנית שלנו (קובץ hex) ללוח הפיתוח שלנו, אנשים בדרך כלל משתמשים בכלי השירות STM32 ST-LINK, אך במקום זאת, אנו נשתמש ב- TrueSTUDIO עצמו לשם כך. ל- TrueSTUDIO יש מצב ניפוי באגים המאפשר למתכנתים להעלות את קובץ ה- hex ישירות ללוח STM32. קל להוריד את TrueSTUIO וגם את STM32CubeMX, פשוט לחץ על הקישור למטה, הירשם והורד את ההתקנה. ואז התקן אותם במחשב הנייד שלך.
- הורד את STM32Cube MX
- הורד את TrueSTUDIO
תרשים מעגלים והתקנת חומרה
לפני שנמשיך במקטע התוכנה ובקידוד, בואו נכין את הלוח שלנו לפרויקט זה. כפי שצוין קודם במאמר זה, אנו הולכים לשלוט על נורית LED באמצעות כפתור לחיצה. כעת, אם ראיתם את הסרטון המקושר לעיל, עליכם כבר לדעת כי ללוח הפיתוח STM32 שלכם יש שתי קבוצות של סיכות מחברים משני הצדדים הנקראות סיכות מורפו ST. חיברנו כפתור ולחצני LED לסיכות אלה כפי שמוצג בתרשים המעגל להלן.
חיבורי מעגלים קלים לפרויקט זה, עלינו לחבר נורית LED ב- PA5 של PORTA ומתג ב- PC13 של PORTC ביחס ל- GND. לאחר יצירת החיבורים, מערך המבחנים שלי נראה כך.
לחלופין, אנו יכולים גם להשתמש ב- LED המובנה ולחצן הלחיצה על הלוח. נוריות LED ולחצנים מובנים אלה מחוברים גם הם באותו סיכה כפי שמוצג בתרשים המעגל. הוספנו רכיבים חיצוניים רק לתרגול. דיאגרמת הסיכות שלהלן של מועצת הפיתוח STM32 תועיל לדעת היכן מחוברים כל סיכות מורפו.
תחילת העבודה עם STM32CubeMX עבור לוחות פיתוח STM32 Nucleo64
שלב 1: לאחר ההתקנה, הפעל את STM32CubeMX, ואז בחר בבורר לוח הגישה כדי לבחור את לוח STM32.
שלב 2: כעת חפש לוח לפי שם לוח STM32 שלך כמו NUCLEO-F030R8 ולחץ על הלוח שמופיע בתמונה. אם יש לך לוח אחר חפש את שמו המתאים. התוכנה תתמוך בכל לוחות הפיתוח של STM32 מבית ST Microelectronics.
שלב 3: כעת לחץ על כן כפי שמוצג בתמונה למטה כדי לאתחל את כל ציוד היקפי במצב ברירת המחדל שלהם. בהמשך נוכל לשנות את הנדרשים לפי הצורך בפרויקט שלנו.
לאחר לחיצה על 'כן', המסך יהיה דומה לתמונה למטה ולסיכת הצבע הירוק המציין שהם יזומים כברירת מחדל.
שלב 4: כעת המשתמשים יכולים לבחור את ההגדרה הרצויה מתוך הקטגוריות. כאן במדריך זה אנו הולכים להחליף נורית LED באמצעות כפתור לחיצה. אז עלינו להפוך את סיכת ה- LED כפלט ולהעביר את הסיכה כ- INPUT.
אתה יכול לבחור כל סיכה, אך אני בוחר PA5 ומשנה את מצבו ל- GPIO_Output כדי לגרום לו לעבוד כסיכת פלט כפי שמוצג בתמונה למטה.
באופן דומה, אני בוחר ב- PC13 כ- GPIO_Input כדי שאוכל לקרוא את סטטוס הלחצן שלי.
לחלופין, אנו יכולים גם להגדיר סיכות מכרטיסיית pinout ותצורה, כמו גם להלן.
שלב 5: בשלב הבא, המשתמש יכול לקבוע את התדר הרצוי עבור המיקרו-בקר והסיכות על פי מתנד חיצוני ופנימי. כברירת מחדל, נבחר מתנד קריסטל פנימי של 8 מגה-הרץ ובאמצעות PLL, 8 זה הופך ל -48 מגה-הרץ. המשמעות כברירת מחדל לוח STM32 או מיקרו-בקר וסיכות יעבדו על 48 מגה-הרץ.
שלב 6: כעת עבור למנהל הפרויקט ותן שם לפרויקט שלך, למיקום הפרויקט ובחר בשרשרת כלים או IDE. כאן אנו משתמשים ב- TrueSTUDIO, לכן בחרתי את אותו הדבר כפי שמוצג להלן.
שלב 7: כעת לחץ על צור קוד באמצעות העיגול האדום בתמונה למטה.
שלב 8: כעת תופיע חלון קופץ כמתואר ואז לחץ על פרויקט פתוח. אבל, וודא שהתקנת את TrueSTUDIO לפני שלב זה.
תכנות לוח פיתוח STM32 Nucleo64 באמצעות TrueSTUDIO
כעת הקוד או הפרויקט שלך ייפתחו ב- TrueSTUDIO באופן אוטומטי אם TrueSTUDIO מבקש מיקום של סביבת עבודה ואז מספק מיקום של סביבת עבודה או הולך עם מיקום ברירת המחדל.
המשתמש יראה את המסך שלמטה ואז יצטרך ללחוץ על סמל הפינה בצבע אדום.
ועכשיו נוכל לראות קוד ב- TreuSTUDIO IDE שלנו. בצד שמאל מתחת לתיקיית 'src' אנו יכולים לראות קבצי תוכנה אחרים (עם סיומת.c) שכבר נוצרו עבורנו מ- STM32Cube. עלינו רק לתכנת את הקובץ main.c. אפילו בקובץ main.c כבר מוגדרים עבורנו כמה דברים על ידי CubeMX עלינו לערוך אותו רק כך שיתאים לתוכנית שלנו. הקוד השלם בתוך הקובץ main.c ניתן בתחתית דף זה.
תוכנית STM32 Nucleo64 לבקרת נורית באמצעות לחצן לחיצה
מכיוון שכל מנהל ההתקן והקוד הדרושים נוצרים על ידי STM32CubeMX, עלינו להגדיר רק סיכת LED כפלט וכפתור כפתור כקלט. התוכנית לשליטה בהובלה באמצעות כפתור הלחיצה צריכה להיכתב בקובץ main.c. את התוכנית המלאה תוכלו למצוא בתחתית עמוד זה. ההסבר לכך הוא כדלקמן
יש לנו רק קוד כתוב להחלפת ה- LED באמצעות כפתור הלחיצה. כדי להשיג זאת, אנו מגדירים תחילה סיכות עבור לד וכפתורי לחיצה. כאן הגדרנו נורית LED במספר פין 5 של PORTA
#define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5
והגדר מתג בסיכה מספר 13 של PORTC.
#define SW_PORT GPIOC #define SW_PIN GPIO_PIN_13
ואז בפונקציה הראשית, אותנו את כל ציוד ההיקפי המשומש.
/ * אתחל את כל ציוד היקפי שהוגדר * / MX_GPIO_Init (); MX_USART2_Init ();
ואז קרא את כפתור הלחיצה באמצעות הצהרת if ואם לחצן כפתור נמצא (LOW) ואז ה- LED יעבור למצב שלו.
בעוד (1) {/ * קוד משתמש מסתיים בעוד * / אם (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * קוד משתמש התחיל 3 * /}
כאן יש לפונקציה HAL_GPIO_ReadPin (SW_PORT, SW_PIN) שני ארגומנטים, האחד הוא PORT והשני הוא סיכה בה מחובר מתג וסיכה זו מוגדרת כ- INPUT תוך הגדרת תצורה היקפית ב- STM32CubeMX.
ניפוי באגים והעלאת קוד ל- STM32 Necleo64 Board Board באמצעות TrueSTUDIO
כעת חבר את הלוח למחשב באמצעות כבל המתכנת. לאחר שתחבר אותו, יש להוריד את מנהל ההתקן הנדרש ללוח באופן אוטומטי, אתה יכול לבדוק זאת באמצעות מנהל ההתקנים.
לאחר מכן, לחץ על סמל הבאגים המסומן על ידי העיגול האדום בתמונה למטה כדי להרכיב את התוכנית ולהיכנס למצב ניפוי באגים.
במצב ניפוי שגיאות, הקוד יעלה אוטומטית. כעת עלינו להפעיל את הקוד על ידי לחיצה על 'המשך' או F8 (המסומן במעגל האדום בתמונה למטה).
כעת אנו יכולים לבדוק את השליטה ב- LED על ידי לחיצה על כפתור הלחיצה. על פי הקוד, הנורית צריכה לשנות את מצבה בכל פעם שאתה לוחץ על כפתור הלחיצה. את העבודה המלאה ניתן למצוא גם בסרטון המקושר בתחתית עמוד זה.
לאחר הבדיקה, אנו יכולים גם לסיים את התוכנית על ידי לחיצה על סמל הסיום, המסומן על ידי העיגול האדום בתמונה למטה.