سلام
دوست عزیز تا حالا هر کسی توی ارتباط سریال مشکل داشته یکی از موارد زیر رو رعایت نکرده :
1- جای پایه های txd و rxd رو اشتباه زده (پایه rxd ( گیرنده داده سریال ) به پایه txd (فرستنده داده سریال )متصل میشه
2- فرکانس کاری میکرو که توی برنامه نوشته میشه با فرکانس کریستالی که میکرو به اون متصل هست یکی نیست ، همه میگن ما یه کریستال به همون اندازه به میکرو متصل کردیم ، در حالی که باید فیوز بیت کریستال رو هم برنامه ریزی کنن ، در این حالت اگه کریستال رو از میکرو جدا کنید ، میکرو خاموش میشه
3- با استفاده از کریستال های 1.8432-3.6864-7.3728-11.0592-14.7456 مگا هرتز انتقال داده بدون هیچ خطایی انجام میشه ، بقیه کریستال ها .16 درصد خطا داره و این مقدار در هنگام استفاده از کریستال داخلی به 1 تا 20 درصد میرسه ، پس بهتر که از کریستال خارجی استفاده بشه و کریستال یکی از موارد یاد شده باشه
4-در صورتی که برنامه داده رو به پورت سریال میفرسته بهترین مقدار برای خازن 2.2 میکرو فاراد هست .
5-در ارتباط سیم گراند حتما باید وجود داشته باشه
6-
و در نهایت یه نکته مشکوک توی برنامه شما (البته من به c زیاد وارد نیستم)
شما برای دریافت سریال باید از تابعgetchar( ) و برای ارسال از تابع () putchar استفاده کنید که من این دو تا تابع رو توی برنامه شما نمیبینم
و شما توی اولین پست گفتید که اطلاعات را از یک پورت به پورت دیگه میدید ، در حالی توی برنامه فقط USART1 راه اندازی شده
و در ضمن من جایی ندیم که کاکتری به نام d معرفی شده باشه و ارسال بشه
و در اخر شما توابع رو برای چی میفرستید ؟
و پاسخ سوال ها :
نقل قول: البته من فکر میکنم که هنگام قطع و وصل سیم حداقل یکی دو بایت از اطلاعات را از دست بدهم ولی در این برد تا زمانیکه کابل راقطع و وصل نمیکردم همه کاراکترها مثل هم بود ولی کد 100 نبود
هنگامی که شما کابل رو قطع میکنید کلیه اطلاعات از بین میره ، توی n کیلو بایت اطلاعات ، اگه بیت هم از بین بره کل اطلاعات از دست رفته ، برای ارتباط سریال خطای کم تر از .2 درصد مورد قبول هست ، در صورتی که خطا از این حد بیشتر بشه ، هیچ داده ای نمایش داده نمیشه .
نقل قول: آیا ممکن است یک ایسی تمام بخشهایش به خوبی کارکند و در یک بخش بطور ذاتی مشکل داشته باشد
این احتمال بسیار کم هست ، معمولا توی یه سری از میکرو های جدید ، فقط سیستم ریست و کریستال (بالای 15 مگا هرتز )کار نمیکرد
نقل قول: ایا استفاده از قطعات SMD باعث میشود که نویز یا عامل دیگری نتیجه کار را خراب کند
ایا شما در کنار منبع نویز هستید ؟
معمولا این قطعات در صورتی که نویز زیاد باشد درست کار نمیکنند (همه قسمت ها از کار میافتد ) در صورتی که کابل شما بلند باشد (بیشتر از 5 متر ) و فاقد شیلد باشد (روکشی از جنس الومنیم یا مس که دور سیم میپیچند و شما باید ان را به زمین مدار متصل کنید ، معمولا کلیه کابل های که برای این منظور ساخته میشن دارای شیلد هستند ) و سیم زمین درست ممتصل نشده باشد ، ممکن است دتسگاه ها به خوبی کار نکنند