PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Stm32 رو چطوری شروع کنم دوستان ...!



sarab1
08-10-2013, 23:42
یکی بیاد بگه با این کیل چطوری پروژه درست کنم ؟ گیج شدم !cry::cry::cry::cry::
نمی دونم startup_stm32f10x_md.s اضافه کنم؟ یا system_stm32f10x.c یا startup_stm32f10x_hd.s یا :unh:
startup_stm32f10x_cl.sیا :unh:
system_stm32f10x_cl.cیا :unh:
STM32F10x.s


چیو باید include کنم ؟:(:(:(:( آخه این CMSIS دیگه چیه چه فرقی داره از این حالت استفاده کنم یا ....؟؟؟؟؟

اصلا این دیگه چیه؟ STM32_Init.c



stm32f10x_gpio.c این مربوط به CMSIS هست؟ یا...
بابا تو این ورژن 4.72 نکنه فرق میکنه محل هدر ها ....

من میخام برای STM32F103VET6 در دو حالت رجیستر و CMSIS پروژه درست کنم!!!

اگه کسی میتونه کمکی بکنه من منتظرم یا علی....

dariush_ab
09-10-2013, 00:42
سلام.
شما تازه با stm32 و keil شروع کردید؟یا نه مشکلتون با کیل ورژن جدیده چون با ورژن جدید کار نکردم.
یک بار نصب کردم و چون به پروژه های قبلی کلی خطا میداد بیخیالش شدم.تازه j-link هم رو میگفت اصلی نیست.

mzarkoob
09-10-2013, 00:44
سلام
نحوه ایجاد پروژه در پست های قبلی دوستان زحمت کشیدند قرار دادند. یه کم پراکنده هست ولی سرچ کنید پیدا می کنید

sarab1
09-10-2013, 00:49
سلام
نحوه ایجاد پروژه در پست های قبلی دوستان زحمت کشیدند قرار دادند. یه کم پراکنده هست ولی سرچ کنید پیدا می کنید

سلام من کل سایت رو و حتی سایت های خارجی رو زیر رو کردم یه چیز هایی هم پیدا کردم اما به یه نتیجه مشخص نرسیدم هر کدومشون متفاوت بود. مشکلم بیشتر در انتخاب و اضافه کردن فایل های .... هدر و سورس هست که کدوم و چرا باید اون فایل هایی که در پست اولم بهشون اشاره کردم رو اضافه کنم کارشون چیه؟ چرا در بعضی ها آخر فایل ها md و بعضی hd ????

sarab1
09-10-2013, 00:50
سلام.
شما تازه با stm32 و keil شروع کردید؟یا نه مشکلتون با کیل ورژن جدیده چون با ورژن جدید کار نکردم.
یک بار نصب کردم و چون به پروژه های قبلی کلی خطا میداد بیخیالش شدم.تازه j-link هم رو میگفت اصلی نیست.
سلام بلی تازه می خام شروع کنم اما هزار و یک سوال بی پاسخ دارم:unh::unh::unh::unh:

Doloop
09-10-2013, 02:49
سلام

نیازی به جستجو نیست برید توی انجمن STM اونجا یه تایپیک هست به نام ساخت پروژه با توابع CMSIS یا یه همچین چیزی ..!!!

اما سوالاتتون :

اولش که خیلی ساده یه پروژه درست میکنیم بعد یه محیط متنی با پسوند C. ایجاد میکنیم و به پروژه اضافه میکنیم :0013:

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

این فایل استارت آپ میتونه هر یک از این موارد زیر باشه که من هم همشو اشاره نمیکنم :

startup_stm32f10x_xl
startup_stm32f10x_md
startup_stm32f10x_hd
startup_stm32f10x_cl

و ...

پس یکی از این فایل هارو نیازی نیست شما اضافه کنید بلکه در حین ساخت پروژه خودش ازتون میپرسه و شما هم تائید میکنید و اضافه میشه :wink: این فایل ها شامل یکسری تنظیمات اولیه یا پیشفرض برای میکرو هست مثلا کلاک سیستم رو روی یک منبع پیشفرض قرار میده :0013:

اما این فایل system_stm32f10x.c که مکمل همون استارت آپ هست و باید خودتون به پروژه اضافه کنید ...

این رو هم من تا حالا ندیدم احتمالا اشتباه تایپی شماست system_stm32f10x_cl.c و آخرش cl رو اضافه گذاشتید ..!!! در غیر اینصورت تنها همین فایل system_stm32f10x.c هست و نیازی به مورد بالایی نیست

اینم STM32F10x.s نیاز نیست و ممکنه موقع ساخت پروژه در کنار فایل ها ایجاد بشه ولی کاری باهاش نداریم


چیو باید include کنم ؟

اگر توی برنامه تنها از توابع خود میکرو استفاده میکنید فقط باید stm32f10x.h رو include بکنید و تمام ولی اگر مثلا از برخی توابع و دستورات C هم استفاده میکنید باید stdio.h رو هم include کنید یا مثلا اگر از کتابخونه های السیدی یا موارد دیگه استفاده میکنید هدر اون رو هم باید include کنید ...



اصلا این دیگه چیه؟ STM32_Init.c

این یه ویزارد هست برای STM32 که بصورت گرافیکی شما کانفیگ رو انجام میدی مثلا با گذاشتن یه تیک توی اون محیط میتونی منبع کلاک سیستم رو روی داخلی یا خارجی یا PLL قرار بدی در صورتی که اگه بخای دستور براش بنویسی ممکنه چندتا دستور برای این تغیر نیاز باشه

در ضمن این ویزارد توی لایبرری های قدیمی وجود داشت و مثل اینکه دیگه مورد استفاده قرار نمیگیره و گویا microexplorer قراره جاشو بگیره :wink: ترجیحا این مورد رو هم بیخیال شو ...


stm32f10x_gpio.c این مربوط به CMSIS هست؟

این فایل تمام توابع مربوط به GPIO رو شامل میشه

که امثال این فایل ها زیاد هست مثلا :

stm32f10x_rcc.c
stm32f10x_flash.c
stm32f10x_bkp.c
stm32f10x_adc.c
stm32f10x_dac.c
stm32f10x_timer.c

که به همشون نیاز نیست و بسته به نیاز های یک پروژه باید به پروژه اضافه بشن

مثلا من یه پروژه ساختم که فقط میخام از GPIO و ADC استفاده کنم :
که فایل های زیر رو باید به پروژه اضافه کنم :

stm32f10x_gpio.c
stm32f10x_flash.c
stm32f10x_adc.c
stm32f10x_rcc.c


این دو مورد :
stm32f10x_rcc.c
stm32f10x_flash.c

توی همه پروژه ها وجود داره چون بدون تنظیمات کلاک (قطعا) و فلش(مطمئن نیستم) اصلا میکرو کار نمیکنه

این مورد رو هم stm32f10x_conf.c حتما خودتون باید به پروژه اضافه کنید

در مراحل آخر هم کتابخونه CMSIS رو کنار پروژه کپی میکنیم
حالا یکسری آدرس هم هست که باید بریم توی تنظیمات کیل و اونارو هم تنظیم کنیم که توی تب c/c++ هست

قسمت include path هست ... :wink:
توی این قسمت باید آدرس های زیر رو تعریف کنیم :

پوشه ای که پروژه در اون ذخیره شده
پوشه inc که داخل لایبرری CMSIS قرار داره
پوشه src که اینم داخل لایبرری CMSIS قرار داره
پوشه CoreSupport که اینم داخل لایبرری CMSIS قرار داره
پوشه STM32F10x که اینم داخل داخل لایبرری CMSIS قرار داره


نکات :
توی هدر stm32f10x.h برید همون خطوط ابتدایی و حتما ببینید که برای میکروی شما uncomment باشه

مثلا برای STM32F103RBT6 چون با 128 کیلو حافظه فلش از نوع stm32f10x_md هست حتما گزینه مربوط به این uncomment باشه و گزینه های دیگه همه کامنت دار باشه :wink:
این که نوع میکروی شما چیه هم از انتهای فایل startup_stm32f10x_md.s میتونید متوجه بشید

و توی هدر stm32f10x_conf هم برید و واحد هایی که قراره شما توی برنامه استفاده کنید رو هم uncomment کنید مثل :

stm32f10x_gpio.c
stm32f10x_rcc.c
stm32f10x_adc.c
stm32f10x_flash.c

تمام
سوالی بود در خدمتم البته حتما به اون تایپیکی که عرض کردم سر بزنید :wink:
موفق باشید...:wink:

sarab1
09-10-2013, 07:20
آقا حسین واقعااااااااااااااااااااا ااااااااااااااااااااااااا ااااااااااااااااااااااااا ا منو شرمنده کردی ! دستت درد نکنه نمیدونم چطوری ازتون تشکر کنم هزار بار هم دکمه تشکر هم بزنم باز کمه برادر . کمال تشکر رو دارم خیلی ممنون . انشا ا... در سایه عنایت امام زمان باشی ... لطف بزرگی کردی...

esmaeil21
09-10-2013, 11:04
به نظر من بهترین منبع آموزشی خود مثالهای کیل هست .
من هم مثل شما در stm تازه کار هستم . نزدیک دو هفته هست شروع کردم ولی با همین مثالهای کیل پیشرفت خیلی خوبی داشتم و تا حالا نیازی به توابع cmsis حس نکردم .

esmaeil21
09-10-2013, 11:09
این نکته هم بگم که با کیل ورژن 4.7 کار کردم ولی در یکی از برنامه ها کامپایل میشد ولی برنامه کار نمیکرد . ورژن کیل رو عوض کردم(4.23 )همون برنامه رو قرار دادم و برنامه به درستی کار کرد. در ورژن 4.23 تا حالا مشکلی بر نخوردم .

Doloop
09-10-2013, 15:29
این نکته هم بگم که با کیل ورژن 4.7 کار کردم ولی در یکی از برنامه ها کامپایل میشد ولی برنامه کار نمیکرد . ورژن کیل رو عوض کردم(4.23 )همون برنامه رو قرار دادم و برنامه به درستی کار کرد. در ورژن 4.23 تا حالا مشکلی بر نخوردم .

از ورژن های قدیمی مثل همین 4.23 به ورژن های بالاتر تغیراتی توی لایبرری ها صورت گرفته که ممکنه توی ورژن های بالاتر برنامه ارور داشته باشه ولی خوب با یکسری تغیرات میشه برنامه رو با همین ورژن سازگار کرد و البته ورژن های بالاتر امکانات بیشتر و باگ کمتری دارن

ولی برنامه هایی که با ورژن های بالاتر نوشته شده رو راحت و بدون مشکل میشه توی ورژن های پائین اجرا کرد ...:wink: مگر مشکل از باگ کامپایلر توی ورژن های قدیمی باشه ...

البته قصد توجیه مشکل شما رو نداشتم چون واقعا عجیبه که برنامه توی هردو کامپایل میشه ولی فقط با یکی اجرا میشه !!!

sarab1
10-10-2013, 23:19
آقا حالا از این لینک چیو باید دانلود کنم و چه جوری؟ کدام برای سری F1 هست؟
STM32 Firmware - STMicroelectronics (You can see links before reply)

sarab1
10-10-2013, 23:31
متاسفانه منظورتون رو از :
پوشه ای که پروژه در اون ذخیره شده
پوشه inc که داخل لایبرری CMSIS قرار داره
پوشه src که اینم داخل لایبرری CMSIS قرار داره
پوشه CoreSupport که اینم داخل لایبرری CMSIS قرار داره
پوشه STM32F10x که اینم داخل داخل لایبرری CMSIS قرار داره



متوجه نشدم!! مثلا من نتونستم پوشه CoreSupport رو پیدا بکنم:0013::0013:

sarab1
10-10-2013, 23:39
یه سوال دیگه اینکه کتابخونه های keil با کتابخونه های خود شرکت ST متفاوت هستند؟
پس این CMSIS دیگه چطوری خودشو با این کتابخونه ها تطبیق میده ؟؟ یا اونم کلا با این ها متفاوت هست؟
عجب پشتیبانی داره این ST ؟؟؟؟؟؟؟؟؟؟؟:unh::unh::unh:
عجب پشتیبانی داره ایران میکرو ....:o:o:o
دست همه برو بچه های ایران میکرو درد نکنه!!

Doloop
11-10-2013, 00:59
سلام

پوشه ای که پروژه در اون ذخیره شده
پوشه inc که داخل لایبرری CMSIS قرار داره
پوشه src که اینم داخل لایبرری CMSIS قرار داره
پوشه CoreSupport که اینم داخل لایبرری CMSIS قرار داره
پوشه STM32F10x که اینم داخل داخل لایبرری CMSIS قرار دارهخوب اگه قسمت های دیگه رو متوجه شدی من این قسمت رو برات آپلود کردم که شامل همه اون پوشه ها هست و من هر پروژه ای که درست میکنم از لایبرری CMSIS فقط همین پوشه رو کنار پوشه پروژه کپی میکنم والسلام شما هم همین کارو کن :wink:


یه سوال دیگه اینکه کتابخونه های keil با کتابخونه های خود شرکت ST متفاوت هستند؟در اصل هیچ تفاوتی ندارن و فقط توی CMSIS نام توابع تغیر پیدا کرده وگر نه همین CMSIS هم بیسش همون کتابخونه KEIL هست یعنی شما توی پروژه ای که برای توابع CMSIS ساختی میتونی از دستورات لایبرری کیل هم استفاده کنی :wink:
CMSIS کمک میکنه تا به کاربرد دستورات از روی نام اون دستور پی ببریم

مثلا توی CMSIS برای ست کردن یک پین از دستور GPIO_Setbits استفاده میشه ولی با توابع خود کیل باید عبارت رو این چنین وارد کنیم تا مثلا یک پین رو ست کنیم GPIO->ODR = 0x0001

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

sarab1
11-10-2013, 07:28
سلام خیلی ممنون
دستتون درد نکنه:wink:
فقط یه چیزی اینکه اون محتویات پوشه cm3 رو از کجا دانلود کردید؟ من کل cmsis رو از سایت خود arm گرفتم 46 مگا بایت شد همچین پوشه ای رو پیدا نکردم؟

بالاخره از سایت st.com دانلودش کردم:wink:

sarab1
11-10-2013, 11:56
خوب از اساتید کسی میتونه بگه در واحد RCC چه چیزهایی رو باید مد نظر قرار بدیم؟ البته سری stm32F1
ببخشید که سوال هام یکم زیاد شدند!:o:o:o

sarab1
11-10-2013, 16:19
از اساتید کسی نیست!!

Doloop
11-10-2013, 17:47
خوب از اساتید کسی میتونه بگه در واحد RCC چه چیزهایی رو باید مد نظر قرار بدیم؟

همه چیز رو ...!!!

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

که اگر به این ها کاری نداشته باشید پیشفرض 72 مگ با اسیلاتور خارجی فعال هست :wink:

مثلا برای استفاده از هر واحد هم باید کلاک مربوط به همون واحد رو فعال کنید که این قضیه مجزای از کلاک سیستم هست

مثل واحد GPIO یا SPI یا ADC یا ... که همه این ها توی رفرنس اومده
البته ریز تر هم شده مثلا کلاک پورت A با B جداگانه فعال میشه
برای ADC1 و ADC2 هم همینطوره و الی ...

اگر یک مثال رو نگاه کنید متوجه قضیه میشید
مثال ها همه توی انجمن STM و توی تایپیک آموزش بر پایه بورد سفارشی هست :wink:

sarab1
11-10-2013, 18:54
همه چیز رو ...!!!

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

که اگر به این ها کاری نداشته باشید پیشفرض 72 مگ با اسیلاتور خارجی فعال هست :wink:

مثلا برای استفاده از هر واحد هم باید کلاک مربوط به همون واحد رو فعال کنید که این قضیه مجزای از کلاک سیستم هست

مثل واحد gpio یا spi یا adc یا ... که همه این ها توی رفرنس اومده
البته ریز تر هم شده مثلا کلاک پورت a با b جداگانه فعال میشه
برای adc1 و adc2 هم همینطوره و الی ...

اگر یک مثال رو نگاه کنید متوجه قضیه میشید
مثال ها همه توی انجمن stm و توی تایپیک آموزش بر پایه بورد سفارشی هست :wink:
بازم شما آقا حسین
انگار کسی قصد نداره وارد بحث ما دو تا بشه ! خیلی عجیبه سایر دوستان هم یه زکات یادگیری بیان تو این تاپیک بپردازن ضرر نمیکنن!!!!!:0013::0013::0013::0013: