یکی از مراحل انجام کار بعد از راه اندازی اولیه پریفرال ها و اجرای الگوریتم به کد، رفع ایرادات برنامه ( دیباگ) است. با رعایت کردن اصولی می توان جلوی بعضی ایرادات ساده را گرفت.
- در پست قبلی :
https://news.1rj.ru/str/armeducation/245
یکی از موارد ایجاد باگ، کپی نادرست ذکر شد.
- در پیکربندی یک پریفرال تنظیماتی هم که به صورت پیش فرض انجام شده، نیز قرار دهید. به عنوان نمونه پاور در سریال 0 در lpc1768 به صورت پیش فرض فعال است. ولی در سریال 2 فعال نیست. در صورتی که این تنظیم را در سریال 0 قرار ندهیم و بخواهیم در کاری سریال 0 را به 2 تغییر دهیم، فراموش می کنیم پاور را فعال نکرده ایم!
- تمام تنظیمات شامل کلاک و پاور، تنظیمات پایه، تنظیمات خود پریفرال تنظیمات زیرروال وقفه در یک جا قرار دهیم که در صورت نیاز به آن در برنامه دیگری با یک کپی بتوان همه تنظیمات را منتقل کرد و چیزی جا نمانده باشد.
- اینیشالیز به صورت درست انجام شده باشد و سایر را تنظیمات را تغییر ندهد :
https://news.1rj.ru/str/armeducation/177
به این ترتیب یک تنظیم انجام شده، سایر تنظیمات در آن رجیستر را بهم نمی زند.
- در نظر بگیرید بیت 0 رجیستری را به این صورت ست کرده باشید :
LPC_SC->EXTMODE = 1«0;
حال اگر همین قسمت را بخواهیم توسعه دهیم برای بیت 1 و .. :
LPC_SC->EXTMODE = 1«1;
به این ترتیب با ست شدن بیت 1، بیت 0 که قبلا ست شده بود ریست می شود! در حالی که اگر از اول به جای= از |= استفاده کرده بودیم در توسعه چنین خطایی ایجاد نمی شد.
👈 با دیباگ کردن از روی برد می توان به بسیاری از خطاها با تطبیق عمل انجام شده با چیزی که در ذهن بوده و پیاده سازی شده، پی برد. به این نکته توجه داشته باشید که گاهی دیباگ و رفع ایراد ممکن است بیش از زمان انجام اصل کار زمان ببرد!
@armeducation
- در پست قبلی :
https://news.1rj.ru/str/armeducation/245
یکی از موارد ایجاد باگ، کپی نادرست ذکر شد.
- در پیکربندی یک پریفرال تنظیماتی هم که به صورت پیش فرض انجام شده، نیز قرار دهید. به عنوان نمونه پاور در سریال 0 در lpc1768 به صورت پیش فرض فعال است. ولی در سریال 2 فعال نیست. در صورتی که این تنظیم را در سریال 0 قرار ندهیم و بخواهیم در کاری سریال 0 را به 2 تغییر دهیم، فراموش می کنیم پاور را فعال نکرده ایم!
- تمام تنظیمات شامل کلاک و پاور، تنظیمات پایه، تنظیمات خود پریفرال تنظیمات زیرروال وقفه در یک جا قرار دهیم که در صورت نیاز به آن در برنامه دیگری با یک کپی بتوان همه تنظیمات را منتقل کرد و چیزی جا نمانده باشد.
- اینیشالیز به صورت درست انجام شده باشد و سایر را تنظیمات را تغییر ندهد :
https://news.1rj.ru/str/armeducation/177
به این ترتیب یک تنظیم انجام شده، سایر تنظیمات در آن رجیستر را بهم نمی زند.
- در نظر بگیرید بیت 0 رجیستری را به این صورت ست کرده باشید :
LPC_SC->EXTMODE = 1«0;
حال اگر همین قسمت را بخواهیم توسعه دهیم برای بیت 1 و .. :
LPC_SC->EXTMODE = 1«1;
به این ترتیب با ست شدن بیت 1، بیت 0 که قبلا ست شده بود ریست می شود! در حالی که اگر از اول به جای= از |= استفاده کرده بودیم در توسعه چنین خطایی ایجاد نمی شد.
👈 با دیباگ کردن از روی برد می توان به بسیاری از خطاها با تطبیق عمل انجام شده با چیزی که در ذهن بوده و پیاده سازی شده، پی برد. به این نکته توجه داشته باشید که گاهی دیباگ و رفع ایراد ممکن است بیش از زمان انجام اصل کار زمان ببرد!
@armeducation
Telegram
arm-education.ir
بیشتر موارد با کپی کردن قسمت هایی از برنامه های مختلف، برنامه جدید خود را تکمیل می کنیم. بدین ترتیب در زمان خیلی کمتری کار جدیدی را شروع خواهیم کرد. در حین انجام این کار بسیار باید دقت کرد که به صورت درست محتوای کپی را مطابق میل بر اساس کار جدید، تغییر دهیم.…
مواردی که به عنوان نکات انجام کار و ... ذکر می شود(و گاها ساده به نظر میرسد!) نتیجه تجربیاتی هست که بارها و بارها برای بنده اتفاق افتاده و شاهد مواجه شدن دیگران با این موارد نیز بوده ام. به عنوان نمونه آخر از فن آموزان، در کاری لازم بود USART1 را به USART2 تبدیل کنند تا در برد قابل استفاده باشد. فقط یک جا انداختن تبدیل نکردن USART1 را به USART2 و در نتیجه کارنکردن برنامه، باعث معطلی و اتلاف زمان بی مورد شده بود.
@armeducation
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
از دوستان عزیز تقاضامندم در صورت تمایل، مطالب پست ها را تنها بصورت فوروارد در سایر گروها و کانال ها (و سایت ها) قرار دهند و از کپی کردن مطالب بدون ذکر مرجع خودداری کنند.
با تشکر
@armeducation
با تشکر
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
1-1- نحوه ایجاد پروژه در نرم افزار STM32CubeMX برای keil و پروگرام کردن بر روی میکروی stm32f103ve
لینک مشاهده در آپارات :
https://www.aparat.com/v/fExms
#آموزش_توابع_هال_F1
@armeducation
لینک مشاهده در آپارات :
https://www.aparat.com/v/fExms
#آموزش_توابع_هال_F1
@armeducation
همان طور که در فیلم آموزشی ایجاد پروژه در کیل با نرم افزار STM32CubeMX ذکر شد از این نرم افزار به عنوان کمکی برای تنظیمات اولیه پریفرال ها و ایجاد پروژه می توان استفاده کرد. این نرم افزار به همراه پک های آن را می توانید از سایت st دانلود نمایید :
http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
در قسمت Get Software خود نرم افزار STM32CubeMX قابل دانلود است که هر بار ورژن جدیدتر قرار داده می شود.
در قسمت Embedded Software نیز پک های هر سری از میکروهای stm32 قرار دارد که در که در فیلم آموزشی نیز ملاحظه شد چگونه از STM32CubeF1 استفاده شده است.
@armeducation
http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
در قسمت Get Software خود نرم افزار STM32CubeMX قابل دانلود است که هر بار ورژن جدیدتر قرار داده می شود.
در قسمت Embedded Software نیز پک های هر سری از میکروهای stm32 قرار دارد که در که در فیلم آموزشی نیز ملاحظه شد چگونه از STM32CubeF1 استفاده شده است.
@armeducation
STMicroelectronics
STM32CubeMX | Software - STMicroelectronics
STM32CubeMX is a graphical tool that allows a very easy configuration of STM32 microcontrollers and microprocessors, as well as the generation of the...
در این پست :
https://news.1rj.ru/str/armeducation/80
این سوال مطرح شد که :
- عملکرد این ماکرو به چه نحو است :
#define LED1_ON(x) ((x) ? (LPC_GPIO1->FIOSET = LED1) : (LPC_GPIO1->FIOCLR = LED1));
در ماکرو می توان به یک عبارت دیفاین شده، یک ورودی شرطی تعریف کرد. به عنوان مثال در عبارت ذکر شده، در صورتی که ورودی x برابر 1 باشد عبارت اول اجرا می شود (یعنی LPC_GPIO1->FIOSET = LED1) و اگر x برابر صفر باشد عبارت دوم اجرا می شود(یعنی LPC_GPIO1->FIOCLR = LED1) . عملگر (x) ? نیز یک if مختصر می باشد. به عنوان نمونه دیگر این ماکرو را در نظر بگیرید و عملکرد آن را بررسی کنید :
#define LCD_E(x) GPIOC->ODR = (GPIOC->ODR & ~PIN_E) | (x ? PIN_E : 0);
@armeducation
https://news.1rj.ru/str/armeducation/80
این سوال مطرح شد که :
- عملکرد این ماکرو به چه نحو است :
#define LED1_ON(x) ((x) ? (LPC_GPIO1->FIOSET = LED1) : (LPC_GPIO1->FIOCLR = LED1));
در ماکرو می توان به یک عبارت دیفاین شده، یک ورودی شرطی تعریف کرد. به عنوان مثال در عبارت ذکر شده، در صورتی که ورودی x برابر 1 باشد عبارت اول اجرا می شود (یعنی LPC_GPIO1->FIOSET = LED1) و اگر x برابر صفر باشد عبارت دوم اجرا می شود(یعنی LPC_GPIO1->FIOCLR = LED1) . عملگر (x) ? نیز یک if مختصر می باشد. به عنوان نمونه دیگر این ماکرو را در نظر بگیرید و عملکرد آن را بررسی کنید :
#define LCD_E(x) GPIOC->ODR = (GPIOC->ODR & ~PIN_E) | (x ? PIN_E : 0);
@armeducation
Telegram
armeducation
سوالات اولیه ای که معمولا برای کسانی که به کار با میکروکنترلرهای ARM شروع می کنند بسیار پیش آمده است و بسیار پرسیده شده است :
- این دستوراتی مثل
LPC_GPIO0->FIOSET = 0x03
و
LPC_GPIO0->FIOSET = (0x03) « 16;
چه بیت هایی را ست می کند. عملگر » در اینجا چه کاری…
- این دستوراتی مثل
LPC_GPIO0->FIOSET = 0x03
و
LPC_GPIO0->FIOSET = (0x03) « 16;
چه بیت هایی را ست می کند. عملگر » در اینجا چه کاری…
This media is not supported in your browser
VIEW IN TELEGRAM
با استفاده از سمپل کیل و اعمال تغییرات در آن، می توان روی پورت و پایه های مطلوب، نمایشی روی LCD کاراکتری انجام داد.
در اینجا با استفاده از میکروکنترلر STM32F103VE این نمایش انجام شده است.
@armeducation
در اینجا با استفاده از میکروکنترلر STM32F103VE این نمایش انجام شده است.
@armeducation
CLCD_stm32.rar
3.3 KB
کتابخانه کیل برای راه اندازی ال سی دی کاراکتری در میکروکنترلرهای stm32f10x
@armeducation
@armeducation
GLCD.rar
61.6 KB
کتابخانه راه اندازی ال سی دی گرافیکی (GLCD) با چیپ ks108
با تغییر دیفاین ها و اینیشیالیز اولیه، می توان برای میکروکنترلرهای مختلف از آن استفاده کرد.
برگرفته از فروم ایران میکرو
@armeducation
با تغییر دیفاین ها و اینیشیالیز اولیه، می توان برای میکروکنترلرهای مختلف از آن استفاده کرد.
برگرفته از فروم ایران میکرو
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
نمایش فونت های مختلف روی ال سی دی گرافیکی (GLCD)
در اینجا با استفاده از میکروکنترلر STM32F103RB این نمایش انجام شده است.
@armeducation
در اینجا با استفاده از میکروکنترلر STM32F103RB این نمایش انجام شده است.
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
2-1- نحوه تنظیمات در نرم افزار STM32CubeMX برای خروجی کردن پایه ها و استفاده از توابع به منظور ست و ریست کردن آن در کامپایلر keil
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://www.aparat.com/v/Hedix
#آموزش_توابع_هال_F1
@armeducation
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://www.aparat.com/v/Hedix
#آموزش_توابع_هال_F1
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
2-2- نحوه تنظیمات در نرم افزار STM32CubeMX برای ورودی کردن پایه ها و استفاده از توابع HAL به منظور خواندن وضعیت پایه در کامپایلر keil
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://aparat.com/v/aPQ0R
#آموزش_توابع_هال_F1
@armeducation
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://aparat.com/v/aPQ0R
#آموزش_توابع_هال_F1
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
3-1- نحوه تنظیمات در نرم افزار STM32CubeMX برای وقفه خارجی و اجرای عملی در کامپایلر keil
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://aparat.com/v/CWdqg
#آموزش_توابع_هال_F1
@armeducation
میکروی stm32f103ve
لینک مشاهده در آپارات :
https://aparat.com/v/CWdqg
#آموزش_توابع_هال_F1
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
This media is not supported in your browser
VIEW IN TELEGRAM
نحوه تنظیمات در نرم افزار STM32CubeMX برای پورت سریال و ارسال یک رشته
کامپایلر keil
برد
stm32f103ve
#آموزش_توابع_هال_F1
@armeducation
کامپایلر keil
برد
stm32f103ve
#آموزش_توابع_هال_F1
@armeducation
نحوه تنظیمات در نرم افزار STM32CubeMX برای پورت سریال و ارسال یک رشته
"فیلم کیفیت بالا " در آپارات :
https://www.aparat.com/v/EQ0Aj
@armeducation
"فیلم کیفیت بالا " در آپارات :
https://www.aparat.com/v/EQ0Aj
@armeducation
آپارات - سرویس اشتراک ویدیو
تنظیمات در نرم افزار STM32CubeMX برای پورت سریال
نحوه تنظیمات در نرم افزار STM32CubeMX برای پورت سریال و ارسال یک رشته
کامپایلر keil
،فیلم کیفیت بالا برد stm32f103ve وب سایت: www.arm-education.ir کانال تلگرام مطالب آموزشی میکروکنترلرهای آرم : https://news.1rj.ru/str/armeducation
کامپایلر keil
،فیلم کیفیت بالا برد stm32f103ve وب سایت: www.arm-education.ir کانال تلگرام مطالب آموزشی میکروکنترلرهای آرم : https://news.1rj.ru/str/armeducation
دانلود نرم افزارهای مرتبط با میکروکنترلرهای ARM :
http://zarkoob.persiangig.com/software/
پسورد :
www.arm-education.ir
@armeducation
http://zarkoob.persiangig.com/software/
پسورد :
www.arm-education.ir
@armeducation
روال ارسال یک بایت به ایتوپرام خارجی با ظرفیت 2K بیتی .
- استارت زدن
- ارسال آدرس سخت افزار
- تایید
- ارسال آدرس رایت شدن دیتا
- ارسال یک بایت دیتا
- استپ کردن
@armeducation
- استارت زدن
- ارسال آدرس سخت افزار
- تایید
- ارسال آدرس رایت شدن دیتا
- ارسال یک بایت دیتا
- استپ کردن
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
دریافت یک کاراکتر و رشته از پورت سریال با استفاده از توابع HAL
کامپایلر keil
برد stm32f103ve
#آموزش_توابع_هال_F1
@armeducation
کامپایلر keil
برد stm32f103ve
#آموزش_توابع_هال_F1
@armeducation
دریافت یک کاراکتر و رشته از پورت سریال با استفاده از توابع HAL
"فیلم کیفیت بالا " در آپارات :
http://www.aparat.com/v/yJWjK
@armeducation
"فیلم کیفیت بالا " در آپارات :
http://www.aparat.com/v/yJWjK
@armeducation
آپارات - سرویس اشتراک ویدیو
دریافت رشته از USART با استفاده از توابع HAL
دریافت یک کاراکتر و رشته از پورت سریال با استفاده از توابع HAL
کامپایلر keil
،فیلم کیفیت بالا برد stm32f103ve وب سایت: www.arm-education.ir کانال تلگرام مطالب آموزشی میکروکنترلرهای آرم : https://news.1rj.ru/str/armeducation
کامپایلر keil
،فیلم کیفیت بالا برد stm32f103ve وب سایت: www.arm-education.ir کانال تلگرام مطالب آموزشی میکروکنترلرهای آرم : https://news.1rj.ru/str/armeducation