پاسخ : راه اندازی واحد USART در AT91SAM7S64 و ارسال و دریافت با HM-TR
خوب کار پیچیده تر میشه
برنامه تبدیل اسکی رو میزاری توی فرستنده به طوری که گیرنده رو وصل کنی به پورت سریال هم عدد بیاد هم حرف
بعد میای که اون کارکتر هارو بگیری چک میکنی اگه مقدارشون بین 48 و 57 بود اونا عدد هستند و توی یه رشته جدا بزار اگر غیر از این بود که هیچ نشون میدی
پاسخ : راه اندازی واحد USART در AT91SAM7S64 و ارسال و دریافت با HM-TR
سلام
الان با برنامه زیر روی LCD عدد 14600 نمایش داده می شود
کانفیگ Usart با دستور
usart0_init(2,9600);
فرستنده :
short i;
i = 12345;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Sending Data :"
sendchar(i & 0xFF);
sendchar(8<<(i & 0xFF00));
delay_ms(100);
}
}
گیرنده :
char a,b;
short i;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Resiving Data :"
a = getkey();
b = getkey();
(i = a | (b<<8));
lcd_gotoxy(2,1);
lcd_puts(i);
delay_ms(100);
}
}
پاسخ : راه اندازی واحد USART در AT91SAM7S64 و ارسال و دریافت با HM-TR
نوشته اصلی توسط Soodi
سلام
الان با برنامه زیر روی LCD عدد 14600 نمایش داده می شود
کانفیگ Usart با دستور
usart0_init(2,9600);
فرستنده :
short i;
i = 12345;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Sending Data :"
sendchar(i & 0xFF);
sendchar(8<<(i & 0xFF00));
delay_ms(100);
}
}
گیرنده :
char a,b;
short i;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Resiving Data :"
a = getkey();
b = getkey();
(i = a | (b<<8));
lcd_gotoxy(2,1);
lcd_puts(i);
delay_ms(100);
}
}
خوب مشکل چیه؟اگه میخوای مشکلت حل بشه شرایط رو کامل توضیح بده و بگو میخوای به چی برسی
پاسخ : راه اندازی واحد USART در AT91SAM7S64 و ارسال و دریافت با HM-TR
خوب مشکل کاملا واضحه من عدد 12345 رو ارسال کردم ولی روی LCD عدد 12345 نمایش داده شده است
یکی از دوستان انجمن راهنماییم کرد و 2 روش نشونم داد که من این روش رو انتخاب کردم و باز هم ازش تشکر می کنم
در این روش ما اول عددی رو که می خواهیم ارسال کنیم در یک متغیر 16 بیت ذخیره می کنیم و سپس بایت بالا و بعد بایت پایین رو بدست آورده و ارسال می کنیم و در گیرنده ابتدا بایت پایین رو که 8 بیت هست دریافت می کنیم و سپس بایت بالا هم که 8 بیت هست دریافت می کنید و در آخر آنها را یکی می کنیم
پاسخ : راه اندازی واحد USART در AT91SAM7S64 و ارسال و دریافت با HM-TR
خیر من فقط می خواهم عدد ارسال کنم و اگر شما لطف کنید و برنامتون رو که میگید یکبار دیگر بگزارید ممنون میشوم
راستی فکر کنم ای برنامه زیر از همه بهتر باشه اگه بشه روی همین برنامه کار کنیم و شما هم لطف کنید و کمک و راهنمایی کنید
فرستنده :
short i;
i = 12345;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Sending Data :"
sendchar(i & 0xFF);
sendchar(8<<(i & 0xFF00));
delay_ms(100);
}
}
گیرنده :
char a,b;
short i;
while (1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
lcd_putsf("Resiving Data :"
a = getkey();
b = getkey();
(i = a | (b<<8));
lcd_gotoxy(2,1);
lcd_puts(i);
delay_ms(100);
}
}
دیدگاه