من به دلیل محدودیت سیم کشی و تعداد پین ناچار شدم که ال سی دی رو از میکرو اتمگا32 فاصله بدم. تصمیم گرفتم که نزدیک ال سی دی یک اتمگا 8 قرار بدم و بوسیله UART دو میکرو رو به هم متصل کنم.
برای ارسال ابتدا بوسیله دستور sprintf خط اول ال سی دی رو در یک آرایه قرار میدهم و سپس با puts آرایه رو ارسال میکنم. برای دریافت هم با تابع scanf داده رو خوانده و در یک آرایه ذخیره میکنم.
مشکل اصلی اینه که تابع scanf اتمام داده رو به کد 0x0D یا جای خالی میبینه و در متن ارسالی من هم space وجود داره. متن تکه تکه و نامفهوم نمایش داده میشه....
برای ارسال آرایه که شامل کاراکتر جای خالی هست باید چه کنم؟
یه ایده به ذهنم اومد که کتابخانه stdio رو دستکاری کنم و یک کاراکتر بی استفاده رو به عنوان انتهای آرایه قرار بدم ولی نتونستم....
(اکثر تاپیک های مرتبط رو سرچ کردم و خوندم ولی تاپیک مشابه نبود.)
برای ارسال ابتدا بوسیله دستور sprintf خط اول ال سی دی رو در یک آرایه قرار میدهم و سپس با puts آرایه رو ارسال میکنم. برای دریافت هم با تابع scanf داده رو خوانده و در یک آرایه ذخیره میکنم.
مشکل اصلی اینه که تابع scanf اتمام داده رو به کد 0x0D یا جای خالی میبینه و در متن ارسالی من هم space وجود داره. متن تکه تکه و نامفهوم نمایش داده میشه....
برای ارسال آرایه که شامل کاراکتر جای خالی هست باید چه کنم؟
یه ایده به ذهنم اومد که کتابخانه stdio رو دستکاری کنم و یک کاراکتر بی استفاده رو به عنوان انتهای آرایه قرار بدم ولی نتونستم....
(اکثر تاپیک های مرتبط رو سرچ کردم و خوندم ولی تاپیک مشابه نبود.)
دیدگاه