PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : شروع آموزش stm32 بر پایه برد سفارشی



صفحه ها : 1 2 [3] 4 5

atmahdi
11-06-2012, 02:33
سلام
به نظر منم اگه با توضیحات باشه خیلی خوب میشه
با سپاس از زحمات شما

pooriya
12-06-2012, 15:55
کتابخانه lcd کاراکتری(ورژن2)

سنسور ds18b20 با lcd کاراکتری

کامپایلر:iar

توضیحات:کتابخونه lcd کاراکتری که قبلا گذاشته بودم دارای یک سری ایرادات کوچیک مانند ایراد در تعیین مختصات بود .به همین دلیل این کتابخونه بهینه شده قبلی هست با رفع ایرادات و اضافه شدن توابع جدید که می شه گفت یه کتابخونه کامل شده.ولی با این حالدر صورت برخورد با ایراد احتمالی ،گزارش بدین.
همچنین یه دوستی درخواست برنامه سنسور دما ds18b20با lcd کاراکتری رو کرده بود که اونم قرار می دم.

pooriya
12-06-2012, 15:58
سلام مهندس ..
خيلي عالي هست .. اگر توضيحات صفرتا صدي يكي از پروژه ها رو از باز كردن برنامه تا پروگرم كردن بنويسي خيلي عالي ميشه

دماسنج ميكرو نوسان داره ؟ نسبت به دماسنج خارجي؟ يا مسئله چيز ديگه اي هست؟

با سلام

مهندس چشم.حتما.فقط بعد از فصل امتحانات .
دماسنج خود میکرو اگه درست راه اندازی بشه مشکلی نداره.هدف ds18b20 اشنائی با ارتباط 1wire و همچنین راه اندازی این سنسور دقیق بود.

pooriya
14-06-2012, 23:21
سلام
دوستان به میمنت ورود ال سی دی 7 اینچ، یه کتابخونه راه انداز برای این lcd با درایور ssd1963 قرار میدم.همچنین می تونین فیلم راه اندازی این lcd رو ببینید.
لینک فیلم:
videoplayback (You can see links before reply)

avr.mohsen
15-06-2012, 21:20
راه اندازي سنسور دماي داخلي ميكرو

كامپايلر:keil
فركانس ميكرو:72mhz
توضيحات:در اين برنامه مقدار دماي هوا توسط سنسور دماي داخلي ميكرو با استفاده از واحدadc خوانده شده و به پورت سريال ارسال مي گردد.در اين برنامه همچنين از واحد dma استفاده شده است)
(اين برنامه كار من نبوده و فقط تغييراتي توسط اينجانب داده شده است و روي برد موجود تست شده)

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

pooriya
15-06-2012, 22:43
سلام
دوست عزیز برنامه بدون هیچ مشکلی کامپایل میشه و پروژه با تمام فایل های مورد نظر اپلود شده.(ورژن keil من 4.22 هست)

sadmonew
15-06-2012, 23:34
سلام مهندس پوريا بازم دست گلت درد نكنه. بابت كتابخونه SSD1963 براي ال.سي.دي 7 اينچ.
بله براي ورژن 4.5 ارور ميگيره.
البته دارم برطرفش ميكنم.
راستي مهندس چرا كتابخونه cmsis همراه برنامه(فايل زيپ شده) نيست؟

pooriya
16-06-2012, 01:08
سلام مهندس پوريا بازم دست گلت درد نكنه. بابت كتابخونه SSD1963 براي ال.سي.دي 7 اينچ.
بله براي ورژن 4.5 ارور ميگيره.
البته دارم برطرفش ميكنم.
راستي مهندس چرا كتابخونه cmsis همراه برنامه(فايل زيپ شده) نيست؟

اقا مخلصیم.
دست درد نکنه .(تو 4.22 کامپایل می شد).
در مورد کتابخونه ssd1963(فایل زیپ)سورس رو به صورت خام قرار دادم که زحمت include کردن اون واسه دوستان می مونه و توابعش هم که با cmsis هست.

avr.mohsen
16-06-2012, 09:16
سلام
دوست عزیز برنامه بدون هیچ مشکلی کامپایل میشه و پروژه با تمام فایل های مورد نظر اپلود شده.(ورژن keil من 4.22 هست)

تشکر مهندس
ولی ما که هر کار کردیم این پروژه را نتونستم کامپایل کنم cry::cry::cry::cry::
هر چی فایل هم خواست به پروژه اضافه کردیم نشد که نشد
میشه یه زحمت بکشی فایلهاشم باهاش آپ کنی (KEIL 4.50)



البته بگم اینا که گریه میکنند من نیستما پسرمه(امیرحسین بابااااااااااااااااا)

cmuiran
16-06-2012, 10:27
سلام داداش pooriya (You can see links before reply) :hi:
شماتیکی برای این سورس دارین که قرار بدین ؟؟ که تست شده
یا از شماتیک فروشگاه استفاده کردین ؟؟؟؟؟

pooriya
16-06-2012, 10:45
تشکر مهندس
ولی ما که هر کار کردیم این پروژه را نتونستم کامپایل کنم cry::cry::cry::cry::
هر چی فایل هم خواست به پروژه اضافه کردیم نشد که نشد
میشه یه زحمت بکشی فایلهاشم باهاش آپ کنی (KEIL 4.50)



البته بگم اینا که گریه میکنند من نیستما پسرمه(امیرحسین بابااااااااااااااااا)

سلام
واقعیتش من زیاد تو keil وارد نیستم.مهندس (صادق محمدی)sadmonew گفتن که تغییر یافتش رو قرار می دن.منم اگه لازم داشتین می تونم با IAR قرار بدم

pooriya
16-06-2012, 10:50
سلام داداش pooriya (You can see links before reply) :hi:
شماتیکی برای این سورس دارین که قرار بدین ؟؟ که تست شده
یا از شماتیک فروشگاه استفاده کردین ؟؟؟؟؟

سلام

شماتیک تمام سورس هائی که قرار میدم،همون بردی هست که با بچه ها تو انجمن زدیم.(تو این پست هم قرار میدم).البته من برای ارتباط سریال از ft232rl استفاده می کنم.

cmuiran
16-06-2012, 10:56
سلام داداش
من اینو قبلا گرفتم
منظور نحوه درایو ال سی دی با ایسی ssd !
شما برای را اندازی این ای سی دی 7 اینچ ، به چه صورت درایو کردین و با این سورس را اندازی شد

cmuiran
16-06-2012, 11:44
دوستان این سایت ببینین میتونه کمکتون کنه
SSD1963 - TFT LCD controller with built-in frame buffer memory (You can see links before reply)

sadmonew
16-06-2012, 12:02
سلام
واقعیتش من زیاد تو keil وارد نیستم.مهندس (صادق محمدی)sadmonew گفتن که تغییر یافتش رو قرار می دن.منم اگه لازم داشتین می تونم با iar قرار بدم
سلام مهندس
حالا بدون ارور تو كيل 4.5 كامپايل ميشه و خروجي رو ميتونيد تو HyperTerminal ببينيد.

avr.mohsen
16-06-2012, 12:10
سلام مهندس
حالا بدون ارور تو كيل 4.5 كامپايل ميشه.

بابا ایول بابا حال کردیم :018::o
:hi:اینجا چقدر زود کار آدم راه می افتد:125:
خیلی خیلی حال کردیم :fan::fan::fan:
الان بدون ارورش را دیدم بعد از ظهر برم خانه رو بردم تستش کنم

cmuiran
16-06-2012, 13:26
سلام داداش sadmonew (You can see links before reply) :hi:ارادت
آقا یک توضیحی می تونین در مورد این هدر بدین + اینکه یک شماتیک میتونین در اختیار ما قرار بدین !؟
یا از شماتیک ال سی دی که تو فروشگاه هست استفاده کردین؟؟؟

sadmonew
16-06-2012, 15:34
سلام داداش sadmonew (You can see links before reply) :hi:ارادت
آقا یک توضیحی می تونین در مورد این هدر بدین + اینکه یک شماتیک میتونین در اختیار ما قرار بدین !؟
یا از شماتیک ال سی دی که تو فروشگاه هست استفاده کردین؟؟؟

سلام مهندس غلامي
آقا ما بـــــيـــــــشـــــــــت ـــــــــــر:018:
مهندس كدوم شماتيك رو ميگي؟منظورتون ال.سي.دي هستش كه عكسشو گذاشتم؟

cmuiran
16-06-2012, 15:44
مهندس :hi:من این میگم
You can see links before reply

راستی شما برنامه برای این ال سی دی و درایور ssd نوشتین ؟؟ برای اینکه قرار بدین .

sadmonew
16-06-2012, 15:50
مهندس :hi:من این میگم
You can see links before reply

راستی شما برنامه برای این ال سی دی و درایور ssd نوشتین ؟؟ برای اینکه قرار بدین .

براي درايور ssd دارم برنامش رو مينويسم.
بردش رو هم زدم. البته لحيم كاريش تموم نشده. 3/4 روز ديگه كه قطعات دستم برسه.لحيم كاريش رو تموم ميكنم.
راستي من ميخوام ال.سي.دي 4.3 اينچ رو راه اندازي كنم.

cmuiran
16-06-2012, 15:58
براي درايور ssd دارم برنامش رو مينويسم.
بردش رو هم زدم. البته لحيم كاريش تموم نشده. 3/4 روز ديگه كه قطعات دستم برسه.لحيم كاريش رو تموم ميكنم.
راستي من ميخوام ال.سي.دي 4.3 اينچ رو راه اندازي كنم.
بسیار عالییییییییییییییی:018:
من ال سی دی 7 اینچ گرفتم برای پروژه پایان ترم دانشگاهم
راستی pcb با چی میزنی ؟؟؟ altum ???

یک مشکل دیگه اینه که من هنوز وقت نکردم با stm کار کنم
برد مونتاژ کردم ولی هنوز نرفتم سر وقتش

sadmonew
16-06-2012, 16:04
راستی pcb با چی میزنی ؟؟؟ altum ???

یک مشکل دیگه اینه که من هنوز وقت نکردم با stm کار کنم
برد مونتاژ کردم ولی هنوز نرفتم سر وقتش
بله با Altium طراحيش كردم.
قصد دارم با همين STM32f103rbt6 راش بندازم.
مهندس اصلا مساله اي نيست و جاي نگراني نداره. كار با اين ميكرو راحته.

cmuiran
16-06-2012, 16:08
ببینیم خدا چی میخوا و اینقدر مشکلات زیاده دیگه وقت نمیشه به این کارا برسیم


آقا دمت گرم
موفق پیروز باشید

avr.mohsen
16-06-2012, 19:44
سلام مهندس
حالا بدون ارور تو كيل 4.5 كامپايل ميشه.

با تشکر
رابط سریالش درست کار نکردcry:: اونجاهایی که کامنت کرده بودی را درست کردم ولی باز نشد
کریستال میکروم 8 مگ است اون که مشکلی نداره مطابق با برنامه است دیگه ؟؟؟
میشه شما هم یه تستی بزنید
ممکن مشکل سخت افزاری داشته باشم st232 گذاشتم
ولی یه چیزایی میفرسته ولی قرو قاطی
زمانی این مشکل و تو avr داشتیم که کریستال با چیزی که تو برنامه پیکربندی کرده بودی همخونی نداشت.
یکی یه تستی بکنه
با تشکر فراوان:hi:

pooriya
16-06-2012, 20:44
سلام

من با ft23rlتست کردم.
1-به نحوه اتصال پایه های rx,tx دقت کن درست باشن.
2-baud rate کامپیوتر باید روی 115200 تنظیم شده باشه.

avr.mohsen
16-06-2012, 20:53
سلام

من با ft23rlتست کردم.
1-به نحوه اتصال پایه های rx,tx دقت کن درست باشن.
2-baud rate کامپیوتر باید روی 115200 تنظیم شده باشه.

سلام مهندس همه اینها رو چک کردم ok است
ولی بازم همون مشکل رو دارم
یکی این برنامه با 4.5 را تست کنه ببینه جواب میده
ما مطمئن بشیم مشکل ما سخت افزاریه یا نه

sigma-mx
16-06-2012, 21:03
سلام
مهندس gnd رو وصل کردی دیگه ؟
ارتباط برقرار میشه ولی نامفهوم مینویسه ؟
تو سیمولاتور چطور کار میکنه ؟

avr.mohsen
16-06-2012, 21:18
سلام
مهندس gnd رو وصل کردی دیگه ؟
ارتباط برقرار میشه ولی نامفهوم مینویسه ؟
تو سیمولاتور چطور کار میکنه ؟

آره مهندس جون
بعد از نماز از اول یه چک میکنم شماتیکم میزارم شاید مشکلم اونجا باشه
:unh:

pooriya
16-06-2012, 22:09
مهندس سخت افزارتو چک کن ببین اگه همه چی درست بود یک بار فایل hex قبلی(اونی که نمی تونستین کامپایل کنین) رو توسط پروگرمر داخل ic قرار بدین ،اگه کار کرد که سخت افزارتون درسته در غیر این صورت..........

sadmonew
16-06-2012, 22:53
با تشکر
رابط سریالش درست کار نکردcry:: اونجاهایی که کامنت کرده بودی را درست کردم ولی باز نشد
کریستال میکروم 8 مگ است اون که مشکلی نداره مطابق با برنامه است دیگه ؟؟؟
میشه شما هم یه تستی بزنید
ممکن مشکل سخت افزاری داشته باشم st232 گذاشتم
ولی یه چیزایی میفرسته ولی قرو قاطی
زمانی این مشکل و تو avr داشتیم که کریستال با چیزی که تو برنامه پیکربندی کرده بودی همخونی نداشت.
یکی یه تستی بکنه
با تشکر فراوان:hi:
سلام مهندس
مهمترين دليلي كه باعث ميشه برنامه تو كيل 4.5 درست كار نكنه، تابع printf هستش.
در صورتي كه تو كيل 4.22a درست كار ميكنه.

avr.mohsen
16-06-2012, 23:57
سلام باعرض پوزش از همه اساتید
مشکلم حل شد
اصرار نکنید روم نمیشود بعد از 7و8 سال کار الکترونیک و تابلوروان وavr
کردند توضیح بدم چه سوتی بزرگی داده بودم
که st232 را جابجا زدم

avr.mohsen
17-06-2012, 01:06
سلام
یه سوال جدید پایه vdda به 3.3v و vssaبه gnd باید وصل باشه
الان دما رو میانگین 40 درجه نمایش می دهد .

sigma-mx
17-06-2012, 01:37
بله درسته..
خب هوا گرمه دیگه ! :0013:

avr.mohsen
17-06-2012, 11:21
سلام
یه سوال دیگه
اگه بخوام وقفه رابط سریال رو راه بندازم باید چیکار کنم
(تابع printf قشنگ کار می کنه)

sadmonew
17-06-2012, 15:41
(تابع printf قشنگ کار می کنه)
سلام مهندس
تو كيل 4.22 ميگي؟ درسته؟

sadmonew
18-06-2012, 18:18
رابط سریالش درست کار نکردcry::
سلام مهندس
فايلي كه تو پست 517 گذاشتم و كار نميكرد رو مشكلش رو برطرف كردم. حالا ميتونيد خروجي رو تو HyperTermanal ببينيد.
مشكل رو با تابع printf خودم حل كردم(printf_me)!!!!ii998)

avr.mohsen
18-06-2012, 22:24
سلام مهندس
فايلي كه تو پست 517 گذاشتم و كار نميكرد رو مشكلش رو برطرف كردم. حالا ميتونيد خروجي رو تو HyperTermanal ببينيد.
مشكل رو با تابع printf خودم حل كردم(printf_me)!!!!ii998)
تشکر مهندس :hi:
نه تو همون 4.5 راه انداختم قشنگ کار کرد ok بود
یه سوال دیگه یکی یه Template کامل با همه توابع cmsis برای cmsis_rtos برای همین میکرو داره
هر چی تلاش کردم نتونستم یکی بسازم:unh:

sadmonew
18-06-2012, 22:46
نه تو همون 4.5 راه انداختم قشنگ کار کرد ok بود
یه سوال دیگه یکی یه Template کامل با همه توابع cmsis برای cmsis_rtos برای همین میکرو داره
هر چی تلاش کردم نتونستم یکی بسازم:unh:
سلام مهندس:hi:
خيلي عاليه.
مشكل همون بود كه عنوان كردين؟ درسته؟
خوب تا هر قسمتي كه تونستين انجام بدين رو اينجا بذارين. تا ببينيم مشكل چيه؟
دوستان تو انجمن اين template رو ساختن؟ يا از جايي ديگه دانلود كردين؟

avr.mohsen
19-06-2012, 10:08
سلام به همه دوستانی که تا اینجا بحث رو پیگیری کردن
یه سوال از اساتید محترم
یه پروژه cmsis_os درست کردم مشکلی نداره
مشکل از اونجایی پیش میاد که از توابع cmsis می خواهم استفاده کنم نمونه پروژه را up کردم
اروری که می ده هم عکسشو گذاشتم
میشه یه نگاه بندازین

sadmonew
19-06-2012, 13:23
سلام مهندس
بدون ارور كامپايل شد. مهندس لطفا تستش كن و نتيجه رو بگو.
راستي مهندس عكس قشنگي گذاشتي.
خدا حفظش كنه.

avr.mohsen
19-06-2012, 14:07
سلام مهندس
بدون ارور كامپايل شد. مهندس لطفا تستش كن و نتيجه رو بگو.
.

دستت درد نکنه مهندس :hi:
بعد از ظهر برم خانه برنامه رابط سریال و روش تست میکنم الان بدون ارور کامپایل می شه
راستی مشکل برنامه من چی بود


راستي مهندس عكس قشنگي گذاشتي.
خدا حفظش كنه.
سلامت باشی مهندس
انشاالله

avr.mohsen
19-06-2012, 18:41
سلام مهندس
بدون ارور كامپايل شد. مهندس لطفا تستش كن و نتيجه رو بگو.
.
جواب نداد که نداد
آقا ما یه مثال با CMSIS_RTOS برای STM32F10XX می خواهیم که دو تا LED چشمک بزند
نیافتیم که نیافتیم.cry::cry::cry::cry::

sadmonew
20-06-2012, 01:20
جواب نداد که نداد
آقا ما یه مثال با cmsis_rtos برای stm32f10xx می خواهیم که دو تا led چشمک بزند
نیافتیم که نیافتیم.cry::cry::cry::cry::
سلام مهندس
كدوم قسمت جواب نداد؟
كار كردن با توابع و دستورات مربوط به rtos يه چيز، كامپايل كردن rtos همراه با كتابخونه cmsis يه چيز ديگه!
مهندس توابع و دستوررات rtos رو كه حتما استفاده كردين؟

avr.mohsen
20-06-2012, 01:31
سلام مهندس
كدوم قسمت جواب نداد؟
كار كردن با توابع و دستورات مربوط به rtos يه چيز، كامپايل كردن rtos همراه با كتابخونه cmsis يه چيز ديگه!
مهندس توابع و دستوررات rtos رو كه حتما استفاده كردين؟
آره مهندس استفاده کردم حتی به osDelay هم اروا undefined میده
یه مثال که تمام توابع را داشته باشه و دو تا تسک که دو تا led توش چشمک بزنه میشه پیدا کرد؟؟؟؟:(cry::

sadmonew
20-06-2012, 02:32
آره مهندس استفاده کردم حتی به osDelay هم اروا undefined میده
یه مثال که تمام توابع را داشته باشه و دو تا تسک که دو تا led توش چشمک بزنه میشه پیدا کرد؟؟؟؟:(cry::
مهندس يه پيشنهاد:
1-خوب اول از همه بريد تو اين لينكي كه گذاشتم و آخرين ورژن FreeRTOS رو دانلود كنيد.
اينم لينك: FreeRTOS Real Time Kernel - Browse Files at SourceForge.net (You can see links before reply)
يعني فايلي به اسم(FreeRTOSV7.1.1.exe) رو دانلود كنيد.
2- بعد دانلود فايل، اونو Extract كنيد.
3- به مسير زير بريد. شما فوادري به اسم "CORTEX_STM32F103_Keil" اونجا داريد.

\FreeRTOSV7.1.1\FreeRTOSV7.1.1\Demo\...

كه يه نمونه مثال خوب هستش. كه توش از USART1 هم استفاده كرده. من تو فايل main.c يه تغيراتي دادم(البته كوچولو) و دو تا task به اسم هاي vLED_1 و vLED_2 رو اضافه كردم. بعد كامپايل كردم. و روي برد تست كردم. به خوبي كار ميكنه.
اگه خواستيد من اين فولدر يا فقط فايل main.c كه تغيير دادم رو بذارم.

avr.mohsen
20-06-2012, 14:34
اگه خواستيد من اين فولدر يا فقط فايل main.c كه تغيير دادم رو بذارم.
تشکر مهندس اگه زحمتی نیست کل فولدرو بزارین:hi:

avr.mohsen
21-06-2012, 11:13
سلام به دوستان گرامی
اینم یه برنامه با keil
رابط سریال با وقفه دریافت
ds18b20
در صورت بالا رفتن دما به بیش از 40 درجه به شماره پیش فرض sms می دهد
اگه با شماره پیشفرض یه sms با مضمون 12630 rrr براش بفرستی برای شماره پیشفرض دما رو sms میکند

sadmonew
21-06-2012, 12:48
تشکر مهندس اگه زحمتی نیست کل فولدرو بزارین:hi:
سلام مهندس
ببخشيد ديگه.
مهندس همون فايل main.c رو ميذارم. حجم فولدر زياده، مشكل ميشه آپلودش كرد.

avr.mohsen
21-06-2012, 13:39
مهندس يه پيشنهاد:
1-خوب اول از همه بريد تو اين لينكي كه گذاشتم و آخرين ورژن freertos رو دانلود كنيد.
اينم لينك: freertos real time kernel - browse files at sourceforge.net (You can see links before reply)
يعني فايلي به اسم(freertosv7.1.1.exe) رو دانلود كنيد.
2- بعد دانلود فايل، اونو extract كنيد.
3- به مسير زير بريد. شما فوادري به اسم "cortex_stm32f103_keil" اونجا داريد.

\freertosv7.1.1\freertosv7.1.1\demo\...


تشکر مهندس
بزار از اول قضیه را برات بگم
من کارم نوشتن برنامه است یعنی برنامه های بزرگ .
الان یه برنامه نوشتم و سخت افزارشم ساخته شده البته با at91sam7x256 .
100 تا از دستگاهم ساختیم.
حدود دو سال پیش شروع کردیم به ساخت. اون زمان برای انتخاب میکرو عجله کردیم و بهتر بگم خیلی تحقیق نکردیم .
الان برای ساخت ورژن جدید دستگاه می خواهم حتما از سه تا چیز استفاده کنم که دلیلشم میگم شاید درست باشه وبه درد مابقی هم بخوره.
1.cmsis
2.rtos
3.میکروهای stm
1.اول از آخر شروع میکنم
سومی به خاطر قیمت - قابلیت-استفاده از هسته کرتکس که برای سیستم عامل بهینه شده
دومی به خاطر اینکه حجم برنامم زیاده(حدودخط15,000) و کارهای زیادی تو برنامم باید انجام بدم برای همین از یه سیستم عامل باید استفاده کنم (تقریبا ساختاری که باید با سیستم عامل داشته باشم رو پیاده سازی کردم)
اولی به خاطر اینکه یه روز این میکرو پیدا نشد خیلی سریع بتونم سوئیچ کنم روی یه میکرو دیگه مثلا از شرکت nxp .
حالا گیری که دادم از خود سیستم عامل cmsis استفاده کنم اینه که بتونم اون عمل سوئیچ رو خیلی سریع انجام بدم و همزمان از قابلیتهای rtx خود keil هم مثل rl_tcpip استفاده کنم.
-------------------------------------------------------------------------------------------------
اول که ببخشید زیاد حرف زدم دوم یه سوال
freertos چجور سیستم عاملی است درست کار میکنه چه قابلیتهایی داره ؟؟؟؟؟؟

kavir
21-06-2012, 13:51
سلام
من دوتا پیشنهاد بهت میکنم
1. اگر پروژه ای هست و ساخت lpc1769 سرعت بسیار بالا و عالی سرعت تا 120 مگا هرتز
2. stm32f103vet6 اینم قیمتش در حد 10 تا 12 نمونش هم از چین اوردم تیو فروشگاه نزدم این هم ایسی عالی هست و نمونه برد کاملش هم هفته دیگه برای فروش اماده میشه
در حال حاظر این دوتا آیسی بهترین هست هم ارزون هم دسترس و هم امکانات بالا

avr.mohsen
21-06-2012, 14:35
سلام
من دوتا پیشنهاد بهت میکنم
1. اگر پروژه ای هست و ساخت lpc1769 سرعت بسیار بالا و عالی سرعت تا 120 مگا هرتز
2. Stm32f103vet6 اینم قیمتش در حد 10 تا 12 نمونش هم از چین اوردم تیو فروشگاه نزدم این هم ایسی عالی هست و نمونه برد کاملش هم هفته دیگه برای فروش اماده میشه
در حال حاظر این دوتا آیسی بهترین هست هم ارزون هم دسترس و هم امکانات بالا

تشکر
نوع آسی رو مشکلم نیست
مشکلم الان یه template برای میکرو stm32f103xxx که تو اون از rtos
cmsis استفاده شده باشه و از کل توابع cmsis رو هم add کرده باشه و دوتا
تسک داشته باشه توش دو تا پایه با توابع cmsis تاگل بشه
همین!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!:125:

sigma-mx
21-06-2012, 15:36
سلام
اینجا رو یه نگاه بنداز :
You can see links before reply

avr.mohsen
23-06-2012, 11:00
سلام
اینجا رو یه نگاه بنداز :
You can see links before reply

دیدم مهندس اون چیزی که من گفتم رو نداره.(Template کامل)

sadmonew
01-07-2012, 18:30
سلام
اينم يه مثال ساده در مورد نحوه راه اندازي و كار با پورت spi1(ميكروي stm32f103rbt6):

saeidhp
10-07-2012, 12:44
سلام مهندس
من اولین پروژه ARM شروع کردم و همین اول کار کار گیر کردم
یه پروژه جدید ساختم و new باز کردم به نام main.c و محتویات فایل main.c شما رو توش کپی کردم
همونطور که در عکس مشخصه خطای target میده لطفا راهنمایی کنید
You can see links before reply

sadmonew
10-07-2012, 13:25
سلام مهندس
البته قبلا در مورد اين خطا و نحوه برطرف كردنش صحبت شده.
اين خطا موقعي پيش مياد كه شما، نوع ميكروتون رو مشخص نكرده باشين.
لطفا عكسارو رو نگاه كنيد.
شما حتما اون عبارات مقابل Define رو به پروژتون اضافه كنيد.

saeidhp
10-07-2012, 14:37
ممنون مهندس قسمت Define رو وارد کردم اون مشکل حل شد
اگه ممکنه متن قسمت دوم رو بزارید خیلی خوانا نیست البته من تقریبا شبیه اون نوشتم ولی مطمئن نیستم

این یعنی چی ؟ StdPeriph_Driver

الان خطای زیرو میده
You can see links before reply

sadmonew
10-07-2012, 14:55
كدوم متن رو ميگيد؟ متوجه نميشم؟
مهندس فايل هايي كه تو مسير زير قرار دارن و تو عكس نشون دادم رو به پروژتون اضافه كنيد.


...\library\STM32F10x_StdPeriph_Driver\src

sigma-mx
10-07-2012, 15:23
ممنون مهندس قسمت Define رو وارد کردم اون مشکل حل شد
اگه ممکنه متن قسمت دوم رو بزارید خیلی خوانا نیست البته من تقریبا شبیه اون نوشتم ولی مطمئن نیستم
این یعنی چی ؟ StdPeriph_Driver
الان خطای زیرو میده


متن قسمت اول : USE_STDPERIPH_DRIVER
قسمت دوم : STM32F10X_MD
و بقیه : GPIO_ و USART_ و SPI_

قسمت اول عبارت موردنظر رو تعریف میکنه که توسط اون توابع استاندارد CMSIS قابل استفاده میشه .. تا اینو ننویسیم هیچ دستوری کار نمیکنه .
قسمت دوم خانواده میکروی ما رو برای CMSIS تعریف میکنه .. در اینجا MD به معنای Medium density یعنی خانواده ظرفیت متوسط سری F10X هست .

ضمنا در این پروژه از لایببری قبلی CMSIS و روش قبلی فراخوانی استفاده شده . در این روش باید با درایوری که می خواهید کار کنید مثل GPIO و SPI و USART و ... عبارت مورد نظر رو هم همراه یک _ قبلش در همین پنجره بنویسید تا بطور خودکار لایببریش فراخوانی بشه .
دو مورد اول یعنی USE_STDPERIPH_DRIVER و STM32F10X_MD همیشه باید نوشته بشه .. و تمام این define ها با یک , (کاما) باید از هم جدا بشه .

ارور مربوط به اینه که لایببری SPI فراخوانی نشده . شاید عبارت SPI_ رو صحیح ننوشتید ..

saeidhp
10-07-2012, 16:08
ممنون مشکل حل شد
حالا اگه بخواییم به جای عدد 170 یه متنو از طریق SPI بفرستیم مثلا R0D4 باید هر کارکتر به صورت جداگانه فرستاده بشه ؟


SPI_I2S_SendData(SPI1, 170); // ersale adade 170=10101010
while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)== RESET){}


و سوال دوم
من پایه های آی سی رو به صورت دلخواه به چندتا از پایه های میکرو وصل کردم فقط شماره pin رو در دستور زیر برای MISO , MOSI , CS , CSK عوض کنم درسته ؟


//tanzime pinhaye PORTe SPI1: SCK , MISO , MOSI
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;

// tanzime pinhaye PORTe SPI1 : NSS
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;

saeidhp
10-07-2012, 16:16
متن قسمت اول : Use_stdperiph_driver
قسمت دوم : Stm32f10x_md
و بقیه : Gpio_ و usart_ و spi_

قسمت اول عبارت موردنظر رو تعریف میکنه که توسط اون توابع استاندارد cmsis قابل استفاده میشه .. تا اینو ننویسیم هیچ دستوری کار نمیکنه .
قسمت دوم خانواده میکروی ما رو برای cmsis تعریف میکنه .. در اینجا md به معنای medium density یعنی خانواده ظرفیت متوسط سری f10x هست .

ضمنا در این پروژه از لایببری قبلی cmsis و روش قبلی فراخوانی استفاده شده . در این روش باید با درایوری که می خواهید کار کنید مثل gpio و spi و usart و ... عبارت مورد نظر رو هم همراه یک _ قبلش در همین پنجره بنویسید تا بطور خودکار لایببریش فراخوانی بشه .
دو مورد اول یعنی use_stdperiph_driver و stm32f10x_md همیشه باید نوشته بشه .. و تمام این define ها با یک , (کاما) باید از هم جدا بشه .

ارور مربوط به اینه که لایببری spi فراخوانی نشده . شاید عبارت spi_ رو صحیح ننوشتید ..

ممنون از شما بابت توضیحات اطلاعات مفیدی بود
آیا آموزشی مثلا به صورت pdf وجود داره که این مواردو به طور کامل توضیح بده

sigma-mx
10-07-2012, 22:29
حالا اگه بخواییم به جای عدد 170 یه متنو از طریق SPI بفرستیم مثلا R0D4 باید هر کارکتر به صورت جداگانه فرستاده بشه ؟
بله ، همیشه به همین شکله .. یک رشته در واقع آرایه ای از کارکتر هاست .. شما میتونی به راحتی یه تابع بنویسی که این رشته رو با یه حلقه ارسال کنه .. ارسال رشته (متن) در ارتباط uart - i2c -spi - usb - ... به همین شکله .


من پایه های آی سی رو به صورت دلخواه به چندتا از پایه های میکرو وصل کردم فقط شماره pin رو در دستور زیر برای MISO , MOSI , CS , CSK عوض کنم درسته ؟
خیر ، به این شکل نیست . سخت افزار SPI فقط به پایه های خاص خودش وصله و نمیشه اونو به هر پایه دلخواه نسبت داد . پس ما فقط برای راه اندازی SPI فقط باید همین پین ها رو مطابق همین موارد بالا ( البته اینو کامل شما ننوشتید ) کانفیگ کنیم .


آیا آموزشی مثلا به صورت pdf وجود داره که این مواردو به طور کامل توضیح بده
فکر نمی کنم ، بخصوص برای آرمST همین تیم ایران میکرو استارت زد و نتایج کار رو تو همین فروم ببینید .. اگه هر سوالی دارید مطرح کنید ، حتما سوالتون بی پاسخ نمیمونه ...

sadmonew
18-07-2012, 13:48
سلام دوستان:hi:
اين يه مثال در مورد نحوه راه اندازي وقفه و كار با اون هستش.

saeidhp
23-07-2012, 18:15
با سلام
من یه IC دارم که روی برد stm32 با پین هدر سوار کردم و میخوام از طریق spi باهاش ارتباط برقرار کنم
پایه های spi این IC رو مطابق MMC وصل کردم یعنی
CS - PA4
SCK = PA5
Miso = PA6
Mosi=PA7
این IC با تغذیه 5 ولت کار میکنه که با تغییرات در برد 5 ولت رو هم از طرف دیگه برد برای IC کشیدم

حالا میخوام یه رشته براش بفرستم و اطلاعات دریافتی از اونو بخونم مثلا روی LCD 16*2 یا 4.3 اینچ

میشه از همین نمونه برنامه ای که برای spi این برد نوشتید استفاده کرد؟

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

sadmonew
23-07-2012, 20:13
با سلام
من یه ic دارم که روی برد stm32 با پین هدر سوار کردم و میخوام از طریق spi باهاش ارتباط برقرار کنم
پایه های spi این ic رو مطابق mmc وصل کردم یعنی
cs - pa4
sck = pa5
miso = pa6
mosi=pa7
این ic با تغذیه 5 ولت کار میکنه که با تغییرات در برد 5 ولت رو هم از طرف دیگه برد برای ic کشیدم

حالا میخوام یه رشته براش بفرستم و اطلاعات دریافتی از اونو بخونم مثلا روی lcd 16*2 یا 4.3 اینچ

میشه از همین نمونه برنامه ای که برای spi این برد نوشتید استفاده کرد؟

ممنون میشم راهنمایی بفرمایید
سلام مهندس
لطفا اطلاعاتي هم، از آيسي كه ميخوايد به spi وصل كنيد، بديد.

saeidhp
23-07-2012, 22:31
سلام مهندس
لطفا اطلاعاتي هم، از آيسي كه ميخوايد به spi وصل كنيد، بديد.

سلام

چه اطلاعاتی نیاز هست ؟

کار اصلی این آیسی اینه که از طریق واحد ADC مقدار مصرف مصرف کننده رو اندازه گیری میکنه و از طریق spi با میکرو ارتباط بر قرر میکنه

یکی از دوستان میگفت چون میکرو با 3.3 ولت کار میکنه و آی سی با 5 ولت یکم کار مشکلتر میشه

اصلا فرقی داره یا نه ؟

saeyd
26-07-2012, 07:00
با سلام خدمت دوستان
من امشب از اول این تاپیک تا اخر را آمدم حدودا 6 ساعت طول کشید .
واقعا خسته نباشید و دستتون درد نکنه .
یه سوالی این اواخر برام پیش امد چرا از FreeRTOS استفاده میکنید RTX مشکلی داره ؟
با تشکر .

saeidhp
27-07-2012, 08:09
سلام

من هم از اول تا آخر این تاپیک رو خوندم البته توی 2 مرحله واقعا کمر شکنه !!!

دست آقا سعید و آقا صادق عزیز درد نکنه که واقعا صبورانه توضیح دادند

نمیدونم چرا دیگه ادامه نمیدید من بردم راه بیافته سوالات زیادی دارم ها !!!

من الان میخوام flash loader میکرو رو پروگرام کنم این خطا رو میده


You can see links before reply

در ضمن من به جای دیپ سویچ از پین هدر استفاده کردم لطفا بگید چطور boot0 رو فعال یا غیر فعال کنم شاید اشتباه انجام میدم

راستی وقتی تغذیه رو از طریق پورت jtag یعنی 3.3V وصل میکنم چراغ تغذیه روشن میشه ولی با usb روشن نمیشه! (با پروگرمر j-link تست کردم میکرو پروگرم شد)

sigma-mx
27-07-2012, 13:41
سلام مهندس
ممنون ، انجام وظیفه هست ..

این پیغام میگه که بوت لودر سریال لود نشده . برای لود شدنش 2 کار باید کرد . اول طبق عکس زیر باید برای لود system memory که در واقع همون بوت لودر هست پایه BOOT0 یک بشه و در همین حالت یک ریست کنید ..
حالا که بوت لودر فراخوانی شده حالا باید میکرو رو به حالت قبل ببریم .. برای این کار فقط همین BOOT0 رو دوباره 0 میکنیم تا از حافظه پیش فرض User Flash Memory بتونه بخونه .... در ارتباط سخت افزاری هم خط RX وTX و GND کفایت میکنه ....


You can see links before reply


راستی وقتی تغذیه رو از طریق پورت jtag یعنی 3.3V وصل میکنم چراغ تغذیه روشن میشه ولی با usb روشن نمیشه! (با پروگرمر j-link تست کردم میکرو پروگرم شد) منظورت اینه که برد با usb تنها کار نمیکنه ! یه جامپر برای انتخاب تغذیه ورودی ( آداپتور یا usb ) باید باشه ...

Doloop
27-07-2012, 14:45
راستی وقتی تغذیه رو از طریق پورت jtag یعنی 3.3V وصل میکنم چراغ تغذیه روشن میشه ولی با usb روشن نمیشه! (با پروگرمر j-link تست کردم میکرو پروگرم شد)


منظورت اینه که برد با usb تنها کار نمیکنه ! یه جامپر برای انتخاب تغذیه ورودی ( آداپتور یا usb ) باید باشه ...

آقا سعید دقیقا درسته روی بورد یه جامپر هست که تغذیه USB رو فعال میکنه :wink:

saeidhp
27-07-2012, 15:27
منظورت اینه که برد با usb تنها کار نمیکنه ! یه جامپر برای انتخاب تغذیه ورودی ( آداپتور یا usb ) باید باشه ...

ممنون مهندس این مشکل حل شد


در ارتباط سخت افزاری هم خط RX وTX و GND کفایت میکنه ....

من به 2 تا پورت کام مادگی فقط همین 3 تا سیم رو وصل کردم طبق pcb که یه پورت رو به برد و پورت دیگه رو به مادربرد کامپیوتر وصل کردم
لطفا در مورد اتصال پین هدرهایی که به جای دیپ سویچ گذاشتم راهنمایی کنید
وقتی که برد رو هم کاملا از پورت کام جدا میکنم بازم همون پیغام میاد یعنی اصلا شناسایی نمیشه


You can see links before reply

Doloop
27-07-2012, 16:31
مهندس saeidhp دیپ سوئیچ میزاشتی راحت تر نبودی ؟!!!
الان ارتباط بین پین هدر پائین و بالا رو چطوری برقرار میکنی؟ ii998)

saeidhp
27-07-2012, 17:18
بله ولی خونه نداشتم و رفت و برگشتم برای خرید حدود 3 ساعت طول میکشه برای همین موقتا اینو گذاشتم

باید پین بالا و پایین سمت راستو به هم وصل کنم دیگه ؟

یه سوال دیگه
وقتی کلید ریست رو میزنید led تغذیه خاموش و روشن میشه یا نه ؟

Doloop
27-07-2012, 17:41
led تغذیه ثابت روشنه و با زدن کلید ریست تغیری نمیکنه...:0013:
ممکنه کلید ریست شما وقتی زده میشه بین مثبت تغذیه و زمین اتصال ایجاد میکنه که باعث خاموش شدن LED تغذیه میشه :wink:

sigma-mx
27-07-2012, 18:36
مهندس حواست باشه .. کلید ریست به میکرو وصله واصلا ربطی به مدار تغذیه نداره ... چک کن ببین اتصال نداشته باشه...


من به 2 تا پورت کام مادگی فقط همین 3 تا سیم رو وصل کردم طبق pcb که یه پورت رو به برد و پورت دیگه رو به مادربرد کامپیوتر وصل کردم
لطفا در مورد اتصال پین هدرهایی که به جای دیپ سویچ گذاشتم راهنمایی کنید
وقتی که برد رو هم کاملا از پورت کام جدا میکنم بازم همون پیغام میاد یعنی اصلا شناسایی نمیشهشما اول باید از صحت اتصال بین برد و کامپیوتر اطمینان حاصل کنی ... مثلا پورت رو در بیار و همون سیم آبی و سفید رو با یه تکه فلز اتصال کوتاه کن . این تست LoopBack هست که هر چی میفرستی باید برگشت بخوره ... اگه این کار کرد .. حالا یه سوال شما وقتی چیزی از کامپیوتر میفرستی دو تا ledی زیر max چشمک میزنه .. اگه زد یعنی اینم درسته ... چک کن نتیجشو بگو ...

saeidhp
27-07-2012, 22:30
مهندس حواست باشه .. کلید ریست به میکرو وصله واصلا ربطی به مدار تغذیه نداره ... چک کن ببین اتصال نداشته باشه...
نه کلیدو میزنم چراغ هیچ تغییری نمیکنه من اشتباه فکر کردم


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

مهندس شرمنده یکم بیشتر توضیح میدید چطور تست کنم بعد از اینکه tx , rx رو اتصال کوتاه کردم چیکار کنم؟

چطور با کامپیوتر بفرستم

الان led زیر max کلا خاموشه

sigma-mx
27-07-2012, 23:50
فکر کنم در حالت عادی باید هر دو led زیر max روشن باشه .. آی سی max رو درست زدی ؟ یه چک بگن ...

منظورم این بود که ببینی اصلا ارتباط سریال تا قبل از برد برقراره یا نه ... همون مادگی سریال که به بر وصل کردی رو در بیار ... سیم rx , tx رو اتصال کوتاه کن .. حالا از کامپیوتر مثلا با هایپر ترمینال اگه بنویسی همون کارکتر ها برگشت میخورند . مثلا مینویسی A به صورت AA مینویسه .. همون تکرار میشه چون کارکتر از TX میره و از RX دوباره میاد داخل ...

kamikazi
28-07-2012, 15:58
مهندس این مراحلی که میگمو چک کنید ردیف میشه
1- از نحوه درست اتصال TX و RX مطمعن باشید
2- سالم بودن MAX232
3- جامپری که برای بوت صفر ساختید رو به 3.3 ولت وصل کنید
4- مدار رو ریست کنید
5- برنامه فلش لودر رو باز کنید گزینه NEXT رو بزنید باید در این مرحله حافظه فلش میکروتونو نشون بده
6- تو مرحله اخر بعد از بروز کردن فایل باینریتون گزینه erise necessary page رو انتخاب کنید بعدشم گزینه next رو بزنید

فکر کنم نحوه اتصال TX و RX مشکل داره مهندس منم همین مشکل رو داشتم

sigma-mx
28-07-2012, 18:40
ممنون از راهنمایی ولی ایشون همون تو صفحه اول مشکل داره ... اینم بخاطر اتصال فیزیکی هست .

شایدم اصلا Rx و Tx رو برعکس وصل کرده ... بهرحال امیدوارم مشکلش زود حل بشه ...

saeidhp
28-07-2012, 19:59
من فکر میکنم max3232 مشکل پیدا کرده اونو عوض کردم دوباره اگه مشکلی پیش اومد میپرسم

حالا برای پروگرم کردن از طریق swd باید از طریق کدوم پایه ها عمل کنم ؟

sigma-mx
29-07-2012, 00:16
مهندس swd چرا ؟ با پورت JTAG پروگرام کن دیگه .. jlink داری ؟

saeidhp
29-07-2012, 05:28
نه مهندس j-link خرابه با برد دیسکاوری میخام از طریق swd پروگرم کنم

saeidhp
29-07-2012, 18:46
ممنون مهندس الان خودم با swd راه اندازیش کردم

saeidhp
29-07-2012, 20:36
دوستان لطفا کد هگز که led رو خاموش روشن کنه بدید
من پروژه blink میزنم به طور کامل پروگرم میشه ولی led هام خاموش روشن نمیشه !!!

Doloop
29-07-2012, 21:16
فایل هگز چشمک زن :0013:
راستی میکروت چیه ؟
stm32f103ret6
stm32f103rbt6
دوتاشم برات آپلود میکنم

saeidhp
29-07-2012, 23:26
ممنون مهندس ولی اینم جواب نمیده
من به جای کریستال 8 مگ 12 مگابایت گذاشتم
میتونه از این باشه ؟

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

sadmonew
30-07-2012, 00:45
ممنون مهندس ولی اینم جواب نمیده
من به جای کریستال 8 مگ 12 مگابایت گذاشتم
میتونه از این باشه ؟

به طور کامل پروگرم میشه و تایید هم میکنه
سلام مهندس
مشكل دقيقا همينجاست.
حالا چرا با جابجا وصل كردن اين كريستال اين مشكل پيش مياد؟
خوب ميدونيم كه براي تنظيم فركانس هسته ميكرو بايد از سري دستورات كه اسمشون RCC هستش بايد استفاده كنيم يكي از اين دستورات اينه:


RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
تو اين دستور يه پارامتر مهم وجود داره كه در واقع يه ضريب هستش.
اين ضريب در مقدار كريستالي كه به ميكرو وصل كرديم ضرب ميشه و فركانسي كه توليد ميكنه همون فركانس هستس.
مثلا اگه كريستال 8 مگاهرتز به ميكرو وصل كنيم و ضريب رو RCC_PLLMul_9) 9) انتخاب كنيم.
فركانس كه واحد PLL توليد ميكنه ميشه 72مگاهرتز(9*8).
حالا مهندس خودت حساب كن اگه كريستال 12 مگاهرتز بذاري، چي ميشه؟
خوب يه نكته مهمتر اينه كه چون كلاك بخش هاي ديگه ميكرو مثل ADC،USART، كلاك پورتها، USB ،تايمر،I2C وSPI بخش هاي ديگه ميكرو همه از اين تقسيم شده ابن كلاك استفاده ميكنند.
مثلا باس مربوط به پورتها(APB2) حداكثر ميتونه فركانس 48/72 مگاهرتز رو داشته باشه.
خوب اگه فركانس هسته ميكرو و باس داده درست تنظيم نشه يعني ميكرو نميتونه به صورت پايدار(Stable) كار كنه.

saeidhp
30-07-2012, 13:37
مهندس خیلی ممنون به خاطر توضیحات

این برد دیگه داره منو کلافه میکنه

قبل از اینکه بردو به روشی که شما گفتید پروگرم کنم وصل کردم دیدم یکی از led ها داره چشمک میزنه (یعنی دقیقا همون برنامه قبلی که مهندس do...loop دادن که بعد از پروگرم چشمک نمیزد)

الان با توجه به تغییراتی که شما گفتید تنظیم کردم هیچ کاری انجام نمیشه!!!
تنظیمات توی عکس درسته ؟
اگه بخوام تغییرات rcc رو به صورت دستی انجام بدم از کجا باید این کارو بکنم ؟
You can see links before reply

saeidhp
30-07-2012, 13:40
راستی من ترانزیستور 8085 پیدا نکردم میتونه مشکل از این باشه ؟

sadmonew
30-07-2012, 14:04
سلام مهندس
خودم از فايل STM32_Init.c استفاده نميكنم. البته ميدونم با اين روش دسترسي سريعتري به كل رجيسترهاي ميكرو داريم. خودم براي تنظيم كلاك هسته و باس قسمتهاي مختلف ميكرو از توابع RCC استفاده ميكنم.
مهندس طبق عكس تنظيمش كن.

saeidhp
30-07-2012, 18:51
سلام

مهندس بازم نشد البته اگه یادتون باشه کریستال من 12 مگاهرتز بود و تنظیمات pllscr*6 که 72/12=6 هست
و hse=12000000 گذاشتم که بازم نشد البته طبق تنظیمات شما هم نشدcry::

sadmonew
30-07-2012, 19:09
سلام مهندس
بله من فكر كردم شايد كريستال رو به 8 مگاهرتز تغيير دادين و اون عكس رو براساس اون گذاشتم.
راستي مهندس از كريستالي كه روي برد لحيم كردين، مطمئنيد سالمه؟
فايل هگر رو واستون قرار ميدم شما لطفا روي بردتون تست كنيد و نتيجه رو بگيد و پروژه اي كه خودتون درست كردين رو بذاريد ما هم رو برد خودمون تست كنيم ببينيم مشكل چيه؟
البته پيشنهاد ميكنم كريستال رو به 8 مگاهرتز تغيير بدين، چون تو ديتاشيت نوشته كه اگه بخوايم ارتباط درستي از طريق usart داسته باشيم بايد كريستال 8 يا 25 مگاهرتز باشه.

saeidhp
30-07-2012, 20:04
سلام مهندس
آقا خیلی کارت درسته
کریستالو عوض کردم بالاخره راه افتاد البته همون 12 مگاهرتز :018:
ولی بازهم با برنامه شما کار کرد
من برنامه رو پیوست کردم لطفا ببینید مشکل از کجاست؟ گرچه این برنامه رو هم خودم ننوشتم و از این به بعد سوالات من شروع میشه :0013:

saeidhp
30-07-2012, 20:04
سلام مهندس
آقا خیلی کارت درسته
کریستالو عوض کردم بالاخره راه افتاد البته همون 12 مگاهرتز :018:
ولی بازهم با برنامه شما کار کرد
من برنامه رو پیوست کردم لطفا ببینید مشکل از کجاست؟ گرچه این برنامه رو هم خودم ننوشتم و از این به بعد سوالات من شروع میشه :0013:

sadmonew
30-07-2012, 20:28
مهندس مشكل اينجاست كه شما ميخوايد پينهاي پورت A رو به صورت toggle دربياري. درصورتي كه اين پورت اصلا به صورت خروجي تعريف نشده.
لطفا عكس رو ببينيد.

saeyd
31-07-2012, 00:16
با سلام خدمت دوستان
دوستان چند تاپیک قبل راجع به FREE ROTS صحبت می کردید .
از انجا که با KEIL برنامه ها را مینویسید پس چرا با RTX برنامه ها را نمی نویسید ؟ مگه ایرادی داره ؟

و اگر با ADC آشنایی دارید یه توضیحاتی بدهید . مثلا تفاوت بین injected و regular ؟ :mrgreen:
من میخوام تاچ ال سی دی را راه بندازم چهار پایه اول پورت A را استفاده کردم ولی الان نمی دونم adc را چطور سویچ کنم .

از توضیحاتی که دوستمون در اول تاپیک دادن و بسیار شیوا و قابل فهم می باشد تشکر میکنم و امید دارم (داریم ) ادامه دهید . :hi:
با تشکر از دوستانی که ماها را هنوز تحریم نکردند .:125:

sadmonew
31-07-2012, 11:58
من میخوام تاچ ال سی دی را راه بندازم چهار پایه اول پورت a را استفاده کردم ولی الان نمی دونم adc را چطور سویچ کنم .
سلام مهندس
براي راه اندازي تاچ ميتونيد از ads7843e استفاده كنيد كه كارش دقيق تره و فروشگاه سايت(كوير الكترونيك) هم موجود داره. خودم باهاش كار كردم. خيلي عالي جواب ميده.

sadmonew
31-07-2012, 12:06
با سلام خدمت دوستان
دوستان چند تاپیک قبل راجع به FREE ROTS صحبت می کردید .
از انجا که با KEIL برنامه ها را مینویسید پس چرا با RTX برنامه ها را نمی نویسید ؟ مگه ایرادی داره ؟
تا اونجايي كه من ميدونم و البته كمي هم با FREE-RTOS كار كردم، اين كرنل براي اغلب ميكرو ها مثل AVR ، LPC ، STM32 ، AT91 و خيلي ميكروهاي ديگه پورت شده. ميتونيد به اين لينك بريد و با اين ميكروها رو خودتون ببينيد:
FreeRTOS - the small footprint professional grade free RTOS ports and demo applications list sorted by microcontroller vendor and microcontroller family (You can see links before reply)
در صورتي كه RTX به اين صورت نيست و محدوديت داره، البته ميتونيد FREE-RTOS رو تو محيط كيل هم به كار ببريد.
اما نكته اي كه هست اينه كه كرنل قدرتمندتر از اين هم هست به اسم uC/OS كه اوپن سورسه و كتاب بسيار عالي هم داره كه ترجمه هم شده و بسيار به شخص برنامه نويس كمك ميكنه. خودم كتابشو داره.
اينم لينك uC/OS:
You can see links before reply

saeidhp
01-08-2012, 20:25
سلام
دوستان من پروژه lcd 2*16 پروگرم کردم وپایه ها و طبق کد زیر وصل کردم اما توی lcd فقط یک ردیف پیکسل رو به صورت مربع پر میکنه


// Define LCD-16x2 PinIO Interface Mask Bit
#define LCD_EN_PIN GPIO_Pin_2
#define LCD_EN_PORT GPIOC
#define RCC_APB2Periph_GPIO_EN RCC_APB2Periph_GPIOC

#define LCD_RW_PIN GPIO_Pin_1
#define LCD_RW_PORT GPIOC
#define RCC_APB2Periph_GPIO_RW RCC_APB2Periph_GPIOC

#define LCD_RS_PIN GPIO_Pin_0
#define LCD_RS_PORT GPIOC
#define RCC_APB2Periph_GPIO_RS RCC_APB2Periph_GPIOC

#define LCD_D4_PIN GPIO_Pin_3
#define LCD_D5_PIN GPIO_Pin_4
#define LCD_D6_PIN GPIO_Pin_5
#define LCD_D7_PIN GPIO_Pin_6
#define LCD_DATA_PORT GPIOC
#define RCC_APB2Periph_GPIO_DATA RCC_APB2Periph_GPIOC


کسی تست کرده این پروژه رو ؟

sadmonew
01-08-2012, 21:51
سلام مهندس
فركانس هسته تنظيم نشده و كلاك پورتها هم ست نشده.

saeidhp
01-08-2012, 23:29
سلام

من فکر کردم که پروژه آمادست

مهندس من توی پست 590 هم از شما درباره تنظیمات rcc پرسیدم که از کجا به صورت دستی تنظیم میشه

توی مثالهایی که من دیدم با فایل STM32_Init تنظیم می شد حالا اینجا گیر کردم

نتیجه اخلاقی: تا به صورت دستی مسلط نشم سراغ این فایل نمیرم

اگه یه مثال بزنید چطور تنظیم کنم ممنون میشم

الان برای ست کردن پورتها توی پستهای قبل گفتید به این صورت باید ست بشه اما توی مثال عملی که اینها رو کجا فراخوانی کنم ندیدم
اول متغیرو تعریف میکنیم

GPIO_InitTypeDef GPIO_Init_Structure;
بعد


GPIO_Init_Structure.GPIO_Pin = GPIO_Pin_1;
GPIO_Init_Structure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init_Structure.GPIO_Mode = GPIO_Mode_Out_OD;



و در انتها



GPIO_Init(GPIOC, &GPIO_Init_Structure);


خوب من اینجا PIN C.1 رو کانفیگ کردم برای تمامی پینها باید این کارو بکنم ؟

لطفا یه مثال عملی بزارید

ممنون

sadmonew
01-08-2012, 23:59
سلام مهندس
راستي من يادم رفت بگم كه اين كتابخونه به خوبي جواب ميده و خودم هم تستش كردم.
مهندس اين تابع براي تنظيم دستي فركانس هسته و كلاك پورتها به كار ميره:


void RCC_INIT(void)
{
/* RCC system reset(for debug purpose) */
RCC_DeInit();

/* Enable HSE */
RCC_HSEConfig(RCC_HSE_ON);

/* Wait till HSE is ready */
HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus == SUCCESS)
{
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enabl e);

/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);

/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);

/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);

/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);

/* PLLCLK = 8MHz * 9 = 72 MHz ---- ferekanse 8MHz hamoon crystal vasl shode be mikro hastesh.*/
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

/* Enable PLL */
RCC_PLLCmd(ENABLE);

/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}

/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08)
{
}
}
// faal kardane clock portha
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC |RCC_APB2Periph_GPIOD, ENABLE);
}

saeidhp
02-08-2012, 00:29
سلام مهندس

من کدهای بالا رو توی یه فایل به صورت هدر ذخیره کردم و توی برنامه اصلی include کردم که خطا میده

از توی خود کیل add کردم (بدون اینکلود) هیچ تاثیری نداشت

توی این آموزشها چندیدن روش مختلف توضیح داده شده که واقعا گیج شدم

لطفا یه روش استاندارد با cmsis 3.5 بگید برای ساخت یه پروژه و اضافه کردن فایلهای مورد نیاز که فقط به همین روش پیش بریم

من آموزشهایی رو که توی این 600 پست شده رو توی یه فایل ورد کپی کردم اگه میخوایین بهتون بدم که تغییرات لازم رو بدید و به صورت pdf بزارید همه استفاده کنن

ممنون به خاطر راهنمایی

sadmonew
02-08-2012, 00:54
سلام
مهندس بايد قبلش اين متغير رو واسش تعريف كنيد:


static __IO ErrorStatus HSEStartUpStatus = SUCCESS;


در مورد ساخت پروژه هم دوستمون مهندس حسين گل يه تاپيك رو به اين موضوع اختصاص دادن:
آموزش ساخت پروژه با توابع cmsis - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

مهندس فكر خوبي ميتونيد بذاريد تا با كمك همديگه ويرايش كنيم. نظرت ساير دوستان هم مهمه.

saeidhp
02-08-2012, 05:37
سلام
مهندس هنوز خطاهای زیر رو میده


You can see links before reply

saeidhp
02-08-2012, 06:06
سلام
من مطالب آموزشی که در این تاپیک مطرح شد به دلیل حجم زیاد پستها (بیش از 600 پست تا اینجا ) توی یه فایل word جمع آوری کردم
لطفا نویسندگان این آموزش یعنی آقا سعید و آقا صادق گل این مطالب رو ویرایش و کامل کنند و به صورت یه فایل pdf بزارند تا همه دوستان استفاده کنند

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

Doloop
02-08-2012, 06:34
سلام مهندس
برای رفع این خطا
برو به هدر stm32f10x_conf.h
comment هدر stm32f10x_rcc.h رو بردار

الان برای شما اینطوریه :
stm32f10x_rcc.h//
توی این قسمت از هر واحدی که استفاده میکنی باید commentش رو برداری :wink:

saeidhp
02-08-2012, 12:59
سلام مهندس قبلا این فایلو چک کرده بودم و قسمت RCC , GPIO از کامنت خارج شده بود
ولی دوباره که چک کردم قسمت flash کامنت بود که با برداشتن کامنتش خطاها برطرف شد

این قسمت برای دسترسی به حافظه فلش هست ؟

الان پروژه بدون خطا کامپایل میشه اما باز هم یک ردیف از lcd به صورت مربعی پر شده

پایه های میکرو رو با مولتی متر گرفتم به درستی به lcd اتصال دارن پس فقط مشکل از برنامه میتونه باشه

کسی برنامه رو عملی تست کرده ؟

sadmonew
02-08-2012, 14:09
الان پروژه بدون خطا کامپایل میشه اما باز هم یک ردیف از lcd به صورت مربعی پر شده پایه های میکرو رو با مولتی متر گرفتم به درستی به lcd اتصال دارن پس فقط مشکل از برنامه میتونه باشه کسی برنامه رو عملی تست کرده ؟
سلام مهندس
همونطور كه قبلا هم گفتم خودم تستش كردم و عالي جواب ميده.

مهندس تابع mainشما رو كه ديدم تعجب كردم، شما اينطوري نوشتي:


int main(void)
{
lcd_init();
{
set_cursor(1,1);
lcd_cursor_on();
lcd_cursor_blink();
lcd_putsf("#STM32F103RBT6#");
set_cursor(2,1);
lcd_putsf(" ****** ");
}
}



مهندس قسمتي رو كه با رنگ قرمز نشون براي چيه؟

saeidhp
02-08-2012, 14:18
مهندس من هیچی ننوشتم

خودش به همین صورت بود

sadmonew
02-08-2012, 14:25
مهندس اينم برنامه شما، اصلاح شده و كامل جواب ميده.
فقط پايه هاي lcd رو براي برد خودم تغيير دادم.

saeidhp
02-08-2012, 15:53
مهندس من فقط اینا رو عوض کردم ولی بازم نشد که نشد اما یه فایل آموزشی خوب بود که فهمیدم که چیکار کردید

توی برنامه شما 3 تا led کامل روشن میشن و ثابت میمونن (خاموش نمیشه)

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

(من کریستال بردمو به 8مگ تغییر دادم )

ممنون




// Define LCD-16x2 PinIO Interface Mask Bit
#define LCD_EN_PIN GPIO_Pin_2
#define LCD_EN_PORT GPIOC


#define RCC_APB2Periph_GPIO_EN RCC_APB2Periph_GPIOC

#define LCD_RW_PIN GPIO_Pin_1
#define LCD_RW_PORT GPIOC
#define RCC_APB2Periph_GPIO_RW RCC_APB2Periph_GPIOC

#define LCD_RS_PIN GPIO_Pin_0
#define LCD_RS_PORT GPIOC
#define RCC_APB2Periph_GPIO_RS RCC_APB2Periph_GPIOC

#define LCD_D4_PIN GPIO_Pin_3
#define LCD_D5_PIN GPIO_Pin_4
#define LCD_D6_PIN GPIO_Pin_5
#define LCD_D7_PIN GPIO_Pin_6
#define LCD_DATA_PORT GPIOC
#define RCC_APB2Periph_GPIO_DATA RCC_APB2Periph_GPIOC

sadmonew
02-08-2012, 16:29
خوب اگه چشمك نميزنن يعني هنوز ايراد داره و احتمالا تو تابع lcd_init گير ميكنه.
مهندس تغذيه السيدي رو از كجا ميگيري؟
با اينكه تستش كردم اما به هر صورت، يه بار اون دستوراتي كه مربوط به السيدي هستن رو كامنت كنيد، ببينيد ال.اي.دي ها چشمك ميزنن؟

saeidhp
02-08-2012, 16:45
بله الان که کامنت کردم led 1,2 خاموش روشن میشه
تغذیه رو 5 ولت جدا بهش میدم فرقی نمیکنه

sadmonew
02-08-2012, 18:24
مهندس گراند السيدي رو با گراند بردتون مشترك كردين؟

saeidhp
02-08-2012, 18:45
بله مهندس مشترک بود الان جدا کردم ولی بازم نشد

الان تغذیه lcd کلا جدا شده وقتی تغذیه lcd رو کلا قطع میکنم ledها چشمک میزنن وقتی lcd رو وصل میکنم و بردو ریست میکنم ledها روشن میمونن

sadmonew
02-08-2012, 22:23
سلام
مهندس بايد مشترك باشن. منظورم اين بود يه موقع جدا نباشن.
مهندس عجيبه. خودم روي برد تست كردم با تغييراتي كه شما دادين. خيلي عالي جواب ميده. از rbt6 استفاده ميكنيد؟
يه بار چك كنيد ببينيد پايه اي رو اشتباهي وصل نكردين؟(آخه تعداد پينهاش هم زياد نيست)

saeidhp
03-08-2012, 14:26
ممنون مهندس ظاهرا پین هدر مادگی که گذاشته بودم مشکل داشت

الان داره کار میکنه

خیلی ممنون

alishekarriz
09-08-2012, 23:17
سلام :hi:

دوستان بعد چند ماه غيبت از ديروز تا امروز همه اين 62 صفحه رو يك بار خواندم و كلي مطلب ها توي ذهنم نشست

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

مطالب با دقت خوبي گفته شده و مجهولات زيادي حل شده
يك پيشنهاد ميخواستم بدم
كه البته دوستان قبلا به نحوي گفتند
خلاصه سازي اين فروم و اضافه كردن آموزشهاي لازم در مورد C و همچنين مود هاي سخت افزاري .. ميتونه اين مطالب رو به يك منبع يا كتاب خيلي خوب براي استارت دربياره

به نظرم خيلي از ما برقي ها با نحوه شناسايي و كار با Struct و هدر فايلها آشنايي لازم رو نداريم .

همچنين براي كانفيگ سخت افزارها هم نقشه ها و مدلها براي ساخت و خريد از بازار ... خلاصه بشه خيلي خوبه

انشا ا.. سعي ميكنم بيشتر حضور داشته باشم از اين به بعد :wink:

saeidhp
13-08-2012, 14:37
خلاصه سازي اين فروم و اضافه كردن آموزشهاي لازم در مورد c و همچنين مود هاي سخت افزاري .. ميتونه اين مطالب رو به يك منبع يا كتاب خيلي خوب براي استارت دربياره

به نظرم خيلي از ما برقي ها با نحوه شناسايي و كار با struct و هدر فايلها آشنايي لازم رو نداريم .

منم موافقم اگه یکی از اساتید زحمت آموزش این قسمتو بکشه کمک بسیار بزرگی کرده

sadmonew
13-08-2012, 23:36
منم موافقم اگه یکی از اساتید زحمت آموزش این قسمتو بکشه کمک بسیار بزرگی کرده
سلام
مهندس براي يادگيري زبان برنامه نويسي ++c/c كتابهاي زيادي هست كه ميتونيد از اونها استفاده كنيد.
خودم چنتاشو دارم و از خوندن اون كتابا با اين زبان آشنا شدم و البته فقط با خوندن كتاب هيچ وقت حرفه اي نميشم. كسب تجربس كه برنامه نويس رو حرفه اي ميكنه.
يه وقت فكر نكنيد كه من حرفه ايم، اصلا منظورم اين نيست. چون خودمم هر روز دارم يه چيز جديد ياد ميگيرم.
البته سايت و انجمن هم خيلي بهتون كمك ميكنن، اما اون چيزي كه خودتون ياد ميگيرد و تجربه ميكنيد يه مزه ديگه اي داره.

saeidhp
14-08-2012, 12:22
مهندس لطفا اسم کتابها و نویسندشو که فکر میکنید بهتر هستند رو بفرمایید

Doloop
15-08-2012, 18:45
سلام
آقا این برنامه السیدی کاراکتری چرا کار نمیکنه
فکر کنم از همینجا دانلود کردم ولی تست زدم جواب نداد

LCD 4bit (You can see links before reply)

saeidhp
15-08-2012, 19:09
سلام
چرا مهندس همین برنامه ای که آقا صادق گذاشتن رو دانلود کنید و پایه هاشو طبق پایه های lcd خودتون که برد وصل کردید تغییر بدید باید جواب بده

من الان دارم باهاش کار میکنم

Doloop
15-08-2012, 21:48
سلام
چرا مهندس همین برنامه ای که آقا صادق گذاشتن رو دانلود کنید و پایه هاشو طبق پایه های lcd خودتون که برد وصل کردید تغییر بدید باید جواب بده

من الان دارم باهاش کار میکنم

سلام میشه لینک بزاری یا اگه امکانش هست آپلود کن
این همه صفحه رو چطوری بگردم cry::
من دارم با اونی که دادا سعید گذاشته کلنجار میرم ولی چیزی نشون نمیده
اگه برنامه دیگه ایه بزار ببینم اون چطوره... :0013:

saeidhp
15-08-2012, 22:39
بفرمایید مهندس

Doloop
16-08-2012, 02:43
سلام
مشکل حل شد
من تا الان فکر میکردم پایه RW برای مد 4bit زمین میشه ولی الان به نتیجه ای غیر از این رسیدم ii998)
مشکلم هم همین بود که من زمین کرده بودم ولی وقتی به پین مورد نظر زدم درست شد ii998)
بعد مورد دیگه این که چرا صفحه با این دستور پاک نمیشه؟



lcd_clear();


وقتی این دستور رو تو main استفاده میکنم متن نمایش داده شده به هم میریزه :unh:
برای شما هم همینطوره ؟
مشکل از هدر هست ؟

Doloop
16-08-2012, 03:05
متوجه نشدم جابجایی متن مشکلش چی بود ولی تاخیر رو زیاد کردم حل شد :o

saeidhp
16-08-2012, 11:57
کد:
Lcd_clear();
وقتی این دستور رو تو main استفاده میکنم متن نمایش داده شده به هم میریزه
برای شما هم همینطوره ؟
مشکل از هدر هست ؟

مهندس این کتابخانه فقط دستوراتی رو انجام میده که توی کتابخونش تعریف شده
دستورات رو هم میتونید توی فایل هدر و .c ببینید

sigma-mx
16-08-2012, 12:54
متوجه نشدم جابجایی متن مشکلش چی بود ولی تاخیر رو زیاد کردم حل شد :o
سلام حسین جان . با همین rbt6 کار کردی تو 72 مگ اینطوری شد؟!! من خودم تستش کردم ..
چون wait مورد استفاده در توابع توسط یه تابع شمارش معکوس کار میکنه . اگه کلاک از یه مقدار بیشتر بره چون این تابع سریعتر اجرا میشه پس تاخیرش کمتر میشه و تایمینگ بهم میخوره . من یادمه رو 72 مگ کار کرد .
من یادمه تو تابع delay این شمارش معکوس رو به حلقه for تغییر داده بودم و تعداد شمارش رو هم بالا برده بودم . شاید این یه نسخه دیگش بود ...

saeidhp
16-08-2012, 13:04
سلام آقا سعید عزیز

توی یکی از این پستها نوشتید که تمامی بخشها رو راه انداختید و به مرور میزارید

اگه به همراه توضیح باشه خیلی عالی میشه

ظاهرا برد شما یکم فرق میکنه کدوم پایه ها رو لازم دارید من بهتون بگم ؟

این آموزش هایی رو که شما و آقا صادق گل آماده کردید رو توی یه فایل جمع کردم و گذاشتم توی پست 608 که توضیحاتشو دادم فکر کنم شما ندیدید

saeidhp
05-09-2012, 20:16
سلام

دوستان کسی کتابخانه delay برای این میکرو داره ؟
فرکانسم رو 72 مگ هست اگه بخوام دستی توی یه حلقه for بزارم بری رسیدن به 1میکرو باید چندتا بشماره ؟
لطفا محاسبات رو هم بگید

ممنون

saeidhp
06-09-2012, 12:11
من میخوام یه تاخیر 1 میکرو ثانیه ای ایجاد کنم فرکانس میکرو هم روی 72 مگاهرتز تنظیم شده
حالا با استفاده از این حلقه یه تاخیر ایجاد میکنم



for (i=0; i<5; i++){}


حالا می خوام بدونم به جای 5 چه عددی بزارم که به 1میکروثانیه برسم

Doloop
06-09-2012, 13:07
مهندس اینطوری نمیتونی تاخیر دقیق ایجاد کنی...
چون تمام دستورات خودشون یه تاخیری ایجاد میکنن برای همین دقیق نمیشه با for درست کرد
باید از وقفه استفاده کنی که مهندس صادق تو یکی از این تایپیک ها توضیح داده بود
البته توی یکی از پروژه های دادا صادق هم هدر تاخیر وجود داشت میتونی از اون استفاده کنی :0013:

saeidhp
06-09-2012, 14:47
مهندس مشکل ایجاد تاخییر بر حسب میکرو ثانیه حل شد میتونید توی این تاپیک (You can see links before reply) ببینید

اما هنوز این سوال پابرجاست

توی کد بالا به ازای هر شماره که میشماره چقدر زمان میبره ؟ یا برای 1 میکرو ثانیه چندتا باید بشماره ؟

saeidhp
08-09-2012, 13:35
سلام
چطوری میشه با میکرو یک کلاک خاص مثلا 2 مگاهرتز ساخت که به صورت خروجی بدیم به وسیله مورد نظر که کریستال 2 مگاهرتز نیاز داره؟

فکر کنم با تایمر ها این کارو انجام میدن اگه دوستان اطلاعاتی دارن ممنون میشم راهنمایی کنند

alimoradifard
01-10-2012, 23:41
سلام کسی میدونه که میکرو های شرکت st رو چند بار می شه برنامه ریزی کرد؟
همچنین چند سال برنامه ریخته شده رو نگه می داره؟

Black-Black
22-10-2012, 08:49
دوست عزیز این سوال چیه میپرسید مشخصه دیگه چند بار برنامه ریزی میشه و چند سال نگه داره برای همه یکیه.

معمولا صد هزار بار قابل برنامه ریزیه و تا 10 سال هم اطلاعاتونگه میداره.

alamdar
22-10-2012, 17:13
سلام

دوستان نتایج کارهایی که اینجا انجام دادید و برنامه هایی که نوشتید آیا به صورت یک آموزش منظم جای دیگه نوشته شده؟

من 10 صفحه این تاپیک رو خوندم و تاپیک خوبی بود اما برای آموزش زیاد مناسب نیست

vpsserverx
29-10-2012, 16:08
دوستان سلام !

من خواستم میکور یاد بگیرم . برای این کار یک برد دیسکاوری خریدم از همینجا . ولی به خاطر اینکه میخوام برای ارشد بخونم و کارهای شخصیم هم خیلی شلوغ شده فعلا نمی تونم این کار را بکنم .

در ضمن گوشیم هم سوخته می خوام گوشی بخرم . رو این حساب نیاز به پول دارم .

برد دیسکاوری خودم را می خوام بفروشم .

خیلی وقت نیست خریدم و تقریبا هیچ استفاده ای هم ازش نکردم . فقط حدود یک ساعتی از اون برنامه موسش استفاده کردم .

هر کس خواست قیمت پیشنهادی خودش را بهم خبر بده

با تشکر

sadmonew
30-10-2012, 03:11
سلام

دوستان نتایج کارهایی که اینجا انجام دادید و برنامه هایی که نوشتید آیا به صورت یک آموزش منظم جای دیگه نوشته شده؟

من 10 صفحه این تاپیک رو خوندم و تاپیک خوبی بود اما برای آموزش زیاد مناسب نیست
سلام مهندس
بهترين آموزش، مثال هايي هستش كه واسه ميكرو نوشته شده.
البته سعي كنيد كامل بخونيد. ميدونم زياده .....

kamikazi
31-10-2012, 13:47
سلام به همه دوستان کسی میدونه چطور میشه با توابع fat یه رشته رو از روی اس دی کارت با اینترفیس sdio خوند و اونو ذخیرش کرد بعدش رو ال سی نمایشش داد من با تبدیل عکس به فایل هدر اونو میخوام رو اس دی ذخیره کنم مثلا یه هدری به اسم picture.h بعدش تابعی باشه که با فراخونیش بیاد با استفاده از سخت افزار sdio بیاد اون هدر رو تو اس دی کارت پیدا کنه بعدش تک تک درایه های اون هدر رو تو یه متغیر 32 بیتی بریزه و من با یه تابع بیام این پیکسلو رو ال سی دیم نمایش بدم ممنون میشم اگه کسی در این مورد میتونه کمکم کنه البته من اینترفیسم پورت sdio هستش برای پورت spi مثال زیاده ولی کار با این پورت sdio یکم مشکله
در واقع هدر من برای عکسا مثل زیره من باید تک تک درایه های این رشته رو با تابع
void SSD1963_SetPixel(int x, int y, unsigned long color)
نمایشش میدمش


picture.h
{
0x23df4a,
0x568df3,
.
.
.
.
.
.


}

jik
31-10-2012, 16:46
دوستان میشه کل برنامه های این تاپیک رو که با keil نوشته شده و جواب داده رو تو یه فایل RAR بزارید تا همه استفاده کنند

خیلی خیلی تاپیک طولانی شده و واقعا گیج کننده

mahdi8866
31-10-2012, 20:21
سلام جناب sigma-mx
تو پست 16 شما نوشتید:
GPIOB -> BSRR = 0x11110000

بیتهای 31 و 27 و 23 و 19 رو ریست می کنه .


فکر کنم بیتهای 28 و 24 و 20 و 16 رو ریست میکنه به نظرتون اشتباه میکنم؟

sigma-mx
01-11-2012, 01:38
سلام جناب sigma-mx
تو پست 16 شما نوشتید:
Gpiob -> bsrr = 0x11110000
بیتهای 31 و 27 و 23 و 19 رو ریست می کنه .


فکر کنم بیتهای 28 و 24 و 20 و 16 رو ریست میکنه به نظرتون اشتباه میکنم؟

سلام
درسته مهندس ، تصحیحش کردم . چون تو باینری صفر های سمت چپ نداشت ، اشتباه شد .

ممنون از پیگیریتون .

jik
04-11-2012, 19:19
دوستان عزیز sigma-mx و do_loop شما تقریبا همیشه تاپیک رو دنبال کردید
میشه لطف کنید همه برنامه های این تاپیک رو تو یه فایل زیپ بزارید اینجا

mahdi8866
07-12-2012, 00:29
سلام خواهشم میکنم جناب sigma-mx
میگم کاش این اموزشها که پراکنده هست رو تو قالب pdf به صورت منظم رو سایت بذارید

mahdi8866
19-12-2012, 20:57
سلام میشه اموزش قسمت تایمر و وقفه های تایمر رو بذارید

aliyaghoobi88
06-01-2013, 18:53
سلام

من برای ایجاد پروژه از همون template که یکی از دوستان داده بودند استفاده کردم و راحت تونستم با gpio و lcd کاراکتری کار کنم ولی حالا که میخوام از usart استفاده کنم ارور میده که error رو ضمیمه کردم

#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_usart.h"
#include "delay.h"
#include "lcd4bit.h"



int main(void)
{
//--------------------------------------------------------------------
USART_InitStructure.USART_BaudRate = 115200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No ;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_Cmd(USART1, ENABLE);
//---------------------------------------------------------------------------------

lcd_init();
lcd_putsf("xyz");


while (1)
{

}
}
توی قسمت define هم کد مربوطه رو قرار دادم :»

USE_STDPERIPH_DRIVER, STM32F10X_MD,_GPIO,_USART
این error رو میده :

..\Source\main.c(11): error: #20: identifier "USART_InitStructure" is undefined
..\Source\main.c: USART_InitStructure.USART_BaudRate = 115200; ممنون میشم من رو راهنمایی کنید /

sadmonew
06-01-2013, 19:15
سلام دوست عزیز
فراموش کردین متغیر USART_InitStructure تعریف کنید
پس برای تعریف به این صورت عمل کنید.


USART_InitTypeDef USART_InitStructure;

aliyaghoobi88
07-01-2013, 09:54
با تشکر از پاسختون ، و شرمنده از اینکه بازهم سوال جدیدی رو مطرح میکنم

میخوام از وقفه دریافت uart1 استفاده کنم
تنظیمات مربوط به وقفه رو به این شکل انجام دادم .

void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

#ifdef VECT_TAB_RAM
/* Set the Vector Table base location at 0x20000000 */
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else /* VECT_TAB_FLASH */
/* Set the Vector Table base location at 0x08000000 */
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif

//-------------------uart recive int config ---------------------------------
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}و IRQHandler رو هم فقط گفتم با وقفه پورت سریال وضعیت led عوض بشه.

void USART1_IRQHandler(void)
{
int data;
LED2=!LED2;
if(USART_GetITStatus(USART1, USART_IT_RXNE))
{
lcd_puts(data);
LED2=!LED2;
}

}

برنامه به خوبی کمپایل میشه اما هیچ نشونه ای از اینکه به زیر برنامه وقفه بره توی خروجی دیده نمیشه !!

sadmonew
07-01-2013, 16:31
سلام دوست عزیز
خواهش میکنم
به جای استفاده از EXTI0_IRQn باید از عبارت USART1_IRQn استفاده کنید تا وقفه عمومی یوزارت فعال بشه.

aliyaghoobi88
08-01-2013, 01:25
sadmonew مرسی که پاسخ دادید واقعا محبت دارید .
من توی زیر برنامه وقفه رشته رو دریافت میکنم تابه cr برسه بعدش همون رشته ای رو که دریافت کردم دوباره میفرستم روی پورت سریال و روی lcd نمایش میدم . نکته ای که وجود داره کارکترهای موجود در رشته روی پورت سریال به خوبی نمایش داده میشه ولی روی lcd هیچ چیزی نمایش داده نمیشه :(


void USART1_IRQHandler(void)
{


if( USART_GetITStatus(USART1, USART_IT_RXNE) )
{

cnt = 0;
t = USART1->DR;

if( t != 0x0a)
{
received_string[cnt] = t;
cnt++;
}
else
{
cnt = 0;
lcd_clear();
for (i=0;i<16;i++) // 16 Character Print
{
lcd_putchar(received_string[i]); // Print Byte to LCD
}
USART_puts(USART1, received_string);
}
}

}با تابع putsf هم تست کردم دیدم جواب نداد ،

sadmonew
08-01-2013, 13:14
سلام
اعدادی که رو پورت سریال میبینید چه اعدادی هستن؟ لطفا اینجا بذارین.
متغیر received_string به چه صورت تعریف کردین؟
حلقه فورو بردارین و اینجوری بنویسید:


lcd_putsf(received_string);

aliyaghoobi88
11-01-2013, 13:27
سلام
متغییر ها رو به این شکا تعریف کردم

char received_string[16];
char buffer_string[20];یک چیزی که برای من جالبه اینه که وقتی من lcd_putsf رو استفاده میکنم هیچ چیزی رو نشون نمیده ولی همین قدر که اون رو توی یک حلقه for بگذارم که حداقل 2 بار تکرار بشه روی lcd به خوبی نشون میده .


void USART1_IRQHandler(void)
{

if( USART_GetITStatus(USART1, USART_IT_RXNE) )
{

static uint8_t cnt = 0;
char t = USART1->DR;

if( t != 0x0a) {
received_string[cnt] = t;
cnt++;
}
else
{
sprintf(buffer_string,"B=%s",received_string);
cnt = 0;
lcd_clear();
lcd_cursor_home();

for (i=0;i<2;i++)
{
lcd_cursor_home();
lcd_putsf(buffer_string);
}

USART_puts(USART1, buffer_string);
}
}

الان اگر ali رو ارسال کنم b=ali پورت سریال در جواب b=ali رو میفرسته و b=ali و چند تا کاراکتر خرچنگی روی lcd نشون میده که فکر میکنم به خاطر اینکه null آخر رشته نگذاشتم این جوری شده

چرا تابع lcd_pusf رو باید دوبار بنویسم ؟
این هم برنامه تابع putsf

void lcd_putsf(char* str)
{
int i;

for (i=0;i<16;i++)
{
lcd_putchar(str[i]);
}

}}

alishekarriz
19-02-2013, 18:20
سلام

دوستان بيش از يكسال از شروع آموزش و استفاده از اين ميكرو گذشته و سال 91 هم رو به پايان هست

بعضي از دوستان كه از اساتيد قديم بودند خيلي سريع در استفاده و كار با اين ميكرو مهارت كسب كردند و بعضي ها هم به علت مشكلات يا تنبلي يا ضعف در بعضي مسائل چيز زيادي ياد نگرفتند


اگر دوستان و مديران محترم صلاح بدانند .. خلاصه عملكرد اين يك سال به صورت مجله آموزشي يا يك جزوه نسبتا قوي براي اموزش اين سري ميكروها تهيه و انتشار داده بشود.

اساتيد محترم:


آقا سعید شریفیان
آقا پوریا علیزاده
آقاي محمدرضا حسینا
آقا مصطفی
آقا محمد قديمي
آقا حسين
آقا صادق محمدي
آقا پیمان غلامی

دوستاني كه اسمشون رو فراموش كردم يا كامل يادم نبود ببخشند

با تشكر از همه دوستان

sadmonew
19-02-2013, 23:04
سلام

دوستان بيش از يكسال از شروع آموزش و استفاده از اين ميكرو گذشته و سال 91 هم رو به پايان هست

بعضي از دوستان كه از اساتيد قديم بودند خيلي سريع در استفاده و كار با اين ميكرو مهارت كسب كردند و بعضي ها هم به علت مشكلات يا تنبلي يا ضعف در بعضي مسائل چيز زيادي ياد نگرفتند


اگر دوستان و مديران محترم صلاح بدانند .. خلاصه عملكرد اين يك سال به صورت مجله آموزشي يا يك جزوه نسبتا قوي براي اموزش اين سري ميكروها تهيه و انتشار داده بشود.

اساتيد محترم:


آقا سعید شریفیان
آقا پوریا علیزاده
آقاي محمدرضا حسینا
آقا مصطفی
آقا محمد قديمي
آقا حسين
آقا صادق محمدي
آقا پیمان غلامی

دوستاني كه اسمشون رو فراموش كردم يا كامل يادم نبود ببخشند

با تشكر از همه دوستان
سلام مهندس :hi:
خوبی؟
واقعا" چـــــــقـــــــدر سریع گذشت.
بله مهندس این تاپیک خیلی مطالب خوبی داره اما حیف که پراکندس و برای شخصی که اولین مرتبه میخواد این همه پست رو بخونه، گیج میشه!
منم موافقم که این تاپیک یه سروسامونی بگیره!
اما مشکل اینجاس که کی میخواد وقت بذاره و مطالبو جمعو جور کنه!

alishekarriz
21-02-2013, 19:40
آقا صادق سلام
خوب و خوشيد .. از كارهات خبر بده چه ميكني خوشحال ميشيم ..
چه ميكني

دوستان و اساتيد كسي هست قسمتي از كار جمع آوري را به عهده بگيرد
دو سه فصل اول نياز به معرفي ميكرو سخت افزار .. بعد انواع روشهاي برنامه نويسي بعد شروع به آموزش دستورات و انجام مثالهاي كاربردي هستم

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

شاد باشيم

Doloop
10-04-2013, 10:26
کسی مثال برای RTC داره که تست شده باشه ؟

منو دیگه داره کلافه میکنه ... :unh:

mzarkoob
10-04-2013, 13:18
این تاپیک خیلی مطالب خوبی داره اما حیف که پراکندس و برای شخصی که اولین مرتبه میخواد این همه پست رو بخونه، گیج میشه!
منم موافقم که این تاپیک یه سروسامونی بگیره!
اما مشکل اینجاس که کی میخواد وقت بذاره و مطالبو جمعو جور کنه!
بله این یه کار لازمیه . البته من یه همچین کاری برای تایپیک برد دیسکاوری و cmsis کردم خیلی هم استقبال نشد! باید تایپیکش جدا باشه و مهم بشه
ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - شروع کار با برد Discovery kit for STM32 F4 series - with STM32F407 MCU (You can see links before reply)
ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - تشریح کامل دستورات cmsisبرای lpc1768 (You can see links before reply)

اما مشکل اینجاس که کی میخواد وقت بذاره و مطالبو جمعو جور کنه!آقا صادق خودت آستین بالا بزن:wink:

Doloop
10-04-2013, 14:58
مگه اولین پست رو ندیدید ...!!! :018:

مثل اینکه یکی آستین بالا زده ... :o

ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - شروع آموزش stm32 بر پایه برد سفارشی (You can see links before reply)


خوب حالا RTC نبود ...؟

من یه چیزایی نوشتم ولی خیلی مورد داره ...
سیمولاتور هم جواب نمیده ... :unh:

Doloop
10-04-2013, 18:31
این پروژه RTC که از اینور اونور جمع کردم ... :0013:

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

ولی جواب نمیده ... :unh:

حتی کانترش هم کار میکنه ولی یه جایی گیر میکنه که نمیدونم علتش چیه ؟!!!

دانلود (You can see links before reply)

mzarkoob
10-04-2013, 19:14
مگه اولین پست رو ندیدید ...!!! :018:
مثل اینکه یکی آستین بالا زده ... :o
ایـــــــــران میـــــــکرو ™ - مشاهده یک موضوع - شروع آموزش stm32 بر پایه برد سفارشی (You can see links before reply)

دم آقای شکر ریز گرم !:o
واقعا زحمت کشیدند. امیدوارم فرهنگ سازی بشه:mrgreen:

sigma-mx
10-04-2013, 21:49
دم آقای شکر ریز گرم !:o
واقعا زحمت کشیدند. امیدوارم فرهنگ سازی بشه:mrgreen:

من هم دیدم . خیلی خوبه دستش درد نکنه ..

sigma-mx
10-04-2013, 22:09
این پروژه rtc که از اینور اونور جمع کردم ... :0013:

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

ولی جواب نمیده ... :unh:

حتی کانترش هم کار میکنه ولی یه جایی گیر میکنه که نمیدونم علتش چیه ؟!!!

دانلود (You can see links before reply)


بفرما مهندس ... اینم مثال ...
البته مال حدود 1 سال پیشه . ببخشید قدیمیه !!

Doloop
11-04-2013, 01:01
عجب چیزیه این پروژه (وقتی بازش کردم هنگیدم)

مهندس این کار خودته یا از جایی گیر آوردی ... :018:

آقا سعید من گفتم یه چیزی در حد و اندازه من باشه این چیه دیگه ... :mrgreen:
دستت درد نکنه چیز کاملی به نظر میرسه :wink:

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

alishekarriz
11-04-2013, 01:24
سلام دوستان

كي پورياي ولي شده باز :0013:.. خوبه اسم اخرين ويرايشگر (You can see links before reply)رو در پست اول نوشته و معلومه كار من نيست :)

به هر حال از شخصي (You can see links before reply) كه اين كار رو داره ميكنه تشكر ميكنم
به اميد خدا داريم به منبع آموزشي تر و تميز نزديك ميشيم

شاد و موفق

mzarkoob
11-04-2013, 10:14
اسم اخرين ويرايشگر [/COLOR][/URL]رو در پست اول نوشته و معلومه كار من نيست :)
آخرین ویرایش توسط Doloop در تاریخ ۲۲-۰۱-۱۳۹۲ انجام شده است
دست آقای Doloop درد نکنه:018:

sadmonew
11-04-2013, 14:11
سلام دوستان عزیزم:hi:
دستت درد نکنه آقای شکرریز:0013:

Doloop
11-04-2013, 20:34
دست آقای Doloop درد نکنه:018:

خواهش میکنم

بیشتر از این خجالتم ندید ... :)

البته این گر چه وظیفه بود ولی حداقل کاری بود که میتونستم برای جبران گوشه ای از زحمات دوستانی که حق استادی گردن ما دارن ( sadmonew (You can see links before reply) و sigma-mx (You can see links before reply) و pooriya (You can see links before reply) و alishekarriz (You can see links before reply) و armstk و ...) و توی این تایپیک خیلی چیزها ازشون یاد گرفتیم :o و یاد دادیم :)

ولی با این وجود هنوز جای آموزش خیلی از قسمت های دیگه این میکرو خالیه ... :shj:

من که الان تا حدودی وقتم آزاده و بیکارم پیگیر راه اندازی قسمت های دیگه هستم باز دوستانی که میان بگن هرکی بره سراغ یک قسمت یا باهم بریم سراغ یک قسمت ... و ادامه بدیم:wink:

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

Doloop
12-04-2013, 23:01
سلام

شما ها با این لایبرری السیدی کاراکتری وقتی میخای عدد دورقمی که دهگاه صفر باشه ( 06 ) رو نمایش بدید چیکار میکنید ...
این کتابخونه خودش صفر رو حذف میکنه و نمایش نمیده کتابخونه دیگه ای هم هست که اینطوری نباشه ...

یا اینکه خودمون باید برنامه نویسیشو انجام بدیم ... :0013:

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

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

(یواش یواش تایپیک داره میاد بالا ):o

sadmonew
13-04-2013, 02:41
سلام مهندس
میتونی از این تابع استفاده کنی، فقط یه خورده باید تغییرش بدی!


char str[9];

void ChTostr(unsigned int x,char b)
{
unsigned int t,m,count;
unsigned char z=0,b_tmp;
b_tmp = b;
b--;
for (b;b>0;b--)
{
switch(b){
case 0: t=1;
break;
case 1: t=10;
break;
case 2: t=100;
break;
case 3: t=1000;
break;
case 4: t=10000;
break;
case 5: t=100000;
break;
case 6: t=1000000;
break;
}
m=x/t;
str[z]=m+0x30;
x=x-(t*m);
z++;
}
str[z]=x+0x30;
for(count=0;count<b_tmp;count++){
USART_SendData(USART1,str[count]);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET){}
}
}

Doloop
19-04-2013, 03:04
اینم چندتا مثال با CMSIS که برای بوردی هست که اشتراکی ساختیم

گر چه اکثر اینها راه اندازی شدن و لینک همشون توی اولین پست قرار داده شده ولی چون اینها برای همین بورد مشترک پورت شده من قرار میدم :0013:

usart
counter
spi
rtc فقط زمان
temp sensor


GPIO و السیدی هارو قرار ندادم (البته همه اینارو هم با زحمات دوستان هست که تونستم انجام بدم) :wink:

مثلا ADC هست
سنسور داخلی STM هست
GPIO هست
السیدی کاراکتری و السیدی N96 هم هست

باز اگه نیاز بود حتما برای همین بورد باشه آپلود کردنش برای من هیچ زحمتی نداره :wink:

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

RTC (You can see links before reply)

Doloop
19-04-2013, 12:24
اینم السیدی کاراکتری و السیدی N96
و لینک ADC با ولوم روی بورد

بیشتر مثال های من هم با السیدی کاراکتری هست

ADC (You can see links before reply)

LCDN96-8Bit (You can see links before reply)

lpln852
19-04-2013, 15:01
برای راه اندازه تایمرها و pwm میشه توضیح بدید باید چی کار کرد

Doloop
20-04-2013, 02:47
برای راه اندازه تایمرها و pwm میشه توضیح بدید باید چی کار کرد

تایمر برای چه کاری میخای
همون مثال counter یه نمونه برای راه اندازی تایمر هست منتها این تایمر مد زیاد داره:mrgreen:

PWM رو هم من نیمه کاره ول کردم یعنی جواب نداد فعلا بیخیالش شدم:0013:

اما کسی از مهندسین میدونه برای STM32F10x میخایم با logic Analyzer کار کنیم چه حرکتی باید بزنیم :unh:

من خیلی جاها دیدم توی setup مینویسن GPIOA_ODR جواب میده ولی برای من ii998) نه...
موارد دیگه رو هم چک کردم ولی جواب نداد

شما چطور ازش استفاده میکنید ؟؟؟

alishekarriz
20-04-2013, 12:36
در صفحه 28 مجله شماره 2 براي حالت شبيه سازي نرم افزاري توضيح داده اما وقتي با جيلينك بخواهيم ديباگ كنيم سيگنال رو ميگه نميشناسم

دوستان كسي با لاجيك آنالايزر كار كرده؟

alishekarriz
27-04-2013, 01:20
تنظيمات Option of target
در قسمت Debug
در پنجره Setting
Port: SW را انتخاب كردم
و در تب Trace پس از فعال كردن فركانس 72 مگ را انتخاب كردم.. لاجيك آنالايزر رجيسترها رو شناخت (مثلا TIM2_CNT يا GPIOC_ODR )‌

alishekarriz
15-05-2013, 01:24
You can see links before reply

amir8668
05-06-2013, 22:00
سلام
آقا من میخوام ال سی دی 16*2 راه بندازم، اتصالاتش درسته، از همین کتابخونه ای که گذاشتین استفاده میکنم، ولی فقط تو ال سی دی فلش نشون میده(->) مشکل چیه؟
بردم هم mini-stm32-v3.0 هست

Doloop
05-06-2013, 22:10
تو اتصالات خطوط دیتا احتمالا موردی هست , مثلا : بر عکس زدی یا قطعی چیزی وجود داره ...

amir8668
05-06-2013, 22:33
آقا دوباره چک کردم، اشتباه وصل کرده بودم، مرسی

mzarkoob
06-06-2013, 21:12
سلام
آقا من میخوام ال سی دی 16*2 راه بندازم، اتصالاتش درسته، از همین کتابخونه ای که گذاشتین استفاده میکنم، ولی فقط تو ال سی دی فلش نشون میده(->) مشکل چیه؟
بردم هم mini-stm32-v3.0 هست
سلام
برنامه دیباگ کردید خط به خط از روی برد ببینید چطوریه؟

amir8668
10-06-2013, 03:06
سلام
برنامه دیباگ کردید خط به خط از روی برد ببینید چطوریه؟
مشکل اتصال سیم ها بود،حل شد، مرسی

کسی در مورد توابع microC نمیدونه؟این بهتره یا cmsis?
توی microC به صورت کامل توابعشو توضیح داده، مثال هم زده، همچین توضیحاتی در مورد cmsis هم هست؟

amir8668
24-06-2013, 21:40
کسی جواب ما رو نمیده؟

sadmonew
25-06-2013, 12:34
کسی در مورد توابع microC نمیدونه؟این بهتره یا cmsis?
توی microC به صورت کامل توابعشو توضیح داده، مثال هم زده، همچین توضیحاتی در مورد cmsis هم هست؟
سلام دوست عزیز
microC for ARM که یه کامپایلر برای میکروهای ARM هستش و خیلی هم جدیده.
اما CMSIS یه سری کتابخونه آماده برای کار با میکروهای ARM سری Cortex هستش.
و از همه مهمتر اینه که CMSIS رو میتونید تو کامپایلرهای معروفی مثل IAR و Keil مورد استفاده قرار بدین.
به نظر من CMSIS برای کار با میکروهای STM32 مناسبتره.
و اینو از روی تجربه کار با این میکرو میگم که تو یکسالونیم گذشته بدست آوردم.

amir8668
26-06-2013, 00:34
سلام دوست عزیز
microC for ARM که یه کامپایلر برای میکروهای ARM هستش و خیلی هم جدیده.
اما CMSIS یه سری کتابخونه آماده برای کار با میکروهای ARM سری Cortex هستش.
و از همه مهمتر اینه که CMSIS رو میتونید تو کامپایلرهای معروفی مثل IAR و Keil مورد استفاده قرار بدین.
به نظر من CMSIS برای کار با میکروهای STM32 مناسبتره.
و اینو از روی تجربه کار با این میکرو میگم که تو یکسالونیم گذشته بدست آوردم.

سلام،ممنون از جوابتون
بله،توی کامپایلر microC for ARM هم کتابخونه آماده داره، هم در موردش توضیح داده و هم مثال داره، حتی کتابخونه LCD هم داره که دوستان زحمت کشیده بودن و خودشون نوشتن برای IAR

Greatal
10-07-2013, 17:02
قبل از اينكه ادامه بدم لازمه يه چيزهايي رو حتما بگم. يه چيزي كه وقتمو تو روزهاي اول زياد گرفت(شايد تعجب كنيد) اين بود، كه چه فايل هايي رو به كتابخونه اضافه كنم و تازه بعد از اضافه كردن اون فايل ها ارور هارو چطور برطرف كنم.
1- براي شروع اول از همه بايد اين فايل زيپ شده كه حجمش 21.1 مگابايت هستش رو دانلود كنيد.
302 Found (You can see links before reply)
حتما دانلود كنيد. بسيار حياتيه؟!؟!؟!!!
2- بعد رفتم يه پروژه جديد تو Keil ساختم و تمام فايل هاي با پسوند c.* رو كه مسير اونها رو در زير ميبينيد به پروژه اضافه كردم(تو عكس نشون دادم.)

...\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Li b_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src
...\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Li b_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
...\stm32f10x_stdperiph_lib\STM32F10x_StdPeriph_Li b_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM3 2F10x


سلام به شما مدیر عزیز متاسفانه لیک سایت st دیگه فال نیست در صورت امکان لیک جدیدی معرفی بفرمایید من از فایل های موجود در کیل استفاده کردم ولی قابل استناد نیست برام چون از هر سمپل یه قسمتش رو پیدا کردم سرچم کردم ظاهرا دیگه تو سایت st پیدا نمیشه!

Greatal
10-07-2013, 17:14
مهندسین گرامی با سلام:hi: من تازه با St کارم رو شروع کردم و یه دونه stm32f103rbt6 راه انداختم البته برد مورد بحث در اینجا نیست اما یه مشکل دارم که فکر کنم ربطی به این جریان نداره مشکلم اینکه:
پکیج این آی سی 64 پین پایه vref نداره حالا اینم مهم نیست (البته هست ولی مشکل من بزرگتر از این حرفاست)
من ADC رو راه انداختم دیتاشم دارم تو پرت سریال می خونم اما!
مشکل اینجاست که وقتی برق مستقیم از خود پایه VDDA , VDD یا هر ولتاژ دیگه که می دم adc از عدد 4032 عدد بیشتری نمی خونه در صورتی که باید 4096 رو نمایش بده ولتاژ رگلاتورم lf33 هستش برق ورودی 5v خروجی رگلاتور هم عدد 3.326 هستش من هیچ پرت اضافه ای روشن ندارم بجز یه ال ای دی که چشمک میزنه!
دوستان لطفا راهمنایی بفرمایند
با تشکرcry::

Greatal
12-07-2013, 19:39
سلام به دوستان یه لیک جالب پیدا کردم شاید به درد دوستان هم بخوره پر از مثاله و همون مثال هایی که من احتیاج داشتم
Index of /STM32/Examples/ (You can see links before reply)
:o

اونم با cmsis با کیل

sadmonew
12-07-2013, 20:35
سلام به شما مدیر عزیز متاسفانه لیک سایت st دیگه فال نیست در صورت امکان لیک جدیدی معرفی بفرمایید من از فایل های موجود در کیل استفاده کردم ولی قابل استناد نیست برام چون از هر سمپل یه قسمتش رو پیدا کردم سرچم کردم ظاهرا دیگه تو سایت st پیدا نمیشه!
سلام مهندس
از این (You can see links before reply) لینک دانلود کن.

Greatal
12-07-2013, 21:31
یه نکته ای کا شاید بدرد کسی بخوره دوستانی که با C++ کار کردن و آدت به برنامه نویسی objecti دارند شاید مثل من کلی از کار کردن با keil دچار مشکل بشن چون کلاماتی مثل class رو ادیتور میشناسه اما ارور میده اونم چه ارورایی چارش اینکه فایل پروژه رو بجای پسوند .C با پسوند .cpp سیو برفرمائید اونوقت لینکر و کامپایلر مثل بچه های خوب کار می کنند اون قدیمام که tc تحت داس بود همین جریان بود اما آدم که این همه مدت یادش نمی مونه!
دوستان گفتم شاید یه نفر دیگم مثل من گیر کنه شاید بکارش بیاد

Greatal
12-07-2013, 21:39
سلام مهندس
از این (You can see links before reply) لینک دانلود کن.
نهایت سپاس بنده رو بپذیرید مهندس جان

Greatal
13-07-2013, 10:16
مهندسین گرامی با سلام:hi: من تازه با st کارم رو شروع کردم و یه دونه stm32f103rbt6 راه انداختم البته برد مورد بحث در اینجا نیست اما یه مشکل دارم که فکر کنم ربطی به این جریان نداره مشکلم اینکه:
پکیج این آی سی 64 پین پایه vref نداره حالا اینم مهم نیست (البته هست ولی مشکل من بزرگتر از این حرفاست)
من adc رو راه انداختم دیتاشم دارم تو پرت سریال می خونم اما!
مشکل اینجاست که وقتی برق مستقیم از خود پایه vdda , vdd یا هر ولتاژ دیگه که می دم adc از عدد 4032 عدد بیشتری نمی خونه در صورتی که باید 4096 رو نمایش بده ولتاژ رگلاتورم lf33 هستش برق ورودی 5v خروجی رگلاتور هم عدد 3.326 هستش من هیچ پرت اضافه ای روشن ندارم بجز یه ال ای دی که چشمک میزنه!
دوستان لطفا راهمنایی بفرمایند
با تشکرcry::

کجاست یاری کننده ای که مرا یاری کن آقا از اساتید کسی نیست به ما کمک کنه:(

kamikazi
13-07-2013, 10:57
دوست عزیز میتونی از یه مدار تثبیت کننده ولتاژ استفاده کنید یه سلف و خازن میخواد اگر درست نشد باید فکر کنم اعدادتونو نرم کنید مثلا بالاترین عددی که بدست میارید رو بزارید و با توجه به عدد 4096 این عدد بدست اومده رو به این 4096 نرمش کنید یه نسبت خیلی سادس از این بروش تو کایبره کردن تاچ هم استفاده میشه اون نسبتو بدست بیارید حله

Greatal
13-07-2013, 11:06
دوست عزیز میتونی از یه مدار تثبیت کننده ولتاژ استفاده کنید یه سلف و خازن میخواد اگر درست نشد باید فکر کنم اعدادتونو نرم کنید مثلا بالاترین عددی که بدست میارید رو بزارید و با توجه به عدد 4096 این عدد بدست اومده رو به این 4096 نرمش کنید یه نسبت خیلی سادس از این بروش تو کایبره کردن تاچ هم استفاده میشه اون نسبتو بدست بیارید حله

با تشکر از شما دوست عزیز که جواب دادید اتفاقا بنده ولتاژ vdda رو از یک سلف 7nh و خازن 10ufرد کردم که اصلا یاد اون نبودم چون زیر هدرم بود شاید مشکل از اون باشه ضمن 4032 معمول ترین عدد بالاس بعضی وقتا تا 4047 هم میره فکر کنم باید مشکل رو یه جور دیگه ای حل کنم اینجوری درست نیست که نرم افزاری رو هوا حلش کنم اخه باید ببنم مشکل کجاست من می خوام اینو تو یه وسیله اندازه گیری استفاده کنم نمیشه باهاش آبدو خیاری رفتار کنم

Greatal
13-07-2013, 11:13
با تشکر از شما دوست عزیز که جواب دادید اتفاقا بنده ولتاژ vdda رو از یک سلف 7nh و خازن 10ufرد کردم که اصلا یاد اون نبودم چون زیر هدرم بود شاید مشکل از اون باشه ضمن 4032 معمول ترین عدد بالاس بعضی وقتا تا 4047 هم میره فکر کنم باید مشکل رو یه جور دیگه ای حل کنم اینجوری درست نیست که نرم افزاری رو هوا حلش کنم اخه باید ببنم مشکل کجاست من می خوام اینو تو یه وسیله اندازه گیری استفاده کنم نمیشه باهاش آبدو خیاری رفتار کنم

متاسفانه باز هم مشکل حل نشد البته من فقط سلفم رو شرت کردم ورش نداشتم ولی درست نشد که نشد!؟
کمک :unh: cry:: :(

kamikazi
13-07-2013, 12:31
والا دوست عزیز روشی که من گفتم ابدوخیاری نیست راحترین روش هستش شما یه چیز دیگه هم میتونه براتون مشکل ساز باشه قسمت گراندت ممکنه صفر مطلق نباشه مثلا 0.2 ولت باشه از اینم میتونه باشه

Greatal
13-07-2013, 13:25
والا دوست عزیز روشی که من گفتم ابدوخیاری نیست راحترین روش هستش شما یه چیز دیگه هم میتونه براتون مشکل ساز باشه قسمت گراندت ممکنه صفر مطلق نباشه مثلا 0.2 ولت باشه از اینم میتونه باشه

قصد جسارت نداشتم جناب مسئله اینه که باید ببینم adc میکرو مشکل داره یا من نمی تونم درست راه بندازمش که بعید دارم اشکال از من نباشه اما اگر مشکل از adc چیپ هست من برم از adc اکسترنال استفاده کنم وسیله مورد نظر یه جور کنتور محسوب می شه و در دراز مدت یه تبدیل رو هوا میتونه به قیمت گرونی تموم بشه حالا یا برای مشتری یا برای فروشنده از اونور من هم باید ببینم اگر میشه از ADC خودش استفاده کنم که با اسکیل تجاری رو تیراژ ملیونی هر چه ارزون تر بهتر از این جهت میگم رو هوا که مقدار حد اکثر ثابت نیست تغییر می کنه وگرنه هرچند می شداز روش شما استفاده کرد اما فکر کنم کار درستی نبود اما در مورد گراند هم باید چک کنم ممنون از پیشنهادتون ممنون می شم اگر راح حلی برای مشکل گراند احتمالی اگر دارید بهم بدید ارادت مند شما باز هم ببخشید اصلا قصد زیر سوال بردن فرمایش شما رو نداشتم اگر این تور بوده بنده رسما از شما عزر خواهی می کنم جناب

kamikazi
13-07-2013, 14:00
شما بزرگوارید دوست عزیز
برای بهتر شدن گراندت بهتره از سلف برای تغزیه گراندت استفاده کنید به این صورت که تو عکس برات گزاشتم من همه بردامو همینجوری طراحی میکنم تا حالا هم مشکلی پیش نیومده البته بگم پلی گان زدن روی برد هم بی تاثیر نیست من بردتونو ندیدم ولی بهتون پیشنهاد میکنم از stm32f103vet6 استفاده کنید که هر دو قسمت تغزیه گراند و 3.3 ولتش جداست وگرنه مجبورید از adc خارجی استفاده کنید اینم بگم به احتمال 90 در صد اشکال از نویز و تغزیت میتونه باشه از یه منبع تغزیه مطمعن و بدون نویز هم میتونی استفاده کن اگر یو اس بی هستش که خود یو اس بی منبع نویزه

Greatal
13-07-2013, 17:50
شما بزرگوارید دوست عزیز
برای بهتر شدن گراندت بهتره از سلف برای تغزیه گراندت استفاده کنید به این صورت که تو عکس برات گزاشتم من همه بردامو همینجوری طراحی میکنم تا حالا هم مشکلی پیش نیومده البته بگم پلی گان زدن روی برد هم بی تاثیر نیست من بردتونو ندیدم ولی بهتون پیشنهاد میکنم از stm32f103vet6 استفاده کنید که هر دو قسمت تغزیه گراند و 3.3 ولتش جداست وگرنه مجبورید از adc خارجی استفاده کنید اینم بگم به احتمال 90 در صد اشکال از نویز و تغزیت میتونه باشه از یه منبع تغزیه مطمعن و بدون نویز هم میتونی استفاده کن اگر یو اس بی هستش که خود یو اس بی منبع نویزه

چشم مهندس جان والا منبع رو با اوسیلوسکوپ چک کردم دیدم مشکل داره 500mv گراندم مشکل داشت اونم واسه استفاده ار بریج بود اونم حل کردم و حل نشد حتی منبع رو باطری جایگزین کردم بازم حل نشده راستسو بخوای من چون اصلان st کار نکردم این مدل رو گرفتم که شروع کرده باشم چیپ اصلی STM32W108CCU6 هست که سفارش دادیم هنوز نرسیده واسه دستگرمیه این منبع رو هم که گزاشتین امتحان میکنم البته اگر سلف 10mh داشته باشم اونم این تعداد به حر حال ممنون از پیگیریتون :wink: خیلی آقایی

amir8668
15-07-2013, 16:36
سلام
من تو کیل میخوا یه آرایه 8000تایی تعریف کنم، این ارور میده، دلیلش چیه؟چجوری حل کنم؟
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x952c bytes in
<[0x20000000-0x20004fff]> (total uncommitted space 0x5000).
Error while running Linker
تا 3550 هم مشکل نداره، بیشتر بشه ارور میده

kamikazi
15-07-2013, 17:16
خوب مشخصا اندازه فلش میکروتون جواب نمیده میکروتون چیه ؟
محتملا باید rbt6 باشه چون حافظه کمی داره

amir8668
15-07-2013, 19:51
همون f103rbt6
منظور کدوم حافظه س؟
فلش که 128کیلو هست و 33درصد هم بیشتر پر نمیشه

sadmonew
15-07-2013, 22:40
سلام
من تو کیل میخوا یه آرایه 8000تایی تعریف کنم، این ارور میده، دلیلش چیه؟چجوری حل کنم؟
Error[Lp011]: section placement failed
unable to allocate space for sections/blocks with a total estimated minimum size of 0x952c bytes in
<[0x20000000-0x20004fff]> (total uncommitted space 0x5000).
Error while running Linker
تا 3550 هم مشکل نداره، بیشتر بشه ارور میده
سلام مهندس
این متغیرو به صورت عمومی تعریف کردین(خارج از تابع main تعریف شده)؟

amir8668
16-07-2013, 01:50
سلام مهندس
این متغیرو به صورت عمومی تعریف کردین(خارج از تابع main تعریف شده)؟

بله مهندس،توی main تعریف کردم درست شد، ممنونم
حالا چرا اینطوریه؟نکته ش چیه؟
یه سوال دیگه هم داشتم، توی IAR تو قسمت Workspace دو گزینه هست، RAM debug و Flash debug، تفاوت اینا چیه؟
البته این دو گزینه تو پروژه های آماده هست، وقتی که پروژه جدید میسازم دو گزینه دیگه داره، Release و Debug ، که توی آموزش گفته بودن Release رو انتخاب کنین، تفاوت اینها چیه و چجوری میشه تو پروژه همون RAM debug و Flash debug رو اضاف کرد؟

amir8668
16-07-2013, 18:51
آقا من توی main آرایه رو تعریف میکنم،کامپایلر ارور نمیده، ولی میکرو برنامه رو اجرا نمیکنه:(

amir8668
17-07-2013, 15:28
دوستان کسی نیست جواب بده؟

Doloop
17-07-2013, 15:41
مهندس دیباگ کنی متوجه میشی ایراد کجاست ... :wink:

Greatal
20-07-2013, 11:11
آقا من توی main آرایه رو تعریف میکنم،کامپایلر ارور نمیده، ولی میکرو برنامه رو اجرا نمیکنه:(

دوست من با اینکه فکر می کنم در نظر گرفتن این حجم از حافظه کار درستی نیست احتمالا بتونید با malloc این حجم رو بدون ارور درست کنید (موجود در هدر stdlib.h) اما مشکلات آدرس دهی و اور رایت شدن داده هاتون رو در پیش دارید ضمنن اگر از گزینه های optimization با لول 3 در تب c++ استفاده می کنید احتمالا که نه حتما به مشکل بر می خورید چون وقت کامپایل حافضه شما کاملا پر نشده (مگر با داده بی خودب پرش کنید)اون رو در نظر نمی گیره این مد اپتیمایزیشن بسیار خطریه اگر متغییر عمومی دارید باید از نوع ولتایل باشه البته نه آرایه شما که هوار بایته نمیشه اینو ولتایل تعریف کرد خیلی خیلی مراقب باش! :hi:

اینم مثال از سایت کیل
Cx51 User's Guide: malloc Library Routine (You can see links before reply)
آقا آقا ضمنن باید چک کنی حافظه کم نیاری مثلا یا دیباگ کنی یا رو سریال یا خروجی یه حرکتی بزنی با مثلا یه ال ایدی چیزی رو روشن کنی که مطمئن باشی حافظه گرفته شده! مثل مثال بالا

sadmonew
20-07-2013, 23:46
بله مهندس،توی main تعریف کردم درست شد، ممنونم
حالا چرا اینطوریه؟نکته ش چیه؟
یه سوال دیگه هم داشتم، توی IAR تو قسمت Workspace دو گزینه هست، RAM debug و Flash debug، تفاوت اینا چیه؟
البته این دو گزینه تو پروژه های آماده هست، وقتی که پروژه جدید میسازم دو گزینه دیگه داره، Release و Debug ، که توی آموزش گفته بودن Release رو انتخاب کنین، تفاوت اینها چیه و چجوری میشه تو پروژه همون RAM debug و Flash debug رو اضاف کرد؟
سلام مهندس
متاسفانه با IAR زیاد کار نکردم، اما اگه سوالی در مورد Keil دارین میتونم پاسخگو باشم!

amir8668
06-08-2013, 02:45
سلام مهندس
متاسفانه با iar زیاد کار نکردم، اما اگه سوالی در مورد keil دارین میتونم پاسخگو باشم!
سلام
یه فایل آموزش iar پیدا کردم، تفاوت این دوگزینه ای که سوال داشتم رو توضیح داده

amir8668
06-08-2013, 02:49
دوست من با اینکه فکر می کنم در نظر گرفتن این حجم از حافظه کار درستی نیست احتمالا بتونید با malloc این حجم رو بدون ارور درست کنید (موجود در هدر stdlib.h) اما مشکلات آدرس دهی و اور رایت شدن داده هاتون رو در پیش دارید ضمنن اگر از گزینه های optimization با لول 3 در تب c++ استفاده می کنید احتمالا که نه حتما به مشکل بر می خورید چون وقت کامپایل حافضه شما کاملا پر نشده (مگر با داده بی خودب پرش کنید)اون رو در نظر نمی گیره این مد اپتیمایزیشن بسیار خطریه اگر متغییر عمومی دارید باید از نوع ولتایل باشه البته نه آرایه شما که هوار بایته نمیشه اینو ولتایل تعریف کرد خیلی خیلی مراقب باش! :hi:

اینم مثال از سایت کیل
Cx51 User's Guide: malloc Library Routine (You can see links before reply)
آقا آقا ضمنن باید چک کنی حافظه کم نیاری مثلا یا دیباگ کنی یا رو سریال یا خروجی یه حرکتی بزنی با مثلا یه ال ایدی چیزی رو روشن کنی که مطمئن باشی حافظه گرفته شده! مثل مثال بالا

ممنون از پاسختون
من باید به صورت آرایه تعریف کنم و دائما باید دیتا از adc بگیره و آپدیت بشه
میشه آرایه رو روی حافظه خارجی تعریف کرد؟چون فک کنم مشکل کم بودن sram باشه

sjafarim
07-08-2013, 15:16
تمپلیت rtx+cmsis برای میکرو stm32f103 به درخواست یکی از دوستان:
You can see links before reply

Omid_Refah
09-08-2013, 19:56
سلام
این برنامه رو تست بزن

سلام
با تشکر از همه دوستان :hi:
راستش من کمی با Keil و AT91SAM7S کار کرده ام
ولی برنامه های صفحه های اول رو که RUN میکنم یه Error مشترک میگیره lov:
Error: #5: cannot open source input file "stm32f10x_lib.h": No Such or directory
خوشبختانه با Atmel این مشکلات رو نداشتم
حتی تو خود Keil سرچ کردم و این فایل رو پیدا نکردم. از تو فولدر های دیگه ای که داشتم، پیداش کردم و تو فولدر برنامه هام کپی کردم ولی درست نشد
کسی میدونه مشکل من کجاست ؟؟؟

sadmonew
09-08-2013, 20:40
سلام
با تشکر از همه دوستان :hi:
راستش من کمی با keil و at91sam7s کار کرده ام
ولی برنامه های صفحه های اول رو که run میکنم یه error مشترک میگیره lov:
Error: #5: Cannot open source input file "stm32f10x_lib.h": No such or directory

سلام مهندس
لطفا بگید کدوم برنامه مشکل داره تا مشکلو رفع کنیم؟

sjafarim
10-08-2013, 01:47
به خاطر اینه که این فایل راه انداز کیل های ورژنهای قدیمیه و کیل اسم راه اندازای stm رو عوض کرده:

**- فایلهای سورسی که توشون این خط هست:

#include "stm32f10x_lib.h"
به این تغییر بده:

#include "stm32f10x.h"

*فایل استارتاپ هم این باید باشه :

startup_stm32f10x_xx.s
که باید تو پروژه باشه،به جای اون xx آخرش طبق توضیح زیر حروف رو انتخاب کن:

ld : Low Density
md : Medium Density
hd : High Density
xl : XL Density
cl : Connectivity Line
vl : Value Line


- Low-density Value line devices are STM32F100xx microcontrollers where the
Flash memory density ranges between 16 and 32 Kbytes.
- Low-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 16 and 32 Kbytes.
- Medium-density Value line devices are STM32F100xx microcontrollers where
the Flash memory density ranges between 64 and 128 Kbytes.
- Medium-density devices are STM32F101xx, STM32F102xx and STM32F103xx
microcontrollers where the Flash memory density ranges between 64 and 128 Kbytes
- High-density Value line devices are STM32F100xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- High-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 256 and 512 Kbytes.
- XL-density devices are STM32F101xx and STM32F103xx microcontrollers where
the Flash memory density ranges between 512 and 1024 Kbytes.
- Connectivity line devices are STM32F105xx and STM32F107xx microcontrollers.
(که البته اگر خودت پروژرو از نو بسازی و میکرو رو خودت انتخاب کنی این فایل اتوماتیک لود میشه، به احتمال زیاد این قسمت درسته و نیازی به این تغییر نخواهی داشت)

Omid_Refah
10-08-2013, 02:33
سلام مهندس
لطفا بگید کدوم برنامه مشکل داره تا مشکلو رفع کنیم؟


سلام
راستش هر سه برنامه ایی که در صفحه های اول تا سوم هست ، همین ایراد رو بوجود میاره

Omid_Refah
10-08-2013, 02:55
به خاطر اینه که این فایل راه انداز کیل های ورژنهای قدیمیه و کیل اسم راه اندازای stm رو عوض کرده:
.
.
.
**- فایلهای سورسی که توشون این خط هست:
(که البته اگر خودت پروژرو از نو بسازی و میکرو رو خودت انتخاب کنی این فایل اتوماتیک لود میشه، به احتمال زیاد این قسمت درسته و نیازی به این تغییر نخواهی داشت)


ممنون از مساعدت همه دوستان

پروژه رو یکبار دیگه ساختم تا حد زیادی درست شد
ولی بازم لینکر Error جدید زیر رو میگیره :
gpio.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_ld.o).
gpio.axf: Error: L6218E: Undefined symbol stm32_Init (referred from main.o).

sjafarim
10-08-2013, 11:33
برات آماده کردم دوست عزیر:
You can see links before reply

3تا اشکال داره کارت:
1- فایل system_stm32f10x.c باید در پروژه لود میشد تا startup_stm32f10x_ld.s بتونه از فانکشن SystemInit استفاده کنه.
2- شما در پروژه ای که ساختی این خطو حذف کری:

#include "STM32_Init.h"
اینو اضافه کن و فایل c. به همین نام رو هم به پروژه اضافه کن.
3- تو فایل STM32_Init.c این خط ها باید حذف بشند چون پورت e,f,g برای میکروهای LD تعریف نشدست:

if (__GPIO_USED & 0x10) { // GPIO Port E used
RCC->APB2ENR |= RCC_APB2ENR_IOPEEN; // enable clock for GPIOE
GPIOE->CRL = __GPIOE_CRL; // set Port configuration register low
GPIOE->CRH = __GPIOE_CRH; // set Port configuration register high
}

if (__GPIO_USED & 0x20) { // GPIO Port F used
RCC->APB2ENR |= RCC_APB2ENR_IOPFEN; // enable clock for GPIOF
GPIOF->CRL = __GPIOF_CRL; // set Port configuration register low
GPIOF->CRH = __GPIOF_CRH; // set Port configuration register high
}

if (__GPIO_USED & 0x40) { // GPIO Port G used
RCC->APB2ENR |= RCC_APB2ENR_IOPGEN; // enable clock for GPIOG
GPIOG->CRL = __GPIOG_CRL; // set Port configuration register low
GPIOG->CRH = __GPIOG_CRH; // set Port configuration register high
}

Omid_Refah
10-08-2013, 13:50
جناب جعفری

ممنون از شما
فایل ضمیمه ایی که لطف کردی بدون اشکال اجرا شد، ولی اون تغییراتی که ذکر کرده بودی اعمال کردم ولی انجام نشد.... باز هم error های متعددی میده.
مشکل فعلی حل شد، ولی برای پروژه های آتی باید چه کرد ؟؟؟؟
برای at91sam7s فقط کافی بود که فایل هدر مربوطه لود بشه و برنامه اجرا میشد، ولی برای stm32 باید چه کرد ؟؟؟
ممنون از مساعدت سرکار

sjafarim
11-08-2013, 14:19
error هاتون رو کامل اینجا بنویسید تا بگم دلیلشون چیه...
باید سعی کنی خودت کم کم بتونی تحلیل کنی error هارو و رفعشون کنی دوست عزیز.

amir8668
18-08-2013, 11:57
سلام دوستان
دستوری هس که بشه چند پین ورودی رو همزمان به صورت یک عدد باینری یا هگز چک کرد؟
میخوام با if با یه عدد باینری یا هگز مقایسه کنم و دستورات بعدی انجام بشه

amir8668
18-08-2013, 20:13
کسی نیس جواب بده؟:(

sigma-mx
18-08-2013, 21:41
سلام
بله ، این دستور


uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
محتوای 16 بیتی پورت رو برمی گردونه .
بجای پارامتر ورودی کافیه GPIOA یا GPIOB یا ... بگذارید .

amir8668
19-08-2013, 12:03
ممنون از راهنماییتون
البته با دستور uint16_t GPIO_ReadInputData انجام شد
فقط یه مشکل دیگه دارم، pb3 کار نمیکنه، ال ای دی هم نمیتونم باهاش خاموش روشن کنم، مشکل چیه؟
یه برنامه خاموش روشن کردن ال ای دی برا تست نوشتم، با pb2 جواب میده، اما pb3 کار نمیکنهcry::

sigma-mx
19-08-2013, 12:52
سلام
ببخشید اشتباه شد ، اصلاح کردم ..

کار نکردن این پین و چند پین دیگه بخاطر حالت پیش فرضشون هست که روی gpio نیست و روی jtag و swd تنظیم شده . برای استفاده باید قابلیت jtag یا swd ( بستگی داره کدون پین باشه ) رو غیرفعال کنید .

اینو بعد از کانفیگ GPIO بنویس . پورت JTAG رو غیر فعال میکنه ...



GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

amir8668
19-08-2013, 15:35
بازم ممنون از راهنمایی
اگر این پینها به صورت سخت افزاری صفر یا یک باشن، میکرو دیگه پروگرام نمیشه؟
این ارور به همین دلیله؟

sadmonew
20-08-2013, 18:58
بازم ممنون از راهنمایی
اگر این پینها به صورت سخت افزاری صفر یا یک باشن، میکرو دیگه پروگرام نمیشه؟
این ارور به همین دلیله؟
سلام مهندس
از ورژن جديدتر Flash Loader استفاده كن.
ضمنا" اين پايه ها ارتباطي به پروگرم كردن، از طريق بوت لودر ندارن!
لينك دانلود (You can see links before reply)

amir8668
20-08-2013, 20:47
سلام مهندس
از ورژن جديدتر Flash Loader استفاده كن.
ضمنا" اين پايه ها ارتباطي به پروگرم كردن، از طريق بوت لودر ندارن!
لينك دانلود (You can see links before reply)

سلام
مرسی،دانلود کردم،بازم همون مشکل بود،تا پین b2 صفر یا یک باشه همون ارور میده،B2 پین BOOT1 هس، ربطی به بوت لودر نداره؟

kamikazi
21-08-2013, 09:30
دوست عزیز محتملا مشکل سخت افزاری دارید شاید
برد رو خودتون مونتاژ کردید یا اماده گرفتید یه چکی بکنید بد نیست

sadmonew
21-08-2013, 10:37
سلام
مرسی،دانلود کردم،بازم همون مشکل بود،تا پین b2 صفر یا یک باشه همون ارور میده،B2 پین BOOT1 هس، ربطی به بوت لودر نداره؟
سلام
زماني كه دارين از bootloader استفاده ميكنيد BOOT0 و BOOT1 رو زمين(صفر) كنيد.

amir8668
22-08-2013, 22:29
برد رو از فروشگاه کویر گرفتم
تا وقتی که BOOT1 صفر یا یک باشه همین مشکل هست،آزاد باشه درست میشه
این میکرو مقاومت pull-up داخلی هم داره؟چطو فعال میشه؟

sigma-mx
23-08-2013, 00:56
تا وقتی که BOOT1 صفر یا یک باشه همین مشکل هست،آزاد باشه درست میشه

!!!!!!!!!!!!!!!!!!!!!
معنی این چیه ؟؟؟؟!! خب بالاخره پین یا صفر یا یک !! آزاد هم بشه بالاخره یه حالتی داره . باید به Boot0 ربط داشته باشه ...

amir8668
23-08-2013, 01:28
!!!!!!!!!!!!!!!!!!!!!
معنی این چیه ؟؟؟؟!! خب بالاخره پین یا صفر یا یک !! آزاد هم بشه بالاخره یه حالتی داره . باید به Boot0 ربط داشته باشه ...
چرا میزنید؟lov:
من پورت b0 تا b4 رو به یک دیپ سوئیچ وصل کردم،یه طرف سوئیچ زمینه و یه طرفش با مقاومت به 3.3 ولت وصل میشه(pull up). حالا تا زمانی که پین b2 به سوئیچ وصل باشه(تو هر دو حالت صفر یا یک)، این مشکل هست،وقتی که قطعش کنم درس میشه
منظورم از آزاد بودن اینه که بجز اتصالات روی برد به چیزی وصل نباشه

amir8668
23-08-2013, 01:30
مقاومت pull up داخلی میکرو رو چجوری میشه فعال کرد؟

sigma-mx
23-08-2013, 01:37
تو کانفیگ پین مربوطه اینطوری بنویس ...




GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOC, &GPIO_InitStructure);

amir8668
23-08-2013, 01:44
آقا فهمیدم، با انتخاب همون pu یا pd توی دستورات GPIO
GPIO_Mode_IPD
GPIO_Mode_IPU

amir8668
23-08-2013, 01:47
تو کانفیگ پین مربوطه اینطوری بنویس ...




gpio_initstructure.gpio_pin = gpio_pin_1 ;
gpio_initstructure.gpio_mode = gpio_mode_ipu;
gpio_init(gpioc, &gpio_initstructure);


ممنونم
پست قبلو ارسال کردم،بعد پست شما رو دیدم

amir8668
24-08-2013, 03:14
ببخشید من اینقد سوال میپرسم
میخوام اینتراپت خارجی رو فعال کنم، با برنامه هایی که دوستان گذاشته بودن، با پین A0 درست شد، اما میخوام با پین B0 کار کنم، برنامه رو هم به شکل زیر تغییر میدم، اما همچنان با همون پین A0 فعال میشه:brk:
اشکال کارم چیه که اینجوری میشه؟


void EXTI_Configuration(void)
{
EXTI_InitTypeDef EXTI_InitStructure;

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);


EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
}






void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);


NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 1;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);




}

void EXTI0_IRQHandler(void)
{

if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
delay_ms(300);
ii=!ii;

}
EXTI_ClearITPendingBit(EXTI_Line0);

}

sjafarim
24-08-2013, 11:36
در کل روش کار اینه:

/* Configure PA8 as input floating For TP_IRQ*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);

/* Configure Button EXTI line */
EXTI_InitStructure.EXTI_Line = EXTI_Line8;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);

/* Enable and set Button EXTI Interrupt to the lowest priority */
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 0x02;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

EXTI_GenerateSWInterrupt(EXTI9_5_IRQn);

اول پورت a8بصورت float تعریف میشه که پایه اینتراپت باید ازین نوع باشه :

/* Configure PA8 as input floating For TP_IRQ*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);
این دستور پایه 8 پورت a رو بعنوان اینتراپت پیکربندی میکنه.

GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource8);

حالا میرسیم به جای مهمش:
یک سری اینتراپت لاین و در ازای هریک یه تابع ایتراپت در stm32f10x_it.c وجود داره، پایه های 0 تا 4 تابع مجزا، پایه های 5 تا 9 یک تابع (لاین) و پایه های 10 تا 15 یک لاین دارند، این یعنی چی؟
یعنی اگر مثلا شما پایه 7 از هر پورتیو بخوای به عنوان اینتراپت فعال کنی باید از لاین 5 تا9 استفاده کنی و تابع اینتراپتتو هم درون بنویسی، توابع به شکل زیرند:

void EXTI0_IRQHandler(void);
void EXTI1_IRQHandler(void);
void EXTI2_IRQHandler(void);
void EXTI3_IRQHandler(void);
void EXTI4_IRQHandler(void);
void EXTI9_5_IRQHandler(void);
void EXTI15_10_IRQHandler(void);

حالا در خط های بعدی کد میبینی که چطور لاین معرفی شده بع nvic کانال مرتبطش وصل میشه تا بتونه تولید اینتراپت کنه و بقیه خواص وقفه تنظیم میشن مثل نوع حساسیت لبه و اولویت و...:

/* Configure Button EXTI line */
EXTI_InitStructure.EXTI_Line = EXTI_Line8;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);

/* Enable and set Button EXTI Interrupt to the lowest priority */
NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriori ty = 0x02;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

بعدم فعالش میکنی:

EXTI_GenerateSWInterrupt(EXTI9_5_IRQn);

amir8668
24-08-2013, 16:49
مرسی از توضیح دقیقتون
کاملا درست فعال میشه و کار میکنه، اما وقتی جای porta تو همین برنامه portb میذارم باز همون مشکل قبلی دارم، یعنی با B8 هیچکاری نمیکنه و همچنان با A8 فعاله
کلاک portb هم فعاله

sigma-mx
24-08-2013, 17:51
شما تو قسمت فعال کردن کلاک ، کلاک واحد afio رو هم فعال کنید ..

amir8668
24-08-2013, 19:06
شما تو قسمت فعال کردن کلاک ، کلاک واحد afio رو هم فعال کنید ..
نکته ش همینه،درس شد:o
مرسیییییی

Omid_Refah
31-08-2013, 13:25
با سلام به همه دوستان
در مورد کتابخانه های cmsis کسی از دوستان خودآموزی، چیزی سراغ داره که بتونه لینک بده ؟

sjafarim
31-08-2013, 13:33
سلام دوست عزیز
یه فایل chm. همراه خود cmsis هست که help کامل اونه و کاملترین مرجع برای یادگیری هر بخش.

spring110.sh
31-08-2013, 16:47
یه سوال چرا تایمر اینقدر کم مورد توجه قرار گرفته ؟ راه اندازی و کار با تیمر هم مهمه

sadmonew
02-09-2013, 13:01
یه سوال چرا تایمر اینقدر کم مورد توجه قرار گرفته ؟ راه اندازی و کار با تیمر هم مهمه
سلام مهندس
این لینکو (You can see links before reply) نگاه کن.

spring110.sh
03-09-2013, 11:02
سلام مهندس
این لینکو (You can see links before reply) نگاه کن.


ممنون مهندس . اولا من کل این تاپیک ها رو خوندم و از آموزش های پربار شما و دوستان استاده بردم . اما تو این مثال تایمر ، من راه اندازی رو میدونم ، ااما مشکلم تو استفاده از اونه ! مثلا من می خوام از تایمر 2،3 و 4 استفاده کنم . تایمر 2 زمان کار کل سیستم مثلا 8 ساعته ! بعد 8 ساعت سیستم خاموش می شه ! ( من از کجا می تونم مقدار هربار سرریز تایمر رو بردارم که تو یه تابع زمان 8 ساعت رو براش درست کنم )
تایمر های دیگه هم هرکدوم کارای دیگه ای خواهند کرد ...
خوشحال می شم راهنمایی کنید:wink:

kamikazi
03-09-2013, 11:44
سلام تایمر برای اینکار شاید مناسب نباشه (بخاطر همون 8 ساعتی که گفتید) چون اگر میکروتون به هر دلیل تو این فاصله 8 ساعت خاموش بشه مشکل براتون ایجاد میکنه بهتره از ار تی سی داخلی برای داشتن زمان دقیق استفاده کنید و زمانتونو بر اساس اون تو برنامه بکار ببرید البته از تایمر هم میشه ولی مشکلش همون قضیه ای که بالا گفتم ممکنه براش پیش بیاد البته همه اینا پیشنهاد و نظر شخصیمه مطمعنا اقا صادق خودشون اینکاره اند