سلام
در مثال usb بخش پورت سریال مجازی(CDC) ، زمانی که حلقه به تابع USBD_CDC_ACM_DataRead می رسد منتظر دریافت رشته میماند یا از ان عبور میکند؟
باتشکر
سلام
در مثال usb بخش پورت سریال مجازی(CDC) ، زمانی که حلقه به تابع USBD_CDC_ACM_DataRead می رسد منتظر دریافت رشته میماند یا از ان عبور میکند؟
باتشکر
در توضیحات از تابع USBD_CDC_ACM_GetChar استفاده شده که این تابع هم تا انجا که یادمه فکر نکنم منتظر بمونه. در در برنامه ای مثل کن تا چیزی دریافت بشه وقفه میده.
تست کردید عملکردش را؟
سلام آقای زرکوب خسته نباشید
من برد لندتاگر دارم و با آموزش های شما دارم روش کار می کنم کارا خوب پیش رفته فقط ! ... این پورت سریال ادا در میاره !
همون اول من پورت سریال رو تنظیم می کنم با دستور UART0_Init(); و بعدش وقتی یک دستور ساده printf می زنم و رو برد پروگرم می کنم دیگه برنامه ها ران نمی شن و برد خشکش می زنه
اون دستور printf و یا بقیه توایع سریال این ادا رو درمیارن و وقتی که اونا رو حذف می کنی دوباره برنامه عادی ران می شه
می نگاهی به تابع تنظیم پورت سریال انداختم .... که برای CIM0 برد هست .... همه چی درست بود
مشکل له نظرتون از کجاست؟
سلام مهندس در پروتکل can اگه خطایی صورت گیرد باید در روال وقفه خطا کد نویس کنیم و تمهیدات رو در نظر بگیریم؟
در فیلم آموزشی اشاره ای به روش تشخیص خطا نشده
کد کامل دارید در این مورد؟
لایک داری آقای زرکوب دلم براتون تنگ شده بود
بله ممنون آقای زرکوب .... به خاطرretarget.c بود ..... البته مشکلات ریز دیگه ای هم بود که بر طرف شد
آقای مهندس زرکوب
من الان برنامه ها رو نوشتم .... تو حالت عادی خیلی خوب جواب می ده
برنامه من اینه که از پورت CAN می گیره و هم رو TFT السیدی داده ها رو نشون می ده و هم به پورت سریال می فرسته برای کامپیوتر
تو کامپیوتر هم خودم یک برنامه دیتا لاگیر نوشتم با #C که داده ها رو به صورت باینریو هگز و کاراکتری نشون می ده .... یک چیزی حتی بهتر از Hyper terminal
حالا دو تا مشکل دارم تو این مرحله :
1- کلا وقتی می خوام Hyper رو به پورت کام بردم وصل کنم با همون وصل کردن .... برد هنگ می کنه و ال سی دی سفید می شه و وقتی disconnect می شکنم از رو پورت کام .... برنامه برد دوباره با روال عادی ادامه پیدا می کنه
حالا با برنامه خودم فقط بار اول این طور می شه و وقتی برد رو ریست می کنم قشنگ کار می کنه ولی برا Hyper کلا اصلا با Reset هم درست نمی شه
مشکل دوم تو برنامه نویسی انتراپت UART هست
من برنامه رو عادی می نویسم قشنگ با اون برنامه کامپیوترم کار می کنه هم داده می فرستم و هم داده می گیرم و فقط مشکل اینه که برنامه رو خط های GetString وای می سته
حالا برنامه رو اومدم رو اینتراپت نوشتم و تغییراتی که گفته بودید برای GetString و اضافه کردن کد های فعال سازی اینتراپت هم اضافه کردم ولی ...
وقتی مثلا یک جمله برا برد می فرستم .... خود حلقه اینتراپت تبدیل به یک لوپ بی نهایت می شه ..... یعنی فقط من یک جمله برا برد می فرستم و برد حی برنامه اینتراپت رو اجرا می کنه و اصلا از وقفه خارج نمی شه
مگه این بیته ای 2،3،4 رجیستر IIR مگه Self Clear نیستن ؟
خوب اینها چالش های انجام پروژه هست دیگه!
این موارد نمونه ای از چیزهایی است که ما هم برای انجام پروژه با آن مواجه ایم. وقتی پروژه با سخت افزار جلومونه چند روز ممکنه طول بکشه ایراد بفهمیم حل بشه حالا که دورادور توصیف مشکل میشنویم چطور میشه حلش کرد!؟
ولی در کل کا را قدم قدم پیش ببرید و دیباگم کمک میکنه.
آقای مهندس زرکوب می شه راهنمایی بفرمایید
من تو مقاله و این ور و اون ور خوندم که تو بعضی از کامپایلر ها این flag های اینتراپت ریست نمی شن و باید خودت flag اینتراپت مورد نظر رو صفر کنی
حالا flag این اینتراپت UART0 کدوم رجیستر هست؟ .... IIR , LSR که Read only هستن .... بقیه هم به قیافه شون نمی خوره .... بیشتر Enable/disable می کنن و flag نیستن
اینم بگم که من Keil 5.17 دارم استفاده می کنم و شاید تو Keil 4 این مشکل نبوده !!!
من از توابع NVIC هم تست کردم و تو خود اینتراپت Pending وقفه معوق رو خاموش کردم .... نتیجه عجیب بود ! .... تو مد Debug و تو حالت هایی که برنامه کامپیوترم تک جمله می فرستاد جواب داد ولی تو حالت Multi message و مد حالت عادی عملکرد میکرو بازم جواب نداد !!!
فقط آدرس و یا اسم رجیستر برای غیر فعال سازی وقفه رو می خوام
تا الان که با کیل 4.74 کار می کردم نیازی نبوده وقفه سریال پاک کنم زیرا تا دیتا ازش می خواندی خودش پاک میشد. کیل 5 هم برای میکروی stm32f0 استفاده کردم همین طور بود.
سلام ببخشید میشه بگین که
برای خرید lpc1768 از سایت کویرالکترونیک
سه مورد خرید پکیج داره
اونی که میگه:
بردEWB+درایو برد ssd1963
این درایو کاربردش چیه و چکار میکنه
و اینکه میگه:
بردEWB با ماژول ال سی دی 3.2
فرقش با قبلی چیه
این درایور یک واسط بین میکرو و ال سی دی است برای راه اندازی. در میکروی 1788 چون خودش درایو داخلی دارد دیگر نیازی به آن نیست و اتصال ال سی دی به میکرو به صورت مستقیم انجام می شود.
شاید منظور این درایو بوده. با این درایو ، tft lcd هایی که فلت 40 یا 50 پین دارند را می توان راه اندازی کرد.
سلام دوستان
تازه جلسه سوم فیلم آموزشی هستم. تا اینجا توضیحات واقعا خوب بوده. و تشکر دارم از تیم کویر و مهندس زرکوب.
من دارم با keil 5.18 کار می کنم و از لحاظ نصب pack و فایلهای startup مشکی با این ورژن نداشتم. یک پروژه چشمک زن هم باهاش کامپایل کردم بدون ارور. اما در دیباگ با سیمولاتور خود کیل مشکل دارم. هنگام دیباگ مدام اروری به شماره 63 یا 65 می ده که میگه مثلا به آدرس حافظه 0x4000ff88 اجازه دسترسی خواندن و یا نوشتن داده نشده است و دیباگ متوقف میشه. در کیل 4.74 با همون کد این مشکل وجود نداره. با تنظیمات یکسان. ممنون میشم راهنمایی کنید.
سلام
با کیل 5 این موارد را با این میکرو انجام نداده ام البته اینکه نرفتم با کیل 5 انجام بدهم فیدبکی بوده که دوستان در فروم می دادند که این مشکلات در این ورژن هست. هر چند که سایر قسمت های آن مشکلی نداره. خلاصه که این مشکلات یا از نقص سیمولاتور این ورژن است و نمیشه کاریش کرد یا اینکه تنظیمات خاصی داره و یا اینکه ما کرک می کنیم این طوره.
این مورد را هم بگم بعضی از مدلهای میکروها در کیل 4.7 که در سیمولاتور خود کیل نمیشه دیباگش کرد از روی برد حتما دیباگ می شود.
سلام
ببخشید چند تا سوال :
تو آموزش ها قسمت سخت افزاری پروژه ها هم توضیح داده شده
یعنی بدون بردهای آماده هم میتونیم پروژه ها رو انجام بدیم
یا مثلا مدار و نحوه پروگرام کردن و .....
برای راه اندازی اولیه یه میکرو بگیرم با مبدل smd to dip و کریستالش و رگولاتور 3.3 ولت کافیه؟
بقیشم روی برد برد با پورتا کار میکنیم
راستی برد smd به dip تو فروشگاه موجوده ؟
به نظر من یه برد آماده بگیرید بهتره
چون در غیر این صورت باید کل دیتاشیت رو برای قسمت های تغذیه مطالعه کنین.(که البته برای طراحی های بعدیتون واقعا مفیده)
و البته نکات ظریفی برای پروگرام کردن داره که نسبتا حجیمه.
ترجیحا برد مبدل سایت همسایه رو بگیرین