NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2830 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از 1 به 20 از 29

موضوع: آموزش ساخت پروژه با توابع cmsis

  1. #1
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    Icon17 آموزش ساخت پروژه با توابع cmsis

    آموزش ساخت پروژه برای استفاده از توابع CMSIS


    ساخت پروژه برای استفاده از توابع CMSIS یکم دردسر داره ولی اگه چندتا خودت بسازی دیگه هیچ مشکلی نخواهی داشت...

    برای شروع باید اول محل ذخیره پروژه رو تعین کنی
    مثلا من میخام برای کار با واحد ADC یه پروژه درست کنم
    اول : یه پوشه به نام ADC ایجاد میکنم
    دوم : سه تا پوشه با نام های زیر داخل پوشه ADC ایجاد میکنم
    lib
    project
    source

    پوشه project محل ذخیره پروژه میباشد
    پوشه source هم محل ذخیره main و سایر هدر ها ی اضافی میباشد
    اما پوشه lib محل ذخیره درایور های مربوط به توابع CMSIS میباشد
    این درایور ها بطور کلی شامل دوتا پوشه به نام های زیر میباشد که کافیه فقط داخل پوشه lib کپی شوند :

    CMSIS
    STM32F4xx_StdPeriph_Driver

    بعد هدر stm32f4xx_conf.h رو هم در آدرس زیر کپی کنید

    ADC\lib\CMSIS\ST\STM32F4xx\Include

    سوم :حالا میریم داخل نرم افزار کیل و یک پروژه جدید میسازیم بعد پروژه رو تو آدرس پوشه project ذخیره میکنیم
    حالا قبل از ایجاد محیط برنامه نویسی در قسمت project نرم افزار keil که سمت چپ محیط نرم افزار هست مطابق شکل زیر یک گروه اصلی وجود دارد که به نام ADC نامگذاری میکنیم و یک زیر گروه هم به نام startup نام گذاری میکنیم
    دو زیر گروه هم خودمان به نام های main و lib ایجاد میکنیم
    مطابق شکل زیر :



    چهارم :یه new document برای نوشتن برنامه میسازیم و با نام و پسوند main.c در آدرس پوشه source ذخیره میکنیم
    پنجم :فایل های مورد نیاز رو به پنجره project اضافه میکنیم
    این فایل ها عبارتند از :
    main.c

    system_stm32f4xx.c

    این فایل در آدرس زیر است
    ADC\lib\CMSIS\ST\STM32F4xx\Source\Templates

    و تمام فایل های موجود در آدرس زیر را نیز به گروه lib اضافه میکنیم :

    ADC\lib\STM32F4xx_StdPeriph_Driver\src

    مطابق شکل :



    بعد از اضافه کردن این فایل ها به قسمت project نرم افزار keil نوبت تنظیمات tools میباشد
    در نرم افزار keil در نوار بالا گزینه flash را زده و بعد گزینه configure flash tool را انتخاب کنید
    1 در تب target فقط مقدار xtal را روی 8 تنظیم کنید
    2 در تب output گزینه create hex file را فعال کنید
    3 تب c/c++ که این تب رو باید با دقت تنظیم کنید چون مشکل بیشتر پروژه ها مربوط به تنظیمات این قسمت میباشد
    در قسمت define این تب همیشه عبارت زیر را با حروف بزرگ تایپ کنید
    USE_STDPERIPH_DRIVER,STM32F4XX
    گزینه optimization را هم روی گزینه level 3 قرار دهید



    حالا باید در قسمت include paths آدرس یکسری فایل ها را فرا بخوانید
    چهارتا آدرس نیازه که به شرح زیر میباشد :

    ADC
    (آدرس پوشه پروژه میباشد)

    ADC\lib\CMSIS\Include

    ADC\lib\CMSIS\ST\STM32F4xx\Include

    ADC\lib\STM32F4xx_StdPeriph_Driver\inc

    انتهای این چهار تا آدرس برای همه کسانی که طبق این روال پیش رفتند دقیقا مطابق بالا میباشد و تفاوت تنها در آدرس قبل از ADC است



    حالا میریم به تب های دیگه
    4 تب debug



    5 تب utilities
    در تب utilities تب های زیر نیز وجود داره که اونا رو هم مطابق شکل باید تنظیم کنید
    تنظیمات این قسمت مربوط به پروگرمر کردن و دیباگ کردن میشه










    عزیزای مهندس اگه ایرادی هست یا موردی فراموش شده حتما ذکر کنید
    ویرایش توسط Doloop : 30-07-2012 در ساعت 14:50
    *** اللّهم عجّل لولیک الفرج ***


  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    ببخشید این مورد رو فراموش کرده بودم

    هدر stm32f4xx_conf.h رو هم در آدرس زیر کپی کنید

    ADC\lib\CMSIS\ST\STM32F4xx\Include

    پست قبلی رو هم ویرایش کردم
    *** اللّهم عجّل لولیک الفرج ***

  4. کاربران : 9 تشکر کرده اند از شما Doloop برای ارسال این پست سودمند:


  5. #3
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    مهندس خیلی ممنون به خاطر توضیحات
    در تب utilities من ST-Link Debugger رو انتخاب میکنم ولی وقتی روی دکمه setting میکنم هیچ اتفاقی نمیافته

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

    از دیروز این طوری شده مشکل از کجاست ؟

  6. تشکرها از این نوشته :


  7. #4
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    من همچین مشکلی رو ندارم
    شما هم ST-LINK جدا دارید یا همونی که روی بورد دیسکاوری رو میگید ؟
    از تب debug امتحان کنید ببینید
    توی تب دیباگ هم گزینه setting رو بزنید این پنجره باز میشه




    بعد تب flash download رو بزنید
    *** اللّهم عجّل لولیک الفرج ***

  8. کاربران : 8 تشکر کرده اند از شما Doloop برای ارسال این پست سودمند:


  9. #5
    کاربر فعال saeidhp آواتار ها
    تاریخ عضویت
    Apr 2011
    نام
    سعید
    نوشته ها
    155
    تشکر
    665
    تشکر شده 76 بار در 44 پست

    پیش فرض

    ممنون مهندس مشکل حل شد توی کیل 4.5 درسته توی 4.2 اینکار انجام نمیشه
    من از ST-Link دیسکاوری استفاده میکنم

  10. تشکرها از این نوشته :


  11. #6
    کاربر دائمی
    تاریخ عضویت
    Jul 2009
    نوشته ها
    415
    تشکر
    218
    تشکر شده 531 بار در 212 پست

    پیش فرض

    سلام مهندس

    ممنون از توضيحات خوبي كه گذاشتي
    لطف ميكني توضيح بدي كه اين تنظيماتي كه گفتي هر كدام به چه علت هست و چه راه كارهاي مشابهي داره و كدومهاش واجب هست و كدام مستحب

  12. تشکرها از این نوشته :


  13. #7
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    سلام
    ممنون از توضيحات خوبي كه گذاشتي
    خواهش میکنم
    لطف ميكني توضيح بدي كه اين تنظيماتي كه گفتي هر كدام به چه علت هست
    قسمت اولش که مربوط به ساخت پوشه ها بود کاملا اختیاری و بر حسب سلیقه بود
    یه جور دسته بندی برای فایل های مورد نیاز پروژه بود
    فقط این قسمت چون توابع مورد نیاز CMSIS هست مهم بود که باید کپی میشد

    این درایور ها بطور کلی شامل دوتا پوشه به نام های زیر میباشد که کافیه فقط داخل پوشه lib کپی شوند :

    CMSIS
    STM32F4xx_StdPeriph_Driver

    بعد هدر stm32f4xx_conf.h رو هم در آدرس زیر کپی کنید

    ADC\lib\CMSIS\ST\STM32F4xx\Include
    اضافه کردن توابع توی گروه lib داخل پنجره project به خاطر اینه که مقدار دهی اولیه رجیستر ها و دستورات توابع CMSIS داخل این فایل ها تعریف شدن و اگه اضافه نکنیم هیچ کدوم از دستورات رو نمیشناسه


    حالا باید در قسمت include paths آدرس یکسری فایل ها را فرا بخوانید
    چهارتا آدرس نیازه که به شرح زیر میباشد :

    ADC
    (آدرس پوشه پروژه میباشد)

    ADC\lib\CMSIS\Include

    ADC\lib\CMSIS\ST\STM32F4xx\Include

    ADC\lib\STM32F4xx_StdPeriph_Driver\inc
    این قسمت هم مشکل اصلی همه هست
    اینجا ما تنها آدرس تمام توابع مورد نیازه CMSIS رو میدیم و موقع کامپایل خودش تمام هدر های استفاده شده در برنامه رو توی قسمت project اضافه میکنه و البته فایل های مورد نیاز خودش رو هم از همون آدرس ها می خونه
    این خیلی واجبه
    فکر کنم اگه همه فایل های مورد نیاز رو خودمون ADD هم بکنیم جواب بده ولی به شخصه تست نکردم

    قسمت define توی همین تب هم باید دقیقا درست پر بشه و بسته به نوع میکرو و نام میکرو تغیر میکنه یادمه آقا سعید یجا گفته بود (نوع میکرو بسته به این ویژگی تعین میشه low-, medium-, high- and XL-density)
    روی این قسمت زیاد حساب نکن مموری مغزم خرابه

    قسمت optimization همین تب هم روی 3 باشه بهینه ترین کد رو تولید میکنه


    کلا اینطوری بگم که تنظیمات تب های utilities و debug به ترتیب مربوط به پروگرم کردن و دیباگ کردن میباشد و توی عمل کامپایل برنامه هیچ تاثیری نداره

    تب target هم فقط مقدار xtal رو متناسب با کریستال متصل به میکرو انتخاب میکنیم و توی کامپایل تاثیری نداره
    *** اللّهم عجّل لولیک الفرج ***

  14. کاربران : 6 تشکر کرده اند از شما Doloop برای ارسال این پست سودمند:


  15. #8
    کاربر دائمی
    تاریخ عضویت
    Jul 2009
    نوشته ها
    415
    تشکر
    218
    تشکر شده 531 بار در 212 پست

    پیش فرض

    خب بيا يه كتاب مرجع با مثال كاربردي بزن مثل بسكام 20-30 تا تجديد چاپ ميخوره ها !!

    از ما گفتن
    الان هر دستور رو بايد جدا جدا توي ديتا شيت بگرديم از هدر ها پيداش كنيم ..
    يه كتاب بنويسي كلي دعات ميكنن

    كي بيام كتاب رو بگيرم؟!

  16. تشکرها از این نوشته :


  17. #9
    کاربر دائمی
    تاریخ عضویت
    Jul 2009
    نوشته ها
    415
    تشکر
    218
    تشکر شده 531 بار در 212 پست

    پیش فرض

    استاد اين آموزش آپگريد هم ميشه ؟!

  18. #10
    مدیرکل انجمنها Doloop آواتار ها
    تاریخ عضویت
    Aug 2011
    نام
    حسين
    نوشته ها
    1,964
    تشکر
    3,312
    تشکر شده 3,086 بار در 1,371 پست

    پیش فرض

    نیاز داری ؟

    آره چرا نشه ؟

    منتظر باشید ...
    *** اللّهم عجّل لولیک الفرج ***

  19. کاربران : 2 تشکر کرده اند از شما Doloop برای ارسال این پست سودمند:


  20. #11
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض

    آقا من هرچی گشتم قسمت config کردن های این میکرو کنترلر ها رو دیدم ! اما دستورات استفاده ازونا مثل دستور adc_getconversionvalue رو درست و حسابی پیدا نکردم . تو هر مثالی یه جوری استفاده شده !!! مقدار تایمر ، وقفه تایمر و ... هرجا یه جور استفاده شدن ! ارسال اطلاعات با spi هم تقریبا همینطوره !

  21. #12
    کاربر دائمی
    تاریخ عضویت
    Jun 2009
    نام
    روح الله خرم بخت
    نوشته ها
    403
    تشکر
    456
    تشکر شده 591 بار در 214 پست

    پیش فرض

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

  22. #13
    کاربر علاقه مند spring110.sh آواتار ها
    تاریخ عضویت
    May 2011
    نام
    مازیار شاهسون پور
    نوشته ها
    80
    تشکر
    40
    تشکر شده 15 بار در 12 پست

    پیش فرض استفاده از تایمر

    نقل قول نوشته اصلی توسط spring110.sh نمایش پست ها
    آقا من هرچی گشتم قسمت config کردن های این میکرو کنترلر ها رو دیدم ! اما دستورات استفاده ازونا مثل دستور adc_getconversionvalue رو درست و حسابی پیدا نکردم . تو هر مثالی یه جوری استفاده شده !!! مقدار تایمر ، وقفه تایمر و ... هرجا یه جور استفاده شدن ! ارسال اطلاعات با spi هم تقریبا همینطوره !
    استفاده از تایمر و وقفه رو تا حدودی راه انداختم . ولی خب هنوز یکم کار می بره که بتونم به وقفه ها مسلط بشم . مخصوصا راه اندازی چند تا وقفه . الان وقتی از چند تا وقفه استفاده می کنم ، اولویت رو هم تغییر می دم ، اما فقط وارد وقفه تایمر می شه و به وقفه های خارجی و ... محل نمی ذاره !!!

  23. #14
    کاربر فعال jonbakhsh آواتار ها
    تاریخ عضویت
    Apr 2008
    نام
    H.J
    نوشته ها
    371
    تشکر
    192
    تشکر شده 225 بار در 101 پست

    پیش فرض

    خیلی ممنون
    ببخشید درایور هر ic از کجا میشه دان کرد
    ؟؟؟

  24. #15
    کاربر فعال jonbakhsh آواتار ها
    تاریخ عضویت
    Apr 2008
    نام
    H.J
    نوشته ها
    371
    تشکر
    192
    تشکر شده 225 بار در 101 پست

    پیش فرض

    یه نرم افزار پیدا کردم از توی سایت st برای سری stm هلووووووو لبووووووووو آدم میخاد بخورتش با کد ویزاردی که lpc داشت خیلی متفاوته
    http://www.st.com/st-web-ui/static/a...tm32cubemx.zip
    یه کد ویزارد کامله و بعدش فایلی که ایجاد میکنه با cmsis - main ..... کامله . فقط حتما java نصب کنید

    ویرایش توسط jonbakhsh : 22-03-2014 در ساعت 11:19

  25. کاربران : 3 تشکر کرده اند از شما jonbakhsh برای ارسال این پست سودمند:


  26. #16
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    12
    تشکر
    24
    تشکر شده 5 بار در 3 پست

    پیش فرض

    سلام ، ممنون از توضیحات خوبتون
    من مطابق آنچه ک شما توضیح دادید رفتم جلو ولی در نهایت target not created رو نشان میده
    25 خطا داره ک همش بخاطر اینه ک هدر ها رو نمیتونه باز کنه
    وقتی من فایل های c رو add میکنم ، هدر ها باهاشون add نمی شوند، در واقع مثل عکسی ک گذاشتید و فایل های c شما شاخه ای شدند ، مال من نمیشه
    لطفا اگر امکانش هست ، راهنمایی کنید ک مشکل پروژه من از کجاست؟
    ممنون

  27. #17
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    سلام
    شما فایل های هدر رو به پروژتون اضافه نکردید
    توی پست اول از از عکس زیر دوباره شروع کنید به خوندن
    ادرس هدر فایل ها رو نوشته
    با استفاده از فیلد Include Pach فایلهای هدر رو اضافه کنید


    و در مورد شاخه ای شدن یا بهتره بگیم دسته بندی فایل ها با نمودار درختی روی گزینه ی نشون داده شده در عکس زیر کلیک کنید
    موقع اضافه کردن فایلهای با فرمت دات سی
    از فیلد وسط گزینه ی نشون داده شده رو بزنید تا یه فولدر دیگه اضافه بشه بعد بهش نام بدید و در اخر هم در فیلد سمت راست
    فایلها مورد نظر رو اضافه کنید
    به سادگی به همین خوشمزگی

    فایل پیوست 7470

  28. #18
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    12
    تشکر
    24
    تشکر شده 5 بار در 3 پست

    پیش فرض

    سلام ، اول از همه اینو اضافه کنم ک من از میکرو stm32f103 استفاده میکنم ، و شاید نحوه ساخت پروژه اش متفاوت باشه ولی اگر متفاوت نباشه مطابق با توضیحات دوستان جلو رفتم و داخل عکسی ک گذاشتم اگر میشه نگاه کنید و راهنماییم کنید کجا رو اشتباه کردم
    شما فایل های هدر رو به پروژتون اضافه نکردید
    توی پست اول از از عکس زیر دوباره شروع کنید به خوندن
    ادرس هدر فایل ها رو نوشته
    با استفاده از فیلد Include Pach فایلهای هدر رو اضافه کنید

    و در مورد شاخه ای شدن یا بهتره بگیم دسته بندی فایل ها با نمودار درختی روی گزینه ی نشون داده شده در عکس زیر کلیک کنید موقع اضافه کردن فایلهای با فرمت دات سی
    و منظور من از شاخه ای شدن فایل های فرمت دات سی هست ک شاخه ای نیست و هدرها داخلشون نیست و نمی دونم چجوری اینکارو کنم ، البته داخل عکس این مورد رو نشان دادم....
    ممنون بابت راهنمایی هاتون ، اگر میشه بازم راهنمایی کنید
    با تشکر

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 46
حجم: 150.1 کیلو بایت

  29. #19
    Banned
    تاریخ عضویت
    Apr 2013
    نام
    صادق علی بخشی
    نوشته ها
    1,148
    تشکر
    1,183
    تشکر شده 1,276 بار در 702 پست

    پیش فرض

    نقل قول نوشته اصلی توسط Fate نمایش پست ها
    سلام ، اول از همه اینو اضافه کنم ک من از میکرو stm32f103 استفاده میکنم ، و شاید نحوه ساخت پروژه اش متفاوت باشه ولی اگر متفاوت نباشه مطابق با توضیحات دوستان جلو رفتم و داخل عکسی ک گذاشتم اگر میشه نگاه کنید و راهنماییم کنید کجا رو اشتباه کردم


    و منظور من از شاخه ای شدن فایل های فرمت دات سی هست ک شاخه ای نیست و هدرها داخلشون نیست و نمی دونم چجوری اینکارو کنم ، البته داخل عکس این مورد رو نشان دادم....
    ممنون بابت راهنمایی هاتون ، اگر میشه بازم راهنمایی کنید
    با تشکر

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: Untitled.jpg
مشاهده: 46
حجم: 150.1 کیلو بایت
    فرق چندانی نداره که شما با چه میکرویی کار میکنید

    لطفا پروژتون رو آپلود کنید با بهتر بتونیم راهنمایی کنیم

  30. #20
    عضو جدید
    تاریخ عضویت
    Dec 2013
    نوشته ها
    12
    تشکر
    24
    تشکر شده 5 بار در 3 پست

    پیش فرض

    سلام
    پروژه ای ک گذاشتم ، قبلا داخل پروژه آماده ای ک داشتم امتحان کردم و ج دادم
    ممنون واقعا
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: rar ADC.rar (397.1 کیلو بایت, 325 نمايش)

  31. تشکرها از این نوشته :


صفحه 1 از 2 12 آخرینآخرین

موضوعات مشابه

  1. [خبر] فیلم آموزش lpc1768 (مقدماتی و متوسط)
    توسط kavir در انجمن LPC series (NXP)
    پاسخ: 521
    آخرين نوشته: 17-12-2018, 02:25
  2. Dac در lpc1768(توابع cmsis)
    توسط ramin_kent در انجمن LPC series (NXP)
    پاسخ: 1
    آخرين نوشته: 25-02-2013, 00:27
  3. پاسخ: 7
    آخرين نوشته: 13-11-2012, 01:54
  4. برنامه نویسی کرتکس ها بدون توابع cmsis
    توسط Aghaeifar در انجمن Cortex-a8-a9 arm9-11
    پاسخ: 31
    آخرين نوشته: 03-09-2012, 09:32
  5. توضیح دستورات cmsis
    توسط esi_52000 در انجمن LPC series (NXP)
    پاسخ: 8
    آخرين نوشته: 27-01-2012, 00:05

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •