-
 

راهنمای استفاده از کتابخانه 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 را شرح میدم .

با سپاس از توجه تان.

 

لینک قسمت قبل

لینکی قسمت بعد

 

مالکیت معنوی : لطفا کپی نکنید ، لینک بدید .

راهنمای استفاده از کتابخانه lcd nokia1661 - قسمت8

لینک پست معرفی مشخصات کتابخانه

لینک اولین قسمت آموزش

لینک فهرست موضوعی مطالب

موضوع این قسمت: راه اندازی کتابخانه برای AVR

با سلام .

 

در این پست میخوام به طور خلاصه در مورد نحوه ی راه اندازی کتابخانه  برای avr یک توضیحاتی بدم .

خوشبختانه در مورد AVR  خیلی کار پیجچیده ای نیاز نیست . فقط فایلها رو به پروژه اضافه کنید ( برطبق همون نرم افزاری که با اون کار میکنید )و ترتیب کدها در فایل main باید به صورتی باشه که در تصویر زیر میبینید.

 

 

در اینجا توضیحات مربوط به راه اندازی کتابخانه برای avr به پایان رسید .

امیدوارم استفاده برده باشید .

 در قسمت بعدی  راه انداز کتابخانه برای stm32  را شرح میدم .

با سپاس از توجه تان.

 

لینک قسمت قبل

لینکی قسمت بعد

 

مالکیت معنوی : لطفا کپی نکنید ، لینک بدید .

 

راهنمای استفاده از کتابخانه lcd nokia1661 - قسمت7

لینک پست معرفی مشخصات کتابخانه

لینک اولین قسمت آموزش

لینک فهرست موضوعی مطالب

موضوع این قسمت: معرفی کارکرد توابع قسمت گرافیکی  و نکات راه اندازی 

با سلام .

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

فایل های ایk بخش در پوشه glcd قرار داد . این بخش کتابخانه تنظیمات خاصی نداره و تنها با اینکلود کردن هدر فایل ، قابل استفاده است . دستور اینکلود قسمت گرافیکی باید بعد از اینکلود قسمتهای قبلی کتابخانه باشد.

جهت یادآوری محتویات پوشه glcd را در تصویر زیر میبینید .

 

الگوی توابع این قسمت در فایل  graphic_lcd.h  تعریف شده است .

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

عملکرد توابع گرافیکی در توضیحات زیر است :

تابع

glcd_draw_fill_rectangle (rgb_color_typedef   color ,uint8_t x1,uint8_t y1 ,uint8_t x2 , uint8_t y2);

 

این تابع یک مستطیل توپر رسم میکند . 

و متغیرهای آن به شرح زیر است

color  =  کد رنگ مستطیل میباشد.
 

x1 , y1   =   مختصات گوشه ی بالا سمت چپ مستطیل میباشد.

x2 , y2   =   مختصات گوشه ی پایین  سمت راست مستطیل میباشد.

*** توجه :

x =  شماره ستون  و   y = شماره سطر است .
 

تابع glcd_draw_line ( color ,  thicknes ,x1, y1 , x2 , y2);

این تابع یک خط از مختصات x1 ,y1  به مختصات x2 , y2 رسم میکند .

color  =  کد رنگ خط میباشد.

thicknes = ضخامت خط را مشخص میکند .

اگر شیب خط کمتر از 45 درجه باشد خط، به سمت پایین ضخیم میشود .و اگر بیشتر از 45 درجه باشد به سمت راست ضخیم میشود .

در واقع خط ضخیم  شده بیشتر شبیه متواضی الاضلاع هست .

 

تابع glcd_draw_fill_circle(color ,  x1, y1 , radius);

این تابع یک دایره توپر به رنگ color  رسم میکند .

x1,y1 مختصات مرکز دایره و radius شعاع دایره است .

 تابع :glcd_draw_fill_quadrant( color, quad_num, x0, y0 , radius)

این تابع یک ربع دایره توپر به رنگ color  و مرکز x0,y0  و شعاع radios رسم میکند .

quad_num : 

میتواند مقادیر 1 تا 4 را بپذیرد که تعیین کننده موقعیت ربع دایره است ، که به شرح زیر میباشد.

اگر صفحه ساعت را در نظر بگیرید .

1 =  ربع دایره بین ساعت 3 تا 6

2 =ربع دایره بین ساعت 6 تا 9

3 = ربع دایره بین ساعت 9 تا 12

4 = ربع دایره بین ساعت 12 تا 3

برای بقیه مقادیر چیزی رسم نمیکند .

تابع glcd_draw_rectangle( color , thicknes , x1,y1 ,x2 , y2)

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

thicknes = ضخامت اضلاع مستطیل میباشد . و نکته اینکه اضلاع به سمت داخل مستطیل ضخیم میشوند .

 

تابع glcd_draw_circle( color , thicknes  , x0, y0 , radius)

این تابع مانند تابع رسم دایره توپر (glcd_draw_fill_circle) است با این تفاوت که یک دایره توخالی با ضخامت حاشیه ای به اندازه ی  thicknes  رسم میکند . البته تنها از مقدار 1 برای thicknes استفاده نمایید .

تابع glcd_draw_quadrant( color, quad_num, thicknes , x0, y0 , radius)

شرح متغیرهای این تابع دقیقا مانند تابع  glcd_draw_fill_quadrant است . با این تفاوت که یک ربع دایره توخالی رسم میکند و تنها مورد اضافی متغیر thicknes هست که ضخامت حاشیه ربع دایره را مشخص میکند . بهتر از تنها از مقدار 1 استفاده کنید .

**************************************************************

توابع اضافه شده در نسخه 1.1.3 : ( این نسخه در تاریخ 1399/4/3 منتشر شده است)

تابع :

glcd_draw_circle_rectangle(rgb_color_typedef   color ,glcd_cor_type  cir_rad  ,  uint8_t  thicknes ,glcd_cor_type x1,glcd_cor_type y1  ,glcd_cor_type x2 , glcd_cor_type y2)

این تابع برای شما یک مستطیل یا مربع توخالی  با گوشه های گرد رسم میکند . و متغیر cir_rad   شعاع انحای گوشه های مربع میباشد .

توضیح بقیه پارامتهرهای آن شبیه تابع  glcd_draw_rectangle  است .

تابع :

glcd_draw_fill_circle_rectangle(rgb_color_typedef   color ,glcd_cor_type  cir_rad,glcd_cor_type x1,glcd_cor_type y1 ,glcd_cor_type x2 , glcd_cor_type y2);

این تابع مانند تابع بالا است با این تفاوت که مستطیل یا مربع را به طور توپر رسم میکند .

**************************************************************

اضافه کردن به پروژه :

کافیست فایل graphic_lcd.h را به پروژه پیوست کنید و فایلی سورس و هدر کتابخانه را در جای مناسب درون پروزه قرار دهید .

 

در اینجا توضیحات مربوط به قسمت گرافیکی کتابخانه به پایان رسید .

امیدوارم استفاده برده باشید .

 در قسمت بعدی الزامات  راه اندازی  برای AVR  را شرح میدم .

با سپاس از توجه تان.

 

لینک قسمت قبل

لینکی قسمت بعد

 

مالکیت معنوی : لطفا کپی نکنید ، لینک بدید .

 

 
  BLOGFA.COM