سلام
من میخوام یه سری دیتا با یه فرمت خاص، مثلاً (0x01,0x05,0xf,.....) را به وسیله usart به AVR ارسال کنم و با میکرو بخونم.
مثلاً اگه بخوام همون دیتا رو به صورت flash unsigned char arr[] {0x01,0x05,0xf,.....) } ذخیره کنم باید چیکار کنم؟
اگه با ارسال و در یافت مشکل داره یه مقاله توی سایت هست برای این کار از صفر توضیح داده
ممنون از راهنمایی شما
من اونا رو خوندم اما بازم نتونستم جوابمو پیدا کنم.
من میخوام با کامپیوتر یه سری آرایه با فرمت 1,20,45,128,248,78,.... ارسال کنم و بعد با میکرو بخونم و به صورت آرایه {arr[]{1,20,45,128,248,78 ذخیره کنم.
ممکنه راهنمایی کنید.
با تشکر
ببین همش که یه دفه باهم جواب نمی ده باید تیکه تیکش کنی
ارسال با پرت سریال تو کامپیوتر رو بلدی؟
راسال که می کنی درست ارسال می شه؟
درست در یافت می شه ؟
ذخیره می شه؟
کار با usart رو بلدم. وقتی که یک کاراکتر رو ارسال می کنم درست کار میکونه.
اما چندتا که با هم ارسال می شه کار نمی کنه.
من فکر کنم برای دریافت همچین فرمتی باید از یه حلقه استفاده کنم.
اما نمی دونم چطوری توی یه آرایه ذخیره کنم.
من این کار رو برا تابلو روان میخوام.
می خوام متنم رو با سریال برا تابلو ارسال کنم.
بهترین کار پک کردن داده است
مثلا
شما باید اطلاعات رو به صورت string بفرستی
و به صورت string دریافت کنی
اگثر دستگاهای سریال از این استاندارد استفاده می کنن
یعنی اطلاعاتی که برای کاربر هم معنی داشته باشه
مثلا AT Command ها
این جوری حتی فونت هم قابل ارساله مثلا
یا میتونی ساعت برد رو به روز کنی
توجه تمامی دستورات بالا توسط برنامه نویس باید تعریف بشه
مثلا برنامه نویس تعریف کرده که اگر دیدی رشته ای با str= شروع شد str= رو حذف کن و به جای پیام نشون بده و ....
فکر کنم مشکل ایشون ارسال پشت سر هم داده هاست ارسال یه کارکتر زمان می بره و اگر داده بعدی رو به سرعت پشت سر اون ارسال کنی داده ها رو از دست می دی (یکی در حال ارسال می تونی داشته باشی یکی هم در بافر پرت سومی اگه ارسال بشه از دست می ره)
باید اطلاعات رو توی یه بافر قرار بدی و صبر کنی تا یکی یکی ارسال بشن
بهتر اول و آخر داده ها رو هم با یه کارکتر یا رشته خاص مشخص کنی که دوتا دسته داده با هم قاطی نشن مثلا داده ها رو داخل <> قرار بده
خیلی ممنون از شما دوستان.
من کاراکترها را در فرستنده با علامت , از یکدیگر جدا کرده ام. مشکلم اینه که نمی دونم چطور در گیرنده میکرو بادیدن علامت , آن را پایان یک کاراکتر فرض کند و پس از ذخیره کردن در یک آرایه سراغ کاراکتر بعدی رود. من حتی پایان کاراکترها رو هم صفر گذاشتم اما باز هم قاطی می کنه.
سلام اگه سرعت برات مهم نیست می تونی از دستورات کار با رشته مثل جستجو و برش استفاده کنی
اگه سرعت بالا مد نظرته باید با حلقه فور این کار رو انجام بدی