سلام… بعد از یه تاخیر از امروز میخوام به صورت تخصصی تر در مورد میکروکنترلر های شرکت ST صحبت کنم .
شرکت ST یک شرکت تولید نیمه هادی چند ملیتی هست که عمده معروفیتش به خاطر میکرو های stm32 است و چند سالی هم به دلیل کیفیت خوب محصولاتش در صنعت مورد توجه مهندس های ایرانی قرار گرفته است . علاوه بر کیفیت, فراوانی محصولات , فراوانی مستندات و راحتی کار با میکرو ها باعث شده تا گرایش به میکرو های این شرکت بیشتر باشد. ارئه کتابخانه HAL و برنامه STM32CubeMX از جمله مواردی هستند که من بهشون میگم راحتی!
خب من اینجا میخوام نحوه شروع کار با نرم افزار STM32CubeMX رو توضیح بدم . این نرم افزار شما رو از خیلی از پیکر بندی های سخت و بی مورد اولیه جدا می کنه و اجازه میده در وقتتون صرفه جویی کنید در حالی که تمام این کار ها به بهترین نحو توسط این برنامه انجام میشه .
خب بیاید این برنامه خوب رو دانلود کنیم و بیشتر بشناسیم .
برای دانلود آخرین نسخه این نرم افزار می تونید از سایت خود شرکت ST استفاده کنید .
بعد از دانلود و نصب این برنامه شما فقط یک برنامه خالی دارید !شرکت ST برای هر مدل از میکرو های خود (L0,L1,F0,F1,F2,F3,F4,F7) یک پکیج(STM32Cube) ارائه می کند که شامل کتابخانه CMSIS , کتابخانه HAL , مشخصات همه برد ها و میکرو ها و مثال های کاربردی است .مثال های کاربردی یکی دیگه از مواردی هست که من بهشون میگم راحتی کار!
برای دانلود این پکیج ها هم می توانید از طریق وبسایت این کار رو انجام دهید هم به صورت مستقیم از خود برنامه CubeMX.
من شخصا ترجیح میدم از داخل خود برنامه این کار رو انجام بدم که بدین صورت می شه:
از منو Help گزینه Install New Libraries رو انخاب می کنیم و صفحه ای به شکل زیر باز می شه
شما از اینجا میتونید Firmware مخصوص خانواده میکرو خودتون رو دانلود و نصب کنید یا اگر از سایت دانلود کردید از گزینه From local برای باز کردن آن در برنامه CubeMx استفاده کنید .
اگر تا اینجا به مشکل نخوردید پس می تونیم اولین پروژه را در این نرم افزار بسازیم .پس در صفحه اصلی گزینه New Project را اننتخاب میکنیم تا به صفحه ای به شکل زیر برسیم.
اگر هنوز میکرو یا بردی که قراره باهاش کار کنید رو نخریدید و به دنبال یک گزینه خوب با قسمت هایی که نیاز دارید هستید این بخش یک مکان فوق العاده برای شما است اما هدف این پست جست و جو برای انتخاب میکرو نیست و فرص من اینه که شما برد یا میکرو دارید . بردی که من استفاده می کنم یک STM32f746G-Disco است پس از منو Board Selector و بعد از انتخاب Discovery از منو Type of Board, برد خودم رو انتخاب می کنم (شما اینکار رو برای برد یا میکرو خودتون انجام بدید).
پس از انتخاب میکرو با این صحفه یا صفحه ای شبیه به این برخورد می کنید
در این صفحه (Pinout) اولین چیزی که به چشم میخورد پایه های میکرو شما است که به رنگ های مختلف در آمده ! دلیل این رنگ ها حالت اولیه میکرو است. شما میتونید از طریق گزینه Clear Pinouts از منو Pinout همه را پاک کنید
در قسمت سمت چپ Middleware و Prepherals رو مشاهده میکنید . همه قسمت های میکرو در این بخش وجود دارد که برای استفاده از انها فقط نیاز به چند کلیک ساده دارید .سعی میکنم پست هایی رو برای هر بخش آماده کنم و در سایت قرار بدم .
اینجا جا داره در مورد معنی رنگ هر آیکون و علامت ها توضیح بدم تا در ادامه مشکلی نداشته باشیم.
و همینطور معنی رنگ پایه ها به صورت زیر است
در کنار بخش Pinout بخش های Clock Configuration , Configuration و Power Consumption Calculator قرار دارد که توضیح مختصری در مورد هر کدام میدم
Clock Configuration
همانطور که از اسمش پیداست بخش پیکر بندی کلاک میکرو است.کلاک میکرو های ARM بر خلاف میکرو های AVR به صورت نرم افزاری قابل تنظیم است . نرم افزار CubeMX این قسمت را به صورت گرافیکی نمایش می دهد و کار را بسیار آسان می کند .
این قسمت برای هر میکرو تفاوت هایی دارد!
توضیح در مورد کلاک میکرو های ARM قطعا یکی از پست های من هست
Configuration
این بخش یک دید اجمالی به تمامی قسمت هایی که به صورت نرم افزاری قابل پیکر بندی هستند می دهد .NVIC , GPIO ,DMA و میان افزار ها در این بخش قابل تنظییم هستند
Power Consumption Calculator
برای همه سیستم های تعبیه شده مصرف توان یک میشکل اساسی بوده است . این قسمت در نرم افزار می تواند به کم کردن توان مصرفی کمک کند و باعث طول عمر باتری شود .
ساخت کد به زبان C
بعد از انجام تنظیمات نوبت به تهیه فایل خروجی که یک پروژه C است میرسد.
این برنامه توانایی ساخت پروژه C برای Keil و IAR را دارد پس برای این کار از منو Project گزینه Generate Code را انتخاب میکنیم که صفه ای به شکل زیر باز می شود
در این صفحه امکان انتخاب محل ذخیره پروژه , اسم پروژه , محیط توسعه و مقدار حافظه stack و heap را دارید
با کلیک بر روی گزینه Ok پروژه شما در محیط توسعه دلخواه شما ساخته می شود
خب این قسمت هم تموم شد
در قسمت بعد در مورد کد تولید شده توسط CubeMX توضیح میدم و یک برنامه ساده led چشمک زن رو با هم راه میندازیم
قسمت های قبلی آموزش :
واحد کنترل اینتراپت بخش اول(NVIC)
واحد کنترل اینتراپت بخش دوم(NVIC)
واحد کنترل اینتراپت بخش سوم(آخر)
ساختمان یا استراکچر (struct) در زبان برنامه نویسی C
اگر این نوشته برایتان مفید بود لطفا کامنت بنویسید.
باسلام و خسته نباشید
واقعیتش من تازه دارم با stm32cube و keil5 برنامه نویسی میکنم و میخوام یه برنامه با Hal برای راه اندازی سون سکمنت بنویسم تاحدودیم برنامه رو نوشتم ولی متاسفانه جواب نمیگیرم میخواستم اگه ممکن راهنماییم کنین
مشکلتون در ساخت پروژه هست یا برنامه نویسی برای 7segment?
اگر در برنامه نویسی مشکل دارید برای این کار باید یک آرایه ۱۰ تایی بسازید و برای روشن شدن هر عدد روی 7segment توی آرایه پایه های متناظر رو قرار بدید مثل این
{const uint8_t digit[10]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x907
بعد به صورت دسته ای به پورت از طریق رجیستر ODR مقدار بدید حتما سعی میکنم یک پروژه راه اندازی 7 segment در سایت قرار بدم
با سلام و خسته نباشید
لطفا درصورت امکان مطلبی در مورد dma بذارید و چگونگی کار با adc با dma را توضیح دهید که چه مزیتهایی دارد و تنظیم آن در cube mx به چه صورت هستش
همچنین یک مطلب درمورد ذخیره دیتا در stm بصورت دائمی مثل eeprom را توضیح دهید. مثلا اگه بخواهیم برای stm محدودیت تعداد دفعات روشن شدن بگذاریم، این تعداد باید چجوری ذخیره کنیم که قابل اطمینان باشه.
در مورد قفل کردن حافظه فلش هم مطلب بگذارید
ممنون از لطفتون
پایدار باشید
سلام من تو نرم افزار cubeفایل پروژه رو میسازم (باkeil5) اما وقتی open projectمی کنم اصلا قسمت application /userتوی نرم افزارkeil نمیاد فقط و فقطcmiss میسازه کلا فال mainرو نمیسازه اگه میشه راهنماییم کنید
مرسی از مطالب خوبتون
سلام من برنامه رو نصب کردم به جای یک صفحه چند صفحه روی هم باز میشه چکار باید بکنم میشه کمک کنید