راهنمای استفاده از کتابخانه lcd nokia1661 - قسمت9
لینک پست معرفی مشخصات کتابخانه
موضوع این قسمت: راه اندازی کتابخانه برای stm32 Cortex M3
با سلام .
در قسمت قبل راه اندازی کتابخانه برای AVR را توضیح دادم . در این قسمت راه اندازی کتابخانه را برای stm32 f103 c8t6 که در واقع بورد blue pill را توضیح میدم . البته برای تمام بوردهایی که میکروی اونها cortexm3 یا به بیان بهتر stm32f1xx هست ، قابل استفاده میباشد.
البته به همراه مثالی که برای شما ارسال میکنم یک فایل cube MX هست که پیکر بندی توی اون انجام شده ولی دوستانی هستن که به صورت رجیستری کد مینویسن یا از spl استفاده میکنند که این توضیحات برای اونها ضروری هست .
اولین قسمت فایل کیوب که باید تنظیم بشه مربوط به تب pinout هست . که در تصویر زیر میبینید .

من برای spi از واحد2 استفاده کردم . تننظیماتش رو توی کادر قرمز میبینید .
دوتا پایه هم برای cs و reset احتیاج هست که اونها را باید خروجی قرار بدید . ( کادر زرد رنگ )
جزئیات تنظیم spi در سربرگ conf را در تصویر زیر مشخص کردم .

شما با تنظیم prescaler ( بالای خط بسته قرمز ) میتونید baud rate که در خط بسته قرمز مشخص هست را تنظیم کنید که در اینجا روی 18 مگاهرتز تنظیم شده . این در واقع همون فرکانس کلاک spi میکرو هست .
برای تنظیم gpio هم طبق تصویر زیر اقدام کنید.

نکته ای که باید بهش توجه کنید اون ستونهایی هست که با خط قرمز نمایش داده شده .
اگر روی هر سطر کلیک کنید های لایت میشه و گسترده ی اون در پایین نمایش داده میشه . که میتونیدبرای pin مورد نظر اسم هم بگذارید که در کادر زرد میبینید .
تا اینجا تنظیمات مربوط به پریفرال ها انجام شده است . یک تعداد تنظیمات دیگه داره که میشه گفت سلیقه ای هستن ولی میتونن مفید باشن .
برای این تنظیمات لازم هست که برید توی منوی project و setting رو انتخاب کنید . پنجره ای به شکل زیر باز میشه .

نکته مهم این تصویر کادر قرمز هست . علت انتخاب این گزینه ها پوشه بندی مربوط به پروژه هست . که خیلی واضح و سهل و راحت و قابل فهم از کار در میاد. البته نرم افزار من true studio هست. نمیدونم برای نرم افزارهای دیگه چطوره !! همانطور که گفتم این موضوع سلیقه ای هست .
تنظیمات در برگه code generator را من طبق تصویر زیر انجام میدم .

که بازم سلیقه ای هست . ولی این تنظیمات که توی کادر قرمز اومده ، برای من سهولت بیشتری ایجاد میکنه .
مورد سوم برگه advanced stting هست .که در تصویر زیر میبینید.

همانطور که در کادر قرمز میبینید ، کتابخانه مورد استفاده برای SPI 2 را LL انتخاب کردم .
علتش رو به صورت هشدار زیر توضیح میدم :
هشدار :
در نسخه cube MX 4.26.0 که مورد استفاده من هست . واحد spi2 با کتابخانه HAL درست کار نمیکنه !!! ولی با کتابخانه LL مشکلی نداره . صحت این مطلب را در مورد نسخه 5 دقیقا نمیدنم ( روی سیستم من با مشکل مواجه هست و خوب کار نمیکنه ) ولی در هر صورت این موضوع را مد نظر داشته باشید .
بعد از اعمال این تنظیمات و تولید کد پروژه ، کدهای ضروری مربوط به فایل main در تصاویر زیر نمایش داده شده است .
ابتدا در فایل main.c اینکلود ها را اضافه کنید و بهتر است در همان جایی که کیوب در نظر گرفته کدها را بنویسید . طبق تصویر زیر

و در خود تابع main() دستورات درون کادر قرمز نوشته شود . دقت کنی که مکان آنها بعد از اجرای توابع مربوط به پیکر بندی gpio و spi باشد. این مطلب را در تصویر زیر و درون کادر قرمز میبینید .

حال نوبت به معرفی یک تابع ، به عنوان تابع تاخیر میرسد بهتر است اینکار در فایل main.h انجام شود .
یک مثال برای این هدف در کادر قرمز تصویر زیر نمایش داده شده است .

راه اندازی در کمپایلر کیل uvision5
تمام موارد بالا برای کمپایلر کیل نیز صادق است با این تفاوت که 2 مورد اضاف وجود دارد یکی تعریف 2 متغیر عمومی که در تصویر زیر مشاهده میکنید . ( کادر قرمز)

توجه : این دو متغیر برای نسخه های قدیمی احتیاج است و برای نسخه هایی که بعد از تاریخ 1399/3/6
تهیه نموده اید ، لازم نیست .
و یک تنظیمات در کمپایلر کیل احتایج هست که در 2 تصویر زیر میبینید .
تصویر زیر مربوط به تنظیم نسخه کمپایلر هست .

و تصویر زیر مربوط به استاندارد زبان C مورد استفاده است .

در اینجا توضیحات مربوط بهراه اندازی کتابخانه برای stm32f1xx به پایان رسید .
امیدوارم استفاده برده باشید و مورد توجه تان قرار گرفته باشد .
در قسمت بعدی الزامات راه اندازی برای cortex M0 را شرح میدم .
با سپاس از توجه تان.
مالکیت معنوی : لطفا کپی نکنید ، لینک بدید .


