NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2330 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید

نمایش نتیجه های نظرسنجی ها: به نظر شما لازمه در این مورد بحث یشه

رأی دهندگان
104. شما نمی توانید در این نظرسنجی رای دهید.
  • بله

    99 95.19%
  • خیر

    1 0.96%
  • راه راحتتر و ارزانتر هست

    4 3.85%
صفحه 5 از 5 نخستنخست 12345
نمایش نتایج: از 81 به 85 از 85

موضوع: آموزش پورت usb

  1. #81
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    اگه نخوام از درایور libusb0 استفاده کنم و با همون درایور خود ویندوز کار کنم چه باید بکنم؟
    ویرایش توسط sajjad_AD : 26-10-2014 در ساعت 17:16

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #82
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    دوباره سلام
    آقا من از رو مثال (Read Write (Event Driven که تو سایت sourceforge اومده برنامه رو به صورت Event نوشتم ولی این دیگه اصلا کار نمی کنه , ارور نمیده ها ولی کارم نمی کنه , اصلا رویداد دریافت اجرا نمیشه , قلق خاصی داره؟

    کد:
    using System;
    using System.Text;
    using System.Text.RegularExpressions;
    using LibUsbDotNet;
    using LibUsbDotNet.Main;
    
    namespace Examples
    {
        internal class ReadWriteEventDriven
        {
            public static DateTime LastDataEventDate = DateTime.Now;
            public static UsbDevice MyUsbDevice;
    
            #region SET YOUR USB Vendor and Product ID!
    
            public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(1234, 1);
    
            #endregion
    
            public static void Main(string[] args)
            {
                ErrorCode ec = ErrorCode.None;
    
                try
                {
                    // Find and open the usb device.
                    MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);
    
                    // If the device is open and ready
                    if (MyUsbDevice == null) throw new Exception("Device Not Found.");
    
    
                    // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
                    // it exposes an IUsbDevice interface. If not (WinUSB) the 
                    // 'wholeUsbDevice' variable will be null indicating this is 
                    // an interface of a device; it does not require or support 
                    // configuration and interface selection.
                    IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
                    if (!ReferenceEquals(wholeUsbDevice, null))
                    {
                        // This is a "whole" USB device. Before it can be used, 
                        // the desired configuration and interface must be selected.
    
                        // Select config #1
                        wholeUsbDevice.SetConfiguration(1);
    
                        // Claim interface #0.
                        wholeUsbDevice.ClaimInterface(0);
                    }
    
                    // open read endpoint 1.
                    UsbEndpointReader reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);
    
                    // open write endpoint 1.
                    UsbEndpointWriter writer = MyUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep01);
    
                    // Remove the exepath/startup filename text from the begining of the CommandLine.
                    string cmdLine = Regex.Replace(
                        Environment.CommandLine, "^\".+?\"^.*? |^.*? ", "", RegexOptions.Singleline);
    
                    if (!String.IsNullOrEmpty(cmdLine))
                    {
                        reader.DataReceived += (OnRxEndPointData);
                        reader.DataReceivedEnabled = true;
    
                        int bytesWritten;
                        ec = writer.Write(Encoding.Default.GetBytes(cmdLine), 2000, out bytesWritten);
                        if (ec != ErrorCode.None) throw new Exception(UsbDevice.LastErrorString);
    
                        LastDataEventDate = DateTime.Now;
                        while ((DateTime.Now - LastDataEventDate).TotalMilliseconds < 100)
                        {
                        }
    
                        // Always disable and unhook event when done.
                        reader.DataReceivedEnabled = false;
                        reader.DataReceived -= (OnRxEndPointData);
    
                        Console.WriteLine("\r\nDone!\r\n");
                    }
                    else
                        throw new Exception("Nothing to do.");
                }
                catch (Exception ex)
                {
                    Console.WriteLine();
                    Console.WriteLine((ec != ErrorCode.None ? ec + ":" : String.Empty) + ex.Message);
                }
                finally
                {
                    if (MyUsbDevice != null)
                    {
                        if (MyUsbDevice.IsOpen)
                        {
                            // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
                            // it exposes an IUsbDevice interface. If not (WinUSB) the 
                            // 'wholeUsbDevice' variable will be null indicating this is 
                            // an interface of a device; it does not require or support 
                            // configuration and interface selection.
                            IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
                            if (!ReferenceEquals(wholeUsbDevice, null))
                            {
                                // Release interface #0.
                                wholeUsbDevice.ReleaseInterface(0);
                            }
                            MyUsbDevice.Close();
                        }
                    }
                    MyUsbDevice = null;
    
                    // Free usb resources
                    UsbDevice.Exit();
    
                    // Wait for user input..
                    Console.ReadKey();
                }
            }
    
            private static void OnRxEndPointData(object sender, EndpointDataEventArgs e)
            {
                LastDataEventDate = DateTime.Now;
                Console.Write(Encoding.Default.GetString(e.Buffer, 0, e.Count));
            }
        }
    }
    ویرایش توسط sajjad_AD : 28-10-2014 در ساعت 17:27

  4. #83
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    سلام مشکل حل شد از Device بود! تشکر فراوان به زودی یه آموزش USB برای دوستان MikroC کار میذارم که همه حالشو ببریم
    ویرایش توسط sajjad_AD : 29-10-2014 در ساعت 21:05

  5. #84
    تازه وارد
    تاریخ عضویت
    May 2016
    نوشته ها
    4
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sajjad_AD نمایش پست ها
    سلام مشکل حل شد از Device بود! تشکر فراوان به زودی یه آموزش USB برای دوستان MikroC کار میذارم که همه حالشو ببریم

    دوست عزیر hid نباید نیاز به هیچ گونه نصب درایور داشته باشه .... میشه مثال بزنین که نیاز به نصب درایور نداشته باشه ؟؟؟؟

    برنامه microC for ARM تون درسته توی تاپیک usb در بیست دقیقه... حالا میشه برنامه ی سمت کامپیوتر رو هم ردیف کنین که دیگه نیاز به نصب هیچ گونه درایور نباشه؟؟؟

    آخه تمام هنر HID به همین بی نیازی به درایور هست

  6. #85
    تازه وارد
    تاریخ عضویت
    Nov 2017
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    نقل قول نوشته اصلی توسط esisafa نمایش پست ها
    با سلام
    در اینجا میخواهیم نحوه ی کار با پورت usb رو به صورت مستقیم و بدون هیچ واسطی مثل ft232 ، با همکاری همه ی دوستان آموزش بدیم
    سلام خدمت همه اساتید و دوستان، المسئلة؟!
    مرتبط با بحث تاپیک، من میخوام یه مقدار اطلاعات رو به صورت Bulk بین یه میکرو و PC از طریق رابط USB جابه جا کنم،
    - سرعت انتقال چندان مهم نیست و شروع انتقال توسط کاربر و از داخل PC کنترل میشود.
    - میکرویی که استفاده میکم XMEGA هست (متأسفانه!) ==> محدودیت فلش دارم!
    - با مثالها و DEMO ها و ASF کار نمیکنم (به خاطر حجیم بودن و پیچیدگی کدهاشون)!
    - برای این ارتباط کلاس CDC رو انتخاب کردم.
    USB 2.0 Specification و دیتاشیت میکروم رو مطالعه کردم و با کار کردن در سطح رجیسترها به مرحله ای رسیدم که Device ، توصیفگرهای دوایس و کانفیگ و اینترفیس و اندپوینت ها رو برای کامپیوتر ارسال میکنه و کامپیوتر شروع به جستجو درایور مربوط به Device میکنه.
    خوب این تا اینجا باشه!
    سمت کامپیوتر هم من C# کار میکنم (خیلی ابتدایی) و میخوام از اون کتابخانه Serial استفاده کنم، البته در اینجا اصلا مهم نیست، فرض کنید که با یک برنامه ترمینال کار کنیم.
    خوب حالا یه جوانمردی بفرماید که تا تکمیل شدن این ارتباط، من چقدر راه دارم؟

    لازمه چندتا توضیح تکمیلی بدم:
    1 دسکریپتورهایی که من برای دوایسم نوشتم فقط شامل یک دوایس، یک کانفیگ، یک اینترفیس کلاس CDC و دوتا اند پوینت (ورودی + خروجی) نوع Bulk هست!
    2 در مورد ساختار کلاس CDC و اگه احتمالا دسکریپتوری نیاز داشته باشه هیچی نمیدونم!
    3 سوم اینکه توی دستکاری فایلهای inf به موردی به نام CatalogFile برخوردم که از اون هم هیچی نمیدونم!
    در کل فکر کنم هیچی نمیدونم!!
    (خداییش خسته شدم انقدر که با این فایلهای inf و دسکریپتورها ور رفتم!)

    یه جوانمردی ما رو راهنمایی بفرماید. اجرکم عندالله.

صفحه 5 از 5 نخستنخست 12345

موضوعات مشابه

  1. پاسخ: 144
    آخرين نوشته: 26-10-2020, 20:22
  2. آموزش پورت سریال در c#
    توسط shahrivar88 در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 9
    آخرين نوشته: 18-03-2014, 09:08
  3. کتاب جامع آموزش کار با پورت ها آیاهست؟
    توسط alamdar در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 3
    آخرين نوشته: 01-02-2012, 23:31
  4. اموزشarm/ بخش دوم/ کار با keil و پورت ها
    توسط 1nafar در انجمن AT91 series (ATMEL)
    پاسخ: 5
    آخرين نوشته: 30-09-2009, 10:12

مجوز های ارسال و ویرایش

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