3693
آموزش حرفه ای میکروکنترلرهای ARM ادمین: @mzarkoob مهندس مهدی زرکوب شروع مطالب : https://t.me/armeducation/1 اینستاگرام : @armeducation کانال ایتا: https://eitaa.com/armeducation همراه : 09359956361
تاثیر نویز و خواندن کلید در پروژه:
قبلا شرح دادیم که به چه صورت وقفه خارجی را فعال و کلید را میخواندید:
http://film.kavirdownload.ir//date/stmcube/STM32F4/3-2.mp4
ولی در عمل میبینید که لازم است کلید به شیوهای مناسب دیبانس (Debounce) گردد، به طوری که هم در لحظه فشار دادن و هم در لحظه رها کردن کلید، نویز بر عملکرد تأثیر نگذارد، عملیات بیش از یک بار تکرار نشود و به صورت خودکار آغاز نگردد...
👈 تفاوت آموزش و انجام پروژه در اینجاست!
❓ این فرآیند چگونه باید برنامه نویسی شود؟
@armeducation
چالش دریافت پیوسته سریال با DMA توابع هال
برای دریافت پیوسته دیتا در پورت سریال به کمک DMA در توابع HAL بایستی در کیوب مد circular را انتخاب کنید. بعد از کد ژنریت بایستی در زیروال وقفه دریافت بعد از هر بار دریافت دیتا، آن را متوقف کنید و یک بار تابع HAL_UART_Receive_DMA را فراخوانی کنید. مشکل ما دقیقا سر همینه!
اگه یکم از عملکرد اطلاع داشته باشید میگید این چه مسخره بازیه و اگه اطلاع نداشته باشید در عمل ممکنه در پروژه دچار مشکل بشید.
این جا هم گفتم به جای یک فیلم، به صورت مختصر در دو عکس موضوع را منتقل کنم.
ادامش در کامنت ها ...
@armeducation
استفاده از لودسل در پروژه
قدم اول راه اندازی لودسل هست که یک عددی نمایش بده و موضوع دیگه اینکه این برنامه در پروژه درست کار بده و نیاز را برطرف کنه.
در این مورد به نظر شما چقدر تفاوت هست و با چه مواردی ممکن است مواجه شویم؟
@armrducation
جایگزینی یک قسمتی از عکس از فضای رم
در اینجا گفتم برای کیپد یک صفحه کامل در نظر نگیرم و حدود نصف صفحه را بگیره. ولی نمی خواهم بعد زدن back یا اینتر مجدد کل صفحه اصلی بارگذاری بشه.
ما قبلا یک تابعی نوشته بودیم که با دادن ورودی های لازم
RAM_TFT_part_Image (uint32_t ImageAddress,int Width,int Height,int W1,int H1,int x,int y)
فقط یک قسمت از عکس را از مکان مورد نظر نمایش میداد. این عکس در رم خارجی قرار داشت. البته میشه در فلش داخلی یا خارجی هم بذاریم.
اینجا بعد سالها مجدد همان تابع به کار اومد !
یادمه برای کشف الگوریتم این کار در اون پروژه خیلی وقت گذاشتم و در نهایت در دو حلقه for پیاده سازی شد. نمی دونم این کار را بدیم هوش مصنوعی بهمون یک تابع درست حسابی میده یا نه
@armeducation
فصل 5 فیلم F4-H7 در اسپات پلیر بارگذاری شد.
عزیزانی که قبلا مجموعه فیلم پیشرفته f4-h7 را تهیه کرده اند برای خرید فصل SD کارت( بیش از 10 ساعت) با تخفیف ویژه اطلاع بدید تا براشون فعال بشه.
کسانی که بعد از اسفند خرید داشتند هم براشون به صورت پیش فرض فعال شده است.
این فصل به صورت جداگانه هم قابل تهیه می باشد.
/channel/armeducation/1592
در صورت عدم امکان ارتباط در تلگرام :
🆔 @mzarkoob
📞 09359956361
در بله و ایتا می توانید پیام دهید.
@armeducation
دوره آموزش مقدماتی stm32
7 جلسه 4 ساعته حضوری بوده که در اسپات پلیر بارگذاری شده + مطالب کاربردی و تجربیات پروژه ها بعد هر جلسه و تمرین و پروژه های مربوطه در گروه تلگرامی کلاس
کسانی که قبلا فیلم آموزش مقدماتی و متوسط f1 و f4-h7 را خریداری کرده اند تخفیف بسیار ویژه (فقط 50 درصد هزینه این دوره) خواهند داشت.
سرفصل کلی در کامنت ها.
جهت اطلاع از جزییات و شرکت در دوره :
🆔 @mzarkoob
📞 09359956361
در صورت عدم امکان ارسال پیام در تلگرام، در بله یا ایتا پیام بدید.
@armeducation
🌱
“در این هفتسینِ زندگی، کنار سبزهٔ امید و سنبلِ عشق، آرزو میکنم سال ۱۴۰۵، برای شما سفرهای پر از سلامتی، دلی سرشار از شادی و آرامش و جیبهایی پر از برکت باشد.
سال نو در حالی از راه میرسد که دلهایمان با روزهای سخت همراه است،
اما بهار همیشه پیامآور امید و آغاز دوباره است.
امیدوارم سال جدید، آرامش و سلامتی را برای همه شما و خانواده گرامیتان به همراه داشته باشد
و روزهایی روشنتر پیش رویمان باشد.
نوروزتان پیروز 🌺
🎊🌼🎉🌷🍃
تاچ خازنی و استفاده در پروژه
وقتی از برنامه تاچ خازنی در پروژه استفاده کنید یکی از مواردی که باهاش مواجه میشید همینه که در عمل مشاهده می کنید.
https://aparat.com/v/fxb84wh
❓ چه برنامه نویسی باید انجام بشه تا این مشکل حل بشه؟
❓ آیا از وقفه تاچ میشه استفاده کرد؟
@armeducation
ارسال و دریافت سریال با DMA
در پروژه به خاطر عدم اتلاف وقت cpu گاهی لازم میشه دریافت و حتی ارسال پورت سریال را با DMA انجام بدیم. این برای مواردی هست که میکرو مرتب باید دیتای های زیادی را ارسال و دریافت کنه. حالا اگه با چندین USART میکرو این کار باید انجام شود که ضرورت استفاده از DMA خیلی بیشتر به چشم میاد. چون در غیر این صورت برای یک ارسال با تعداد کاراکتر بالا، میکرو باید منتظر بمونه و سرعت کار کم میشه و ...
در اینجا به دو صورت رجیستری و با توابع HAL میشه از DMA استفاده کرد. ولی در توابع هال انجام این کار ظاهرا کمی قلق داره. در این برنامه دیتایی که از سریال با dma دریافت شده بر روی همان سریال با dma باید ارسال شود.
اگه DMA در مد معمولی تنظیم بشه که فقط یک بار می تونید ارسال کنید و دفعه بعد کار نمیده.
اگه در مد چرخشی بذارید که بعد یک ارسال، مرتب این کار تکرار میشه. اگه بعد ارسال هم متوقف کنید که دیگه مجدد دریافت هم نمی کنه.
❓ در چه مواردی لازم شده در این پریفرال usart از DMA استفاده کنید و با چه چالش هایی در پروژه مواجه شدید؟
@armeducation
بررسی ریست شدن میکرو بعد پروگرام
به نظر شما در پروژه دوم، بعد از پروگرام، چرا میکرو ریست نشد و برنامه اجرا نشد!؟
https://aparat.com/v/kto75j7
👈 اگه برنامه بعد پروگرام، ریست نشه، تازه نبود 🔑 ریست خودشو نشون میده!
کانال تلگرام و پیج اینستاگرام :
@armeducation
بوت سریال
در نرم افزار stm32cubeprogramer میشه از گزینه سریال برای اتصال به میکرو استفاده کرد. ولی خوب یه شرط داره وگرنه مثل تصویر خطا میده. باید boot را زده باشید. البته boot0
حالا این به چه دردی می خوره؟
وقتی دیگه با پروگرامر نمیتونید میکرو را پروگرام کنید. این راهیه که میکروتون را نجات بدید. البته از نرم افزار flash loader هم میشه استفاده کرد ولی رو بعضی میکروها مکمنه کار نده.
این مقدمه مطلب بعدیه در مورد طراحی برد.
❓ تا حالا این حالت براتون پیش اومده ؟
@armeducation
گیر بودن پروگرام به آپدیت stlink
وقتی با stm32cubeide کار می کنید ممکنه با این پیغام مواجه بشید. در حالت عادی باید پروگرامر را آپدیت کنیم. ولی مسئله اینجاست که اگه اینترنت نبود باید چه کنیم؟
بله این اتفاق در این چند هفته که اینترنت قطع بود برام پیش اومد.
با کیل میشد پروگرام کرد ولی با cubeide نه.
یک راه اینه که از جیلینک استفاده کنیم. ولی اگه اونم دم دست نداشتیم چه؟
راه دیگه اینه که در IDE تنظیم کنیم بهمون هگز بده و اونو با cubeprogramer رو میکرو بریزیم. امیدوارم در این مسیر براتون مشکلی پیش نیاد که فکر نکنم دیگه راهی باشه و باید کاسه چه کنم دستتون بگیرید.
@armeducation
خطای اجرای stm32cubeide
اگه هنوز مثل من ویندوزتان ۷ هست ! باید بدونید دنبال نصب ورژن بالاتر این نرم افزار رو سیستمتون نباشید. به همین ورژن پایین اکتفا کنید. چون بعد کلی دانلود و نصب، موقع اجرا یه ضد حال می خورید و با این پیغام مواجه میشوید.
به نظرتون راه حلی داره ؟
@armeducation
اجرای عملی Custom USB Device HID
در قسمت قبل HID خالی بود و در اینجا تنظیمات را روی Custom قرار دادیم.
https://aparat.com/v/xitvhcw
در چند جای برنامه باید تغییرات بدیم تا کد بهمون کار بده.
@armeducation
دسترسی به فیلم های سری LPC
خریداران این ۴ مجموعه آموزشی که قبلا از پلیر کویر استفاده می کردند و الان قصد استفاده از این فیلم ها را دارند ولی با پیغام عدم دسترسی مواجه شدند، لطفاً بهم پیام بدید :
🆔 @mzarkoob
📞 09359956361
@armeducation
Use latest available
در مدت طولانی که نت کلا قطع بود من نمی دونم کیوب از کجا متوجه شده بود که st برای پک F1 یک ورژن بالاتر داده و تنظیماتش رفته بود رو 1.8.7 ؟ 🤔
شما می دونید !؟
@armeducation
آپدیت فیلم مقدماتی متوسط F1 و F4-H7
فعلا یک جلسه از دوره حضوری را در اسپات به این دو دوره اضافه کردم.
کسانی که لایسنس اسپات دارند براشون قابل استفاده هست.
@armeducation
اتصال لودسل به میکروکنترلر
در صورتی که در پروژهای اندازهگیری وزن ضروری باشد، استفاده از لودسل الزامی است. برای این منظور، نیاز به یک ماژول واسط میباشد که پیشنهاد میشود از ماژول Hx711 استفاده کنید. لودسلها در مدلهای مختلفی موجود هستند، از جمله انواع 8 سیمه و 5 سیمه. در حال حاضر، کافی است چهار سیم خروجی لودسل را به ماژول متصل نمایید: قرمز، مشکی، سبز و سفید. چهار پایه خروجی سنسور نیز به میکروکنترلر متصل میشوند که دو تای آن مربوط به تغذیه و دو تای دیگر مربوط به داده (Data) و کلاک (Clock) هستند.
در صورتی که سختافزار و اتصالات به درستی انجام شده باشد و برنامه مناسبی بر روی میکروکنترلر بارگذاری گردد، میتوانید مقادیر لودسل را خوانده و دریافت کنید.
❓ در صورتی که با لودسل کار کرده اید، با چه چالشهایی مواجه شدید؟
@armeducation
دوره متوسطه هم در اسپات پلیر بارگذاری شد.
دوره آموزش متوسط stm32
7 جلسه 4 ساعته حضوری بوده + مطالب بعد هر جلسه و تمرین و تجربیات پروژه های مربوطه
سرفصل کلی در کامنت ها
کسانی که قبلا فیلم آموزش مقدماتی متوسط و پیشرفتهf1 و f4 را خریداری کرده اند تخفیف بسیار ویژه خواهند داشت.
جهت شرکت در دوره :
🆔 @mzarkoob
📞 09359956361
در صورت عدم امکان ارسال پیام در تلگرام در بله یا ایتا پیام بدید.
@armeducation
وارد کردن عدد اعشار
یک نیازی که در پروژه ممکنه لازم بشه وارد کردن یک رقم به صورت اعشار از کیپد هست. با یک سری موارد برنامه نویسی میشه این کار را انجام داد. واقعا یک باگ هست اگه انجام نشه. فکرشو بکنید بشه چند تا دات زد!
یک تنظیم دیگه اینکه بخواهیم رقم اعشار با چه دقتی باشه
سوال این جاست که آیا تمام این ملاحظات را باید در پروژه برای برنامه نویس مشخص کنند یا خودش باید پیش فرض در نظر بگیره و انجام بده و در زمان و قیمت لحاظ کنه؟
@armeducation
داشتم تصمیم میگرفتم کانالم در ایتا و بله را فعال کنم
ولی انگار نت در حال باز شدنه !
ورژن جدید فیلم آموزش کاربردی زبان C در میکروکنترلرهای ARM .
سرفصل :
https://kavirelectronic.ir/eshop/film/1201312-c-v2.html
جهت خرید :
🆔 @mzarkoob
📞 09359956361
پاسخگویی به سوالات فیلم در گروههای مربوطه.
- کامل ترین مجموعه آموزشی
- شرح تمام موارد برنامه نویسی مورد نیاز در مجموعه فیلم های آموزش میکروکنترلرهای arm
@armeducation
تفاوت دو فونت ساخته شده
در نوشته بالا از نرم افزار ساخت فونتی استفاده شده که کاراکتر را وسط قرار نمیده
در نوشته پایین از برنامه دیگری استفاده شده که کاراکتر را وسط میذاره
تفاوت مشخصه. در یک رشته که می خواهیم روی TFT قرار دهیم باید فاصله بین کاراکترها مناسب باشه وگرنه خیلی ضایع خواهد شد!
👈 بالاخره بعد سالها در پروژه ای لازم شد و این موضوع را از پایه درستش کردم
@armeducation
فیلم آموزش مقدماتی و متوسط میکروکنترلر STM32F429 و STM32F767 و STM32H7
https://kavirelectronic.ir/eshop/film/1201311-film-stm32f429-stm32h743-stm32f767-stm32h750.html
پاسخگویی به سوالات فیلم در گروههای پشتیبانی.
جهت خرید :
🆔 @mzarkoob
📞 09359956361
- کامل ترین مجموعه آموزشی
@armeducation
الزامات سخت افزاری برای استفاده از بوت سریال
تا حالا شده این موارد را انجام نداده باشید و اسباب زحمت براتون شده باشه؟ می دونید کاسه چه کنم چیه و از کجا میشه تهیش کرد!؟
https://aparat.com/v/fdjp4dh
❓ برای ریست به نظرتون چرا بعد تنظیمات لازم بعد پروگرام، برنامه ریست نمیشه؟
@armeducation
عدم اتصال پروگرامر با cubeprogramer
در اینجا دو پروگرامر stlink داریم. هر دو پروگرامر از کیل و IDE میشه پروگرام کرد ولی همان طور که در تصویر میبینید پروگرامر بالایی در STM32CubeProgrammer اصلا سریال را شناسایی نمی کنه، چه برسه کانکت بشه!
در قسمت قبلی گفتم گاهی لازم میشه بخواهید فایل هگز را روی میکرو بریزید. اون موقع هست که تازه متوجه میشید چه پروگرامری خریدید!!
اول گفتم در یک فیلم این موضوع را نشون بدم ولی دیدم با یک عکس هم میشه مطلب را منتقل کرد.
پروگرامر بالایی را از یک مغازه خریدند و پروگرامر پایینی برای خودمه که قبلا از کویر گرفتم.
@armeducation
دردسر کار با stm32cubeide
این محیط برای برنامه نویسی میکروهای arm خیلی خوبه ولی در مورد custom یک مشکلی هست.
در مواردی بعد باز کردن پروژه ساخته شده با این نرم افزار و کامپایل، یک خطا عجیب بهمون میده. تا وقتی که فایل کیوبش باز نشه و مجدد کدژنریت نشه(روی گزینه چرخ دنده باید بزنیم) این خطا هم هست.
❓خوب این چه مشکل و دردسری داره!!؟
👈 در قسمت قبلی برای USB برای حالت custom گفتیم که بعد ایجاد کد، باید در برنامه تغییراتی بدیم. خوب مسلما بعد کدژنریت، مقداری از این تغییرات میپره! بنابراین بایستی مجدد این تغییرات را اعمال کنیم. برای کسی هم بفرستیم نمیتونه کامپایل کنه و بعد کد ژنریت مجدد، قسمت usb کار نمی کنه.
به نظر شما این مشکل راه حلی داره ؟
@armeducation
باگ USB Device HID در کیوب میکروی stm32h7
اگر روال گفته شده برای تبادل دیتا در این کلاس کاری را برای میکروی stm32h7 انجام دهید در یک جا خواهید دید که برنامه تبادل دیتا هنگ می کند.
برای بار اول که write را بزنید از سیستم به میکرو دیتا ارسال می شود. ولی برای بار دوم این برنامه هنگ می کند! مسلما اگر در تست به یک بار ارسال اکتفا کنید متوجه این ایراد نخواهید شد.
این موضوعی هست که در کامنت های این آموزش در موردش صحبت شده :
https://community.st.com/t5/stm32-mcus/how-to-implement-a-usb-device-custom-hid-class-on-stm32-part2/ta-p/49437
در کامنت ها گفته شده که تابع USBD_CUSTOM_HID_DataOut را چه چیزی باید بذارید تا درست بشه. با دقت در این تابع و تابعی که کیوب در میکروی stm32f1 ایجاد کرده متوجه میشید که کیوب در این میکروی stm32h743 یک خط کد کمتر ایجاد کرده. و این چیزیه که اگه جایی نمی دیدیم محال بود به این راحتی ها پیداش کنیم.
معمولا از این دست خطاها در آموزش ها ازش صحبتی نمیشه و از میکرویی استفاده میشه که این موارد براش پیش نیاد.
❓نظر شما در مورد این باگ کیوب چیه؟
@armeducation
اجرای عملی USB Device HID
در این قسمت چند تنظیم لازم برای استفاده از HID در کیوب انجام شده و با یک تابع یک ارسال را در عمل تست کردیم. همین طور شرح دادیم که این روش چه ایرادی داره.
https://www.aparat.com/v/gyji637
می خواستم در چند دقیقه این راه اندازی را شرح بدم ولی شد ۲۰ دقیقه ! عوضش فکر کنم حق مطلب ادا شد.
❓به نظر شما دلیل ایراد شرح داده شده چیه؟
@armeducation