PDA

View Full Version : USB port



djsohrab2007
سه شنبه 06 اردیبهشت 1390, 00:21 صبح
با سلام خدمت دوستان

اگر کسی باشه و به من طریقه ی خوندن و نوشتن ( فرستادن اطلاعات ) به پورت USB را یاد بده ، یک دنیا ممنونش میشم.

شاید بد نباشه بگم قراره چه کاری باهاش انجام بدم ، آخه شاید ربطی به آموزشش داشته باشه. منظورم اینه که شاید به چند روش مختلف بشه این کار را انجام داد و بسته به کاربرد داشته باشه.

قراره برای ربات small size برنامه نویسی کنیم که وایرلس آن ( ماژول XBEE ) با مبدل USB به کامپیوتر وصل میشه ( خوب برای دریافت پکت ها و ارسال پکت های جدید نیاز به برنامه نویسی USB داریم ) زبان ما c++ هست و روی سیستم عامل LINUX کار می کنیم

لطف کنید این را هم تحت ویندوز و هم تحت لینوکس بیان کنید:متفکر:

با تشکر

one hacker alone
چهارشنبه 07 اردیبهشت 1390, 20:43 عصر
دوست عزیز برای خواندن و نوشتن روی پورت ها هم توی سی هم سی ++ چند تا تابع داریم که دوتاش معروف و پر کاربرد هست
کار با دستگاه های جانبی در ++C (http://itnotes.blogfa.com/post-3.aspx)

در این مقاله که برای شما آماده کرده ام از کتاب مرجع ++C آقای جعفر نژاد قمی برداشت شده است. به هر حال ++C یکی از قوی ترین و کاملترین زبان هاست. در این مقاله به بررسی نحوه ی ارتباط با دستگاه های جانبی مثل پرینتر و غیره در ++C می پردازیم.
شما را به خواندن مقاله در ادامه ی مطلب دعوت می کنم :

یکی از ویژگی های زبان ++C این است که به راحتی می تواند با دستگاه های جانبی ارتباط برقرار کند ، به طوری که اطلاعاتی را از پورتی بخواند و اطلاعاتی را در پورتی بنویسد. در این مقاله توابعی را مطالعه خواهیم کرد که این امکانات را فراهم می کنند. یکی از ضروریات کار کردن با این توابع این است که آدرس پورت های دستگاه خود را بدانید.

توابع خواندن از پورت
تعدادی از توابع وجود دارند که بایت یا کلماتی را از پورت سخت افزاری می خوانند. در این بخش به بررسی این توابع می پردازیم.

تابع inp() :
این تابع یک بایت را از پورت سخت افزاری می خواند. این تابع به صورت یک ماکرو پیاده سازی شده است و در فایل conio.h قرار دارد :
int inp(unsigned portid)
پارامتر این تابع یک مقدار صحیح بدون علامت است که آدرس پورت را مشخص می کند (مثال اول را مشاهده کنید.)

تابع inportb() :
این تابع بایتی را از پورت سخت افزاری می خواند. این تابع به صورت ماکرو پیاده سازی شده است و در فایل conio.h قرار دارد.
unsigned char inportb(unsigned portid);
پارامتر این تابع یک مقدار صحیح بدون علامت است که آدرس پورت را مشخص می کند (مثال اول را مشاهده کنید.)

تابع inpw() :
این تابع یک کلمه را از پورت سخت افزاری می خواند. این تابع در فایل conio.h قرار دارد. و به صورت زیر به کار می رود :
unsigned inpw(unsigned portid);
پارامتر این تابع شماره ی پورتی است که اطلاعات باید از آن جا خوانده شود. (مثال اول را ببینید.)

تابع inport() :
این تابع یک کلمه را از پورت سخت افزاری می خواند. این تابع در فایل conio.h قرار دارد. و به صورت زیر به کار می رود :
unsigned inport(unsigned portid);
پارامتر این تابع شماره ی پورتی است که اطلاعات باید از آن جا خوانده شود. (مثال اول را ببینید.)


مثال 1 : برنامه ای که یک بایت و سپس یک کلمه را از پورت سریال شماره 0 می خواند. (خروجی برنامه در پایین آمده است.)

#include
#include
Int main()
{
int port = 0;
int result;
clrscr();
result = inp(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inportb(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inpw(port);
printf(“The Value 0x%X read from port %d ”, result, port);
result = inport(port);
printf(“The Value 0x%X read from port %d ”, result, port);
getch();
return 0;
}


خروجی برنامه :
The Value 0x8 read from port 0
The Value 0x8 read from port 0
The Value 0x808 read from port 0
The Value 0x808 read from port 0


توابع نوشتن در پورت :
برای نوشتن اطلاعات در پورت سخت افزاری از چهار تابع استفاده می شود. این توابع را در این بخش بررسی خواهیم کرد.

تابع outp() :
این تابع یک بایت را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
int outp(unsigned portid, int value);
portid شماره ی پورتی است که مقدار value باید در آن نوشته شود (بایت کم ارزش value نوشته می شود). این تابع مقدار value را نیز بر می گرداند.

تابع outpw() :
این تابع یک کلمه را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
unsigned outpw(unsigned portid, unsigned value);
value مقداری است که باید در portid نوشته شود. value نیز به عنوان نتیجه ی تابع برگردانده می شود.

تابع outportb() :
این تابع یک بایت را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
void outportb(unsigned portid, unsigned value);
این تابع مقدار value را در پورت portid می نویسد.

تابع outport() :
این تابع یک کلمه را در پورت سخت افزاری می نویسد. در فایل conio.h قرار دارد و به صورت زیر به کار می رود :
void outportb(unsigned portid, unsigned value);
این تابع مقدار value را در پورت portid می نویسد.


مثال 2 : برنامه ای که بایت و کلمه ای را در پورت سخت افزاری می نویسد.

#include
#include
Int main()
{
int port = 0;
int value = ‘C’;
int value1 = 30231;
clrscr();
outp(port, value);
printf(“Value %d sent to port number %d ”, value, port);
outportb(port, value);
printf(“Value %d sent to port number %d ”, value, port);
outport(port, value1);
printf(“Value %d sent to port number %d ”, value, port);
outpw(port, value1);
printf(“Value %d sent to port number %d ”, value, port);
getch();
return 0;
}


خروجی برنامه :
Value 67 sent to port number 0
Value 67 sent to port number 0
Value 30231 sent to port number 0
Value 30231 sent to port number 0

پایان.
منبع:http://itnotes.blogfa.com/post-3.aspx

یه مقاله هم در مورد درایور نویسی هست برای usb اون رو هم بخونید بدک نیست

djsohrab2007
پنج شنبه 08 اردیبهشت 1390, 07:57 صبح
دستت درد نکنه ،:لبخندساده: با اجازه چندتا سوال داشتم :


یکی از ضروریات کار کردن با این توابع این است که آدرس پورت های دستگاه خود را بدانید.

آدرس پورت دستگاه را باید از کجا بدونیم ؟ آخه پورت USB را هر کدوم از پورت های دستگاه میشه وصل کرد.
من باید برنامه ای بنویسم که با وایرلسی که با پورت USB به دستگاه وصل خواهد شد ، ارتباط برقرار کنم پس باید موقع اجرای برنامه خود برنامه آدرس پورت را پیدا کنه.



یه مقاله هم در مورد درایور نویسی هست برای usb اون رو هم بخونید بدک نیست

این مقاله که شما میفرمایید را از کجا باید دانلود کنم ؟ اگر زحمتی نیست روی سایت Upload کنید:خجالت:

nameely
شنبه 24 اردیبهشت 1390, 19:28 عصر
با سلام به شما دوست عزیز :

شما به این روش می توانید شماره پورت ها رو بفهمید

Control Panel / System / Hardware / Device Manager / Ports ‎‎(Com & LPT) / ECP Printer port / Resources.‎

با تشکر

زینب حسینی
دوشنبه 09 مرداد 1391, 23:30 عصر
سلام
این دستوراتی که برای ورودی خروجی پورت گفتین آیا تو ویژوال c هم کاربرد داره؟

#target
دوشنبه 09 مرداد 1391, 23:37 عصر
بهتره پورت رو بعنوان فایل باز کنید و بخوانید !
البته پورت USB فکر نمیکنم اینطور باشه . بستگی به وسیله ای هست که پورت وصله