آموزش میکروکنترلر CH32, توصیه شده, میکروکنترلر

شروع کار با واحد GPIO در میکرو کنترلر WCH – قسمت چهارم آموزش CH32

آموزش CH32 قسمت چهارم

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

اگر با ساختار و کارکرد GPIO آشنایی ندارید پیشنهاد می‌کنم این دو آموزش در مورد GPIOها در STM32 رو ببینید.

آشنایی با ساختار I/O میکروکنترلر

ساختار I/O میکروکنترلر

ساختار I/O میکروکنترلر

اکثر موارد در عکس مشهود هست؛ ولی اگر بخواهیم ی توضیحی در مورد عکس بدیم به این صورت است که IOهای این میکرو دارای دیود محافظ، اشمیت تریگر  و حالات برنامه‌پذیری پایه به شکل‌های زیر هستند.

  • Floating input
  • Pull-up input
  • Pull-down input
  • Analog input
  • Open-drain output
  • Push-pull output
  • Input and output of alternate function

و همچنین همه پایه‌های میکرو می‌تواند به‌عنوان EXTI کانفیگ بشوند که در بخش وقفه‌های به آن می‌پردازیم.

برای فعال‌کردن هر پریفرالی از میکرو لازم است که به آن پریفرال کلاک برسد ما با استفاده از دستوارت زیر کلاک رو به پریفرال‌های مختلف می‌رسانیم.

برای پیداکردن اینکه هر پریفرال GPIO به کدام شاخه کلاک متصل شده‌اند می‌تواند از دیتاشیت کمک بگیرید.

همان‌طور که در عکس می‌بینید هر سه GPIO من در APB2 قرار دارند.

بلوک دیاگرام سیستم

برای کانفیگ کردن GPIOها باید از استراکت GPIO_InitTypeDef استفاده بکنید. (باید به این نکته توجه بکنید که همه بخش‌های میکرو توسط رجیسترها کنترل می‌شود پس “باید” در اینجا به‌منظور اینکه شما قادر نیستید به رجیستری برنامه بنویسید نیست.)

سپس به آن اسمی دلخواه نسبت دهید تا بتواند از محتویات درون استراکت استفاده نمایید.

به این صورت:

ازاین‌پس شما با تایپ‌کردن اسم دلخواه خودتان می‌تواند به محتویات استراکت دسترسی داشته باشید که برای این استراکت به‌خصوص سه عدد است:

پس از تنظیم مقادیر باید آنها را بر روی پریفرالGPIO  اعمال کنیم که از تابع زیر کمک می‌گیریم.

به‌جای GPIOX پورتی که می‌خواهیم تغییرات در آن اعمال شود را قرار می‌دهیم. برای مثال GPIOA

برای مود استفاده پین و سرعت پایه مقادیری از قبل تعریف شده که ما از آنها استفاده می‌کنیم.

شروع کار با واحد GPIO در میکرو کنترلر WCH - قسمت چهارم آموزش CH32حالا من می‌خواهم پایه 0 از GPIOA را هر یک ثانیه یک بار روشن و خاموش کنم.

اول‌ازهمه کانفیگ رو انجام می‌دهیم به شکل زیر:

به این صورت ما توانستیم یک پایه رو خاموش و روشن کنیم.

برای خواندن از GPIO هم از تابع زیر کمک می‌گیریم.

در اینجا یک پروژه تست آماده کرده‌ام که از همه موارد بالا در آن استفاده شده است.

امیدوارم که آموزش براتون مفید بوده باشه، به امید دیدار شما عزیزان تا آموزش بعدی.

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *