آموزش میکروکنترلر STM32 – ورودی کردن GPIO

در پست قبل یاد گرفتیم چگونه می‌توان پایه میکرو را به صورت GPIO_Output کانفیگ کرد و با صفر یا یک کردن آن، LED یا هر چیز دیگری را کنترل کرد. اما در اینجا مشکلی که وجود داشت این بود اگر LED بصورت ثابت و دائم  روشن بود و ما قصد خاموش کردن آن را پس از مدتی داشتیم، می‌بایست دوباره برنامه را تغییر دهیم و بر روی پایه میکروکنترلر مقدار صفر را قرار دهیم تا LED خاموش شود. خب این کار قطعاً معقول نیست و راه بهتر این است که هر وقت خواستیم LED را خاموش کنیم به کمک یک کلید و از طریق ورودی کردن GPIO به میکرو بفهمانیم که قصد این کار را داریم و میکرو طبق برنامه ما و وضعیت کلید، فرمان خاموش شدن LED را بدهد.

ادامه ی مطلب

آموزش میکروکنترلر STM32 – خروجی کردن GPIO

قبلاً در این خصوص که GPIO  چیست صحبت کردیم و گفتیم در صورتیکه بخواهیم یک پایه را به شکل دلخواه صفر یا یک کنیم باید آن را در حالت GPIO_Output ، و به طور برعکس اگر بخواهیم صفر یا یک اعمال شده به آن را بخوانیم باید آن را به صورت GPIO_Input ، پیکربندی کنیم. در ادامه مبحث آموزش میکروکنترلر STM32 قصد داریم نحوه‌ی خروجی کردن GPIO را به همراه یک مثال عملی شرح دهیم.

ادامه ی مطلب

نکات برنامه نویسی : نام‌گذاری معنی‌دار

نکات برنامه نویسی : نام‌گذاری معنی‌دار

نوشتن کد خوانا و تمیز از جمله مهمترین مهارت‌هایی است که هر برنامه نویس، فارغ از زبانی که استفاده می‌کند باید یاد بگیرد و بکار ببندد. کد تمیز ویژگی‌های بسیاری دارد که شرح و بسط هرکدام می‌تواند فصلی از یک کتاب یا یک ویدیو چند ساعته باشد که قطعاً از حوصله این نوشته خارج است. اما رعایت نکاتی از این دست، چون نام‌گذاری معنی‌دار می‌تواند به شدت به کیفیت کار ما بیفزاید و باعث شود تا نتایج مثبتی از آن کسب کنیم.
ادامه ی مطلب

GPIO چیست؟

از مفاهیم ابتدایی کار با میکروکنترلرها یا میکروپروسسورها، راه‌اندازی GPIO است. اما گاهی اوقات در آی‌سی‌های خاص هم این واژه را در کارکرد پایه‌ها می‌بینیم. در این پست به بررسی مفهوم GPIO می‌پردازیم تا در آینده بهتر بتوانیم در خصوص راه‌اندازی آن در میکروکنترلرهای STM32 صحبت کنیم.

ادامه ی مطلب

کتابخانه SPL ، HAL یا CMSIS ؟

اغلب افراد ابتدای یادگیری کار با میکروکنترلرهای STM32 این سؤال برایشان پیش می‌آید که با کدام‌یک از کتابخانه‌های HAL ، SPL  یا CMSIS کار کنند؟ تفاوت این‌ها با یکدیگر در چیست؟ هرکدام چه مزیتی نسبت به هم دارند؟ و …. در ادامه می‌خواهیم به توضیح این مفاهیم بپردازیم.

ادامه ی مطلب

نرم افزار CubeMX چیست؟

نرم افزار STM32CubeMX که به اختصار به آن CubeMX -کیوب ام ایکس- نیز می‌گویند، به جهت ساده‌تر کردن و سرعت بخشیدن به برنامه نویسی میکروکنترلرهای STM32 ایجاد شده است. ایجاد پروژه و راه‌اندازی واحدهای مختلف میکروکنترلرهای STM32 به صورت گرافیکی از جمله مهمترین وظایف این نرم‌افزار است. اگرچه کارکردهای دیگری چون تخمین میزان مصرف توان میکروکنترلر را نیز دارد. این نرم‌افزار در نسخه‌های ابتدایی آن باگ‌های زیادی داشت، اما به مرور شرکت ST با بازخوردی که از کاربران می‌گرفت آن را بهبود بخشید. بطوریکه اوضاع کنونی آن در وضعیت مطلوب‌تری قرار دارد. در ادامه به تشریح چند ویژگی این نرم افزار خواهیم پرداخت.

ادامه ی مطلب

یادگیری زبان C – راهی که من رفتم

یادگیری زبان C – راهی که من رفتم

یادگیری زبان C:

برای برنامه نویسی میکروکنترلرهای STM32 می‌توان از زبان‌های سی، سی پلاس پلاس، اسمبلی و … استفاده کرد. که البته در بین این گزینه‌ها، زبان C متداولترین گزینه میان امبددکارهاست. به نظر من، یادگیری زبان C از واجباب کار با میکروکنترلرها است. داشتن مهارت در برنامه‌نویسی با زبان C از اصول و پایه‌های کار، به حساب می‌آید به طوری که اگر این مهارت را داشته باشید، کار با میکروهای شرکت‌های مختلف برایتان سختی خاصی ندارد و براحتی می‌توانید نوع میکرویی که با آن کار می‌کنید را عوض کنید.  در ادامه می‌خواهم از راهی که خودم در این مسیر طی کردم، بگویم. ‌

ادامه ی مطلب

آموزش میکروکنترلر STM32 : معرفی

میکروکنترلر STM32-معرفی

یکی از واحدهایی که بچه‌های الکترونیک (و البته سایر رشته‌های مشابه) باید پاس کنند، میکروکنترلر است. موضوعی که بسیار در صنعت کاربردی است. متاسفانه اغلب، این درس -حتی در دانشگاه‌های سطح اول کشور- بسیار ضعیف ارائه می‌شود و نگاه کاربردی در ارائه آن وجود ندارد. در حالیکه حرفه‌ای شدن -به معنای واقعی کلمه- در برنامه‌نویسی میکروکنترلرها، می‌تواند ارزش و درآمد خوبی برای فرد ایجاد کند.

ادامه ی مطلب

نکات برنامه‌‌نویسی با زبان C : خطر اندیس متغیر در آرایه‌‌

 از موارد بسیار کاربردی در برنامه‌نویسی با زبان سی، آرایه‌ها هستند. در ادامه این قسمت می‌خواهیم به خطر احتمالی اندیس متغیر در آرایه ، که می‌تواند موجب باگ‌های خطرناک شود بپردازیم و همچنین ببینیم که چه راهکاری برای مقابله با این خطر احتمالی می‌توان به کار بست.
ادامه ی مطلب

نکات برنامه‌ نویسی با زبان C : معرفی

معرفی سری پست‌های “نکات برنامه نویسی با زبان C” :

در این سری پست‌ها قصد دارم نکاتی که طی این سال‌ها برنامه نویسی با زبان C یادگرفته‌ام یا با تجربه به دست آورده‌ام را با شما به اشتراک بگذارم. این نکات شاید کوچک به نظر بیایند، اما به دست آوردن بعضی از آن‌ها با تحمل صبر زیاد به دست آمده است. توصیه می‌کنم به سادگی از رویشان عبور نکنید، در غیراین صورت ممکن است شما هم در آینده گرفتار مشکلاتی شوید که در نهایت در صورت رسیدن به نتیجه، حاصل‌اش همین نکته چند خطی شود.

پی‌نوشت: اگر شما هم تجربه یا نکته‌ای در خصوص برنامه نویسی با زبان C دارید، خوشحال می‌شویم برای ما در این خصوص کامنت بگذارید.