نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

پسوردتو فراموش کردی؟
Avatar

آموزش میکروکنترلر های arm سری stm32f10x جلسه 2

سلام دوستان hi در دومین آموزشمون میخوایم باهم GPIO میکرو STM32F10X رو باهم ست کنیم؛ در اموزش قبل یاد گرفتیم که چطور میشه یک پروژه ساخت و فایل های CMSIS رو بهش اضافه کرد، پس باهم ادامه راه رو میریم.
آموزش میکروکنترلر های arm سری stm32f10x جلسه 2

آموزش میکروکنترلر های arm سری stm32f10x جلسه 2


جلسه قبل : آموزش میکروکنترلر های arm سری stm32f10x جلسه 1
 
واسه ی ست کردن GPIO یا به قولی روشن کردن یک LED ما باید دوتا کار انجام بدیم اول اینکه باید RCC رو تنظیم کنیم و دوم اینکه باید GPIO رو تنظیم کنیم؛ برای تنظیم کردنشون باید لایبراری هاشون رو به پروژه اضافه کنیم؛ خب برای اضافه کردن لایبراری ها مثل قبل یک گروه جدید ایجاد کنیم تا پروژمون منظم تر بشه اسمشو هم بهتره بذارین CMSIS Driver؛ برای اضافه کردن لایبراری ها دوبار روی همون گروه جدیدی که ساختین کلیک میکنید و مسیر CMSIS_Liberary\STM32F10x_StdPeriph_Driver\src رو میرین و فایل های stm32f10x_gpio.c و stm32f10x_rcc.c رو با دابل کلیک روی فایل به پروژه اضافه میکنید :
آموزش میکروکنترلر های arm
پروژه رو که کامپایل کنیم دوتا ارور داره؛ که واسه حل اونها باید کار های زیر رو انجام داد :
1) به کامپایلر بگیم ما داریم از کتابخانه CMSIS استفاده میکنیم، که عبارت USE_STDPERIPH_DRIVER رو باید دیفاین کنیم، برای جدا کردن دو دیفاین از هم از ویرگول استفاده میکنیم.
کتابخانه CMSIS
حالا پروژه رو کامپایل میکنیم میبینیم، چهار تا ارور میده rofl …. اصلا نترسید.
2) ما فایل های C. رو به پروژه اضافه کردیم اما h. رو نه؛ خب باید مسیر فایل h. رو هم به پروژه بدیم برای این کار مانند تصویر زیر عمل میکنیم :
STM32F10X
و مسیر CMSIS_Liberary\STM32F10x_StdPeriph_Driver\inc رو میریم و پوشه inc رو انتخاب میکنیم و روی گزینه select folder کلیک میکنیم؛ حالا یه کار دیگه هم باید بکنیم که ارورا تمام بشن باید یک هدر فایل با نام conf.h رو توی پوشه پروژه اضافه کنیم ( انتهای اموزش میذارمش )؛ چون این فایل h. هست و ما اونو توی پوشه پروژه کپی کردیم باید دقیقا مثل بالا مسیر پروژه رو هم به کامپایلر بگیم؛ حالا فایل conf.h چی هست؟ در واقع این فایل میاد لایبراری cmsis رو راه اندازی میکنه.
خب حالا دیگه ارور هامون تمام شد و میریم سراغ کد نویسی؛ البته وقتی از cmsis استفاده میکنیم نیازی به کدنویسی نیست و فقط کپی میکنیم؛ ابتدا باید کلاک پورتی رو که میخوایم استفاده کنیم رو فعال کنیم. مثلا میخوایم پورت c پین 5 رو فعال کنیم؛ خب نگاهی میکنیم به دیتاشیت :
آموزش آرم
همینطور که میبینید پورت c کلاکش متصل هست به باس APB2 پس ما باید مثل زیر عمل کنیم :
آموزش arm
اگه کشوی function خالی بود کیل رو ببندید و باز کنید درست میشه؛ حالا تابع :

رو داخل تابع مین کپی کنید تا پرش کنیم؛ قسمت اولش میگه کدوم پورت یا پریفرال رو میخوایی فعال کنید؟ که تمامی پورت ها یا پری فرال هایی که به این باس وصل هستش رو با خط سبز بالاش نوشه ما میخوایم پورت c رو فعال کنیم پس عبارت RCC_APB2Periph_GPIOC رو از داخل سبز ها کپی میکنیم و در قسمت اول قرار میدیم؛ قسمت دوم هم باید بنویسید ENABLE یعنی فعال باشه یا غیر فعال که ENABLE رو هم میتونید از زیر همونا کپی کنید.
خب rcc تنظیم شد مونده تنظیمات gpio برای تنظیمات gpio باید یک استراکچر یا ساختار رو پر کنید که شامل یک سری متغیر هاست و این متغیر ها تنظیمات gpio ما رو در برمیگره.
آموزش stm32
برای این استراکچره باید عبارت GPIO_InitTypeDef رو از مسیر نشون داده شده در بالای تابع مین قرار بدین، به این صورت :

حالا باید تک تک استراچر بالا رو پر کنیم، به صورت زیر :
 GPIO میکرو STM32F10X
اسراکچر رو میزنیم و بعد دات یک نوار مانند زیر باز میشه که ما باید بر اساس نیازمون پرشون کنیم، ترتیب مهم نیست اولی مود کاریه که اینجا هشتا مود داریم :

انشاالله کم کم با همشون اشنا میشیم الان ما که میخوایم با پاییه میکرو یک led رو روشن کنیم مود GPIO_Mode_Out_PP استفاده میکنیم . یعنی خروجی که با مقاومت داخلی پوش پول شده.
میکروکنترلر آرم
وقتی نشان گر موس وسط نوشته موس باشه و شما کلید f12 رو بزنید وارد صفحه ای میشه که تمام حالت های مود و سرعت و پایه ها رو گفته و نیازی به تایپشون نیست، بر اساس نیازمون استراکچر رو به شکل زیر پر میکنیم :
 میکروکنترلر arm
قسمت speed هم مربوط به کلاک میشه میتونید یکی از سه حالت :

10، 2 و 50 مگ رو بهش بدین و pin تون رو هم میگن کدومه و در نهایت باید تمام تنظیماتتون رو در یک تابع init خاتمه بدید :
آموزش stm32
این تابع رو، اخر خط هامون کپی میکنیم و پرش میکنیم.در قسمت پورتمون رو میگیم قسمت دوم اسم استراکچرمون رو کپی میکنیم با یک & قبلش چون یک اشاره گره؛ در اخر هم از همون توابع تابع

رو انتخاب میکنیم که از اسمش مشخصه کارش چیه ؛ قسمت اول میگیم کدوم پورت قسمت دوم کدوم پین و قسمت سوم میگیم یک باشه یا صفر.

 

گروه پرسش و پاسخ الکترونیکی در سروش
پسورد فایل های سایت :
www.dmf313.ir
Avatar پيامبر خدا صلى الله عليه و آله : هر علمى در روز قيامت براى صاحب خود وبال است، مگر كسى كه به علمش عمل كند.
ارسال دیدگاه
21

1) تعداد حروف فارسی کمتر از ۵ تا باشه, دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. Avatar

    مهمان

    باربارا

    این تنظیمات رو هم بصورت خودکار انجام میده درسته؟.انجام این تنظیمات به صورت دستی چه مزیتی داره؟

    1397/12/16
    10:50
  2. Avatar

    مهمان

    سید صادق

    سلام . فیلی که در آخر پروژه گذاشته بودین خراب شده ظاهرا باز نمیشه .لطافا درستش کنید. ممنون

    1397/12/12
    01:01
    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      سلام-این مطلب فیلمی نداره که؟

      1397/12/12
      02:00
  3. Avatar

    مهمان

    fateme

    سلام خسته نباشد برای آموزش خوبتون
    من وقتی یک پین رو با تابع togglePin صفر و یک میکنم بدرستی کار میکنه:

    HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);

    ولی وقتی writePin میخوام صفر و یک کنم کار نمیکنه:

    HAL_GPIO_WritePin((GPIOC,GPIO_PIN_13,1);
    HAL_Delay(1000);
    HAL_GPIO_WritePin((GPIOC,GPIO_PIN_13,0);

    میشه راهنمایی بفرمایید
    میکرو مورد استفاده ام stm32f103c8t6 است

    1397/11/29
    11:52
    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      سلام – من Stm کار نکردم ولی یه مورد کوچیک رو شما تست کن – بعد 0 کردن پایه فوق دیلای نزاشتید شما.

      1397/11/30
      12:01
      • Avatar

        مهمان

        fateme

        سلام بله شما درست میفرمایید
        درست شد خیلی ممنون
        بنده تازه کار هستم میخواستم یک تست برای شروع بکنم

        1397/11/30
        10:48
  4. Avatar

    مهمان

    ارش

    سلام من این برنامه رو شبیه سازی میکنم جواب خروجی رو یه خط دائم صاف میبینم…میشه در مورد شبیه سازی هم توضیحاتی بدید تشکر

    1397/08/04
    06:44
  5. Avatar

    مهمان

    احسان

    سلام -> یه نظری میدم -> تجربه شخصی هست -> از زمانیکه AVR کار میکرده ام تا الان -> بهتر نبود مطالب رو رجیستری بیان میکردین ؟ -> اگر منت بگذارین من میتونم مطالب رو از صفر تاصد رجیستری آموزش بدهم smile

    1397/07/16
    10:01
  6. Avatar

    مهمان

    میلاد

    سلام آقا خدایی دمت گرم با این سایتت
    یک چیزی
    فایلی که قرار دادی روی سایت conf.h باز نمیشه مشکل داره

    1397/05/16
    06:16
  7. Avatar

    مهمان

    kazem

    چطوری تم رو مشکی کردید یاد بدید چشمام دیگه نمیبینه

    1397/04/26
    12:47
    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      این برا کد سایت هستش و نه توی کاپایلر

      1397/04/26
      03:50
  8. Avatar

    مهمان

    fazel

    این فایلی که گذاشتین برا دانلود خرابه
    انزیپ نمیشه
    باتشکر

    1397/04/21
    02:26
    • مهدی دمیرچیلو

      مدیر سایت

      مهدی دمیرچیلو

      الان تست کردم – سالمه – دوباره دانلود کنید.

      1397/04/21
      02:31
      • Avatar

        مهمان

        علی

        سلام بخدا باز نمیشه فایل conf.h

        1397/06/03
        04:49
  9. Avatar

    مهمان

    محمدرضا

    سلام
    خدا قوت…
    چجوری پروگرمش کنیم؟!!
    چه نوع پروگرامری می خواد؟
    با تشکر

    1397/03/16
    02:16
    • Avatar

      نویسنده این مطلب

      عباس پورشبانی

      سلام..پروگرامر های زیادی داره st link ,j link , ulink و… من خودم از پروگرامر st link استفاده میکنم.مال خود کمپانی st هست برای میکرو هاش .اموزشش رو قرار میدم.

      1397/03/17
      09:55
      • Avatar

        مهمان

        محمدرضا

        ماژول بنده،اینه:
        http://shop.aftabrayaneh.com/Leaflabs_Maple_Mini_Stm32_32bit_ARM__AFTAB.html?search=Stm32
        خودش پزوگرامر آنبورد داره‌چجوری باید ازش استفاده کنم؟
        با تشکر

        1397/03/18
        03:26
        • Avatar

          مهمان

          احسان

          پروگرامر آنبورد یعنی اینکه شما میتونین از طریق ی مبدل USB به UART با میکرو ارتباط بگیری و از طریق نرم افزار FLASH LOADER برنامتو ب میکرو انتقاال بدی و نهایتا با ریست کردن میکرو برنامه اجرایی میشه cool

          1397/07/16
          10:06
  10. Avatar

    مهمان

    ناشناس

    دمت گرم

    1397/02/24
    11:47
  11. Avatar

    مهمان

    امیر

    عالیییییییی مثل همیشه
    منتظر ادامه هستیم
    خدا قوت good good good good

    1397/02/22
    12:15
    • Avatar

      مهمان

      علی

      علی

      1397/12/25
      06:23