# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > مبتدی: مشکل در ارتباط سریال میکرو

## hashemys

سلام دوستان
من مدار ارتباط میکرو با پورت سریال را ساختم
اما هرچه پروگرامش میکنم که مثلا hello را به پورت سریال ارسال کنه ، به جاش یک  سری عدد و حروف کاملا بی ارتباط به این کلمه را ارسال می کنه و در محیط ترمینال codevision نمایش میده
به نظر شما مشکل کجاست؟
متشکرم که راهنمایی می کنید :لبخند:

----------


## ژوپیتر

Baud Rate درست تنظیم کنید، Stop Bit بقیه تنظیمات هم باید یکسان باشند. در ضمن به ازای کلاک اصلی باود ریتهای مختلفی با ایرور ریتهای مختلفی ساخته میشن که توی دیتاشیت میکرو هست.

موفق باشید.

----------


## hashemys

> Baud Rate درست تنظیم کنید، Stop Bit بقیه تنظیمات هم باید یکسان باشند. در ضمن به ازای کلاک اصلی باود ریتهای مختلفی با ایرور ریتهای مختلفی ساخته میشن که توی دیتاشیت میکرو هست.
> 
> موفق باشید.


Baud Rate و  Stop Bit  در هر دو طرف یکسانه یعنی طرف میکرو را codewizard و طرف کامپیوتر هم در تنظیمات ترمینال codevision بصورت یکسان تنظیم شده
9600 & 8data 1stop no parity. 
ببخشید میشه  "ایرور ریتهای مختلف" را توضیح بدید ؟

----------


## farzadsw

فکر میکنم شما کلاک میکروتون درست نیست . کلاکی که تو codevision تنظیم کردید چند MHz هست ؟ همون رو باید با استفاده از فیوز بیتها ، موقع پروگرم کردن اعمال کنید . از طرف دیگه چون به طور پیش فرض میکرو کلاکش 1MHz هست ، میتونید تو کد ویژن کلاک رو همون 1 مگ تنظیم کنید تا نیازی به تغییر فیوز بیت نباشه.

----------


## zahra jalili

سلام
میشه کمکم کنید.
من قراره یه برنامه بنویسم که با زدن دکمه ای در کی پد میکروی اول یه سری کار تو میکروی دوم انجام بشه و تو lcd نمایش بده.
میشه لطف کنید بگید این ارتباطو چیجوری برقرار کنم.با زبان bascom

----------


## hashemys

> فکر میکنم شما کلاک میکروتون درست نیست . کلاکی که تو codevision تنظیم کردید چند MHz هست ؟ همون رو باید با استفاده از فیوز بیتها ، موقع پروگرم کردن اعمال کنید . از طرف دیگه چون به طور پیش فرض میکرو کلاکش 1MHz هست ، میتونید تو کد ویژن کلاک رو همون 1 مگ تنظیم کنید تا نیازی به تغییر فیوز بیت نباشه.


 کلا من یک جا هست که فرکانس تنظیم می کنم اونم توی code wizard ، جایی که نوع تراشه رو مشخص میکنم ، کنارش فرکانس کاریش رو مشخص می کنم. در قسمت usart هم بوود ریت رو میذارم  9600 و بعد در ترمینال کدویژن هم همون 9600 رو میذارم. اما عموما جواب نمیده و یه سری حروف بی ربط می یاد . ولی اگه تو ترمینال روی 4800 بذارم کلمه ای که میکرو میفرسته رو می گیرم اما غلط و غولوط هم توش داره . حس میکنم اون فرکانسی که من توی کد ویزارد تعیین میکنم کاری انجام نمیده و فرکانس میکرو از جای دیگه تعیین شده. مثلا فرمان delay هم که میدم بجای 1 ثانیه نیم ثانیه یا کمتر در ترمینال صبر میکنه !  
آیا من باید فرکانس رو از جای دیگه ای تنظیم کنم؟
منظورتون از اینکه "با استفاده از فیوز بیتها ، موقع پروگرم کردن اعمال کنید" چیه ؟ یعنی ازکجا؟ چه جوری؟

----------


## farzadsw

اون فرکانسی که تو کد ویزارد تعیین میکنید در حقیقت هیچ کاری روی  میکرو نمیکنه و برای خود کامپایلره ، برای اینکه فرکانس میکرو رو تغییر بدید باید فیوز بیتها (fuse bit) رو تنظیم کنید تا فرکانس میکرو تون تغییر کنه . فیوزبیتها رو با استفاده از پروگرمر باید تغییر بدید . 
اگر نمیدونید چطوری فیوز بیت رو تغییر بدید  ، تو اینترنت مطلب زیاده ، غیر از اون میتونید کلاک رو تو کد ویژن 1 مگ تعیین کنید چون کلاک میکرو به صورت کارخونه ای 1 مگ هست (لازم نیست فیوز بیت رو عوض کنید) .

در مورد ارتباط با سریال با بسکام تو تاپیک "کنترل وسیله برقی توسط کامپیوتر(rs232/LPT)" توضیح داده شده.

----------

