باسلام
در میکرو ها تا جاییکه من دیدم برای دریافت از طریق سریال باید تعداد کاراکتر هایی که انتظار دریافتشونو داریم بدونیم تا بتونیم درست کار کنیم(حداقل در توابع هال و stm32 که من کار میکنم اینطوری هست....البته این در صورتی هست که بخواهیم دریافت همراه با وقفه داشته باشیم وگرنه میشه زمانی رو برای این کار مشخص کرد که دیگه میکرو روی این دستور متوقف میشه!!)
اما این موضوع یه سری جاها مشکل ساز میشه
بعنوان مثال من الان با ماژول وایفای esp8266 دارم کار میکنم،وقتی منتظر دریافت پیغامی از طریق ارتباط سریال از این ماژول هستم،حتما باید تعداد کاراکتر هارو مشخص کنم و از اونجایی که ممکنه همیشه تعداد کاراکتر هایی که قراره دریافت بشن مشخص نیست با مشکل مواجه میشم!!
البته یک راه کاری که دیدم اینه که تک به تک کاراکتر هاییکه دریافت میشن رو انالیز کنم و مثلا هر موقع به کاراکتر خاص از پیش تعیین شده ای رسیدم دریفات رو قطع کنم و کاراکتر های دریافتی رو پردازش کنم ولی این روش یک مشکلی داره و اونم اینه که با باودریت بالا تا این عملیات رو یک کاراکتر انجام بشه تعدادی کاراکتر از دست رفته و مجبور به کم کردن باودریت میشم!
این کار توی خود همین ماژول esp8266 پیاده سازی شده و تا وقتی کاراکتر های به کد اسکی ده و سیزده رو دریافت نکنه واکنشی نسبت به کاراکتر های قبلی نشون نمیده و این در عین حالیه که باودریت هم میتونه مقادیر بالایی داشته باشه
باتشکر از دوستان
در میکرو ها تا جاییکه من دیدم برای دریافت از طریق سریال باید تعداد کاراکتر هایی که انتظار دریافتشونو داریم بدونیم تا بتونیم درست کار کنیم(حداقل در توابع هال و stm32 که من کار میکنم اینطوری هست....البته این در صورتی هست که بخواهیم دریافت همراه با وقفه داشته باشیم وگرنه میشه زمانی رو برای این کار مشخص کرد که دیگه میکرو روی این دستور متوقف میشه!!)
اما این موضوع یه سری جاها مشکل ساز میشه
بعنوان مثال من الان با ماژول وایفای esp8266 دارم کار میکنم،وقتی منتظر دریافت پیغامی از طریق ارتباط سریال از این ماژول هستم،حتما باید تعداد کاراکتر هارو مشخص کنم و از اونجایی که ممکنه همیشه تعداد کاراکتر هایی که قراره دریافت بشن مشخص نیست با مشکل مواجه میشم!!
البته یک راه کاری که دیدم اینه که تک به تک کاراکتر هاییکه دریافت میشن رو انالیز کنم و مثلا هر موقع به کاراکتر خاص از پیش تعیین شده ای رسیدم دریفات رو قطع کنم و کاراکتر های دریافتی رو پردازش کنم ولی این روش یک مشکلی داره و اونم اینه که با باودریت بالا تا این عملیات رو یک کاراکتر انجام بشه تعدادی کاراکتر از دست رفته و مجبور به کم کردن باودریت میشم!
این کار توی خود همین ماژول esp8266 پیاده سازی شده و تا وقتی کاراکتر های به کد اسکی ده و سیزده رو دریافت نکنه واکنشی نسبت به کاراکتر های قبلی نشون نمیده و این در عین حالیه که باودریت هم میتونه مقادیر بالایی داشته باشه
باتشکر از دوستان
دیدگاه