ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.






جهت تبلیغ در وب سایت ECA کلیک کنید.

کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20
  1. #1
    2010/06/22
    مشهد
    89
    20

    دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    سلام به تمامي دوستان
    من به يه مشکل در برنامه نويسي خوردم .... من با کامپايلر keil کار ميکنم
    هر کاري ميکنم نميتونم رشته رو از پورت سريال بخونم ،،،، من همين کارو با ميکرو ي sam7x و lpc با کامپايلر keil انجام دادم ولي الان با stm32 جواب نميده ،،، 3 روز ديونم کرده ...
    بهترين تابعي که من ازش براي گرفتن رشته از پورت سريال استفاده ميکنم تابع gets در کتابخونه stdio است همجا جواب داده اما اينجا نه . . . دوستان کمممممک ... :angry:
    ARM....
  2. #2
    2012/12/30
    بوشهر
    3,206
    1,107

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    ما کلی پورت سریال داریم. کدوم؟(USART؟)
    از صحیح پیکربندی شدنش مطمئنی؟
    با CMSIS ؟ ریجسترهاش چی؟
  3. #3
    2010/06/22
    مشهد
    89
    20

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    مگه فرقي هم ميکنه از کدوم usart باشه .... من stm32 سري v استفاده ميکنم و هر 3 usart هم راه انداختم .... هم ارسال کاراکتر دارم هم دريافت و همچنين ارسال رشته دارم ولي دريافت رشته مشکل داره ... از بابت پيکربندي ها و مقادير رجيسترها مطمئنم ... فقط اگه اين تابع gets درست کار کنه حله . . . خودم کاملا گيجمممممم :angry:
    ARM....
  4. #4
    2012/12/30
    بوشهر
    3,206
    1,107

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    نقل قول نوشته اصلی توسط محمد صادقي فرد (MSF)
    مگه فرقي هم ميکنه از کدوم usart باشه .... من stm32 سري v استفاده ميکنم و هر 3 usart هم راه انداختم .... هم ارسال کاراکتر دارم هم دريافت و همچنين ارسال رشته دارم ولي دريافت رشته مشکل داره ... از بابت پيکربندي ها و مقادير رجيسترها مطمئنم ... فقط اگه اين تابع gets درست کار کنه حله . . . خودم کاملا گيجمممممم :angry:
    نگفتم کدوم USART! منظورم این بود که منظور شما USART هستش؟
    متاسفانه مدتی هستش که نه تنها شما بلکه خیلی ها به UART(USART) میگین سریال!
    مگه USB، SPI, I2C و ... باس ها و پروتکل ها و ارتباطات سریالی نیستن؟
    پس با این تفاسیر باید مشکل از تابع get باید باشه. می تونی خودت یه تابع واسه دریافت بنویسی؟
    با توابع دیگه می تونی رشتت رو بگیری؟
  5. #5
    2010/06/22
    مشهد
    89
    20

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    کاملا حق با شماست ... ميدونيد اين کلمات تقريبا عاميانه شده ... چه تو دانشگاه چه بين دوستان ...
    بگذريممم
    من از توابع زيادي استفاده کردم ... حتي اومدم کاراکتر به کاراکتر رشته رو دريافت کردم ولي بازم تو خوندنش مشکل داشتم .
    اينم تابعي که نوشتم البته کاملا مبتديانه :icon_razz:
    void chek (void){


    while(1){
    i[j] = USART_ReceiveData(USART2);
    if(i[j-1]==10){
    j=0;
    break;
    }
    j=j+1;
    }
    if(i[1]=='m&#039{
    printf("ok"
    }

    if(i[2]=='a&#039{
    printf("ok"
    }
    }
    من ميام رشته 'mohammad' رو به usart ارسال ميکنم که همينجوري که در تابع بالا ميبيني گفتم کاراکتر به کاراکتر چک کنه ، کلمه اول که همون "m" هستش رو به درستي دريافت ميکنه و به من ok رو ميده حالا وقتي ميخوام کاراکترهاي بعدي رو بدست بيارم مثلا "a" که کاراکتر دومي هستش اصلا درس جواب نميده . . .
    ببينيد من تو برنامه اشتباهي نکردم
    ARM....
  6. #6
    2008/09/01
    80
    5

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    سلام
    دوست خوبم اين روش شما در دريافت، چندتا مشکل برنامه اي داره
    1- شما بهتره به i و J مقدار اوليه بدين !
    فرض کنيد مقدار J=0 باشه ، اونوقت مقدار آرايه ي در [j-1] به کجا اشاره داره ؟ اين ميتونه باعث ايجاد خطا بشه

    2- بهتره به جاي استفاده از مقدار گذشته که به پورت وارد شدن از مقدار حال استفاده کني

    3- آرايه ها در زبان C از شماره انديس 0 شروع ميشن ! برخلاف بيسيک !
    پس اگه رشته ي Mohammad رو وارد کني در واقع M درانديس شماره صفر قرار ميگيره ! نه انديس شماره يک ! و الي آخر
    البته اين چيزا توي کار عاديه چون معمولا وقتي آدم زياد کد مي نويسه بعضي جاها اينجوري ميشه ! :nice:
  7. #7
    2010/06/22
    مشهد
    89
    20

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    ممنون دوست عزيز از راهنماييت
    اما . . . :angry:
    تمام راهايي که گفتي قبلا تست کردم ( در مورد j-1 کاملا حرفت درسته ولي چون هميشه مقدار j بالاتر از يک هست پس اين احتمال کمه و چون حلقه يک بار ميچرخه تا به شرط من برسه مجبورم j-1 بذارم )
    نميتونم مقدار اوليه بذارم بجاي i و j ( چون من که هر دفعه که ميخوام يه رشته با طولي که نميدونم بفرستم مشکل بر ميخورم )
    حالا جالب اينجاست stm32 در سايت هاي چيني داراي بالاترين مثال هاي موجود که تا حالا نشده دنبال يه چيزي بگردم پيدا نکنم در موردش ( بهترين سايت http://en.pudn.com/ ) ولي تو هيچ سايتي و هيچ exampl نيومده رشته رو با stm32 بدست بياره ( يعني کار به اين آسوني انقدر سخته oo: )
    ARM....
  8. #8
    2008/09/01
    80
    5

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    من با stm32 تا حالا کار نکردم ولي اين نمي تونه ربطي به ماجرا داشته باشه ! خب بيا از اينجا شروع کنيم :
    1 - بُردي رو که ساختي به کامپيوتر وصل کن ( يا به هر چيزي که بتوني کنترل شده به هش کارکتر ارسال کني )

    2- با فرض بر اينکه تمامي پيکربندي ها رو درست انجام دادي ! بيا داخل حلقه ي اصلي برنامت ، رجيستر دريافت داده ي پورت سريال رو بريز داخل يه متغير ديگه
    و اين حلقه هميشه تکرار بشه ( بقيه قسمت هاي برنامه تو رو فعلا کامنت کن )

    3- ميکروتو پروگرام کن و با j-link ميکرورو در حالت ديباگ run کن

    4 - از کامپيوتر توسط هر برنامه اي که دوست داري ! يک کارکتر به ميکرو ارسال کن ( توجه کن بعضي از برنامه ها علاوه بر کارکتر مورد نظر کدهاي کليد اينتر رو هم ميفرستند ! يادت باشه اونارو غير فعال کني تا فقط کارکتر خودت ارسال بشه !)

    5- حالا بيا توي محيط کمپايلر ميکرو و مقدار متغيري که داده ي پورت سريال رو توش ريخيتي رو بررسي کن ! ببين با کارکتري که خودت فرستادي يکي هست يا نه !
    6 - اگر تا اينجا همه چي خوب بود يعني اينکه تو پيکربندي تو خوب انجام دادي و ارتباط سخت افزاريت هم خوبه و درسته ! در غير اين صورت مشکلت توي پيکربندي يا تو سخت افزاره

    7-اگه کارکترو درست دريافت کردي ! حالا بيا همون مراحلو انجام بده ولي ايندفعه سعي کن که يه آرايه رو از انديس صفر پر کني و از طرف کامپيوتر هم بجاي يک کارکتر چند کارکتر پشت سر هم بفرست !

    8- دوباره بعد ارسال بيا توي کمپايلر ، آرايه دريافتي رو ببين ! اگه همه چي درست بود نتيجه ميگيريم که مشکل نرم افزاري داري و ميتوني راحت درستش کني ولي اگه آرايه دريافتي به هم ريخته بود ! مشکلات ديگه اي داره

    حالا برو انجام بده ببينيم چي ميشه

  9. #9
    2007/08/04
    اصفهان
    577
    4

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    سلام
    من همانند 1768 پورت سریال stm را انجام دادم و مشکلی نداشتم. فکر کنم دلیل اینکه نتونستید دریافت رشته را انجام دهید این است که در میکروهای قبلی اصولی دریافت رشته را انجام نمی دادید و حالا گیر افتادید! این اتفاقی بود که برای من در 2378 افتاد که بر اساس سمپل های غیر اصولی موجود در اینترنت دریافت انجام می دادم ولی تا رفتم در 1768 گیر کرد.
    برای دریافت رشته باید در یک تابع یکی یکی کاراکترها را با تابع دریافت کاراکترGetKey دریافت و در یک آرایه بریزید و تا اینتر اومد تموم کنه کار را و خارج بشه و یا اینتراپت سریال را فعال کنید که تا هر کاراکتر اومد بره در زیر روال و بگیره تا جایی که باز اینتر زدید تموم بشه.
    فيلم آموزشي ميکروکنترلر LPC1768
    فيلم آموزشي تکميلي و پيشرفته ميکروکنترلر LPC1768
    فيلم آموزش کاربردی زبان سی در میکروکنترلر ARM
    فیلم آموزش مقدماتی میکروکنترلر LPC1788 به زودی ...
  10. #10
    2010/06/22
    مشهد
    89
    20

    پاسخ : دريافت رشته از پورت سريال !!!! ؟؟؟؟ مشکل

    سلام دوست من
    ممنون از جوابت . . . من از هدرهايي که از خود سايت st.com گرفتم استفاده کردم
    ميشه يه تيکه کوچيک از برنامه و هدرهايي که استفاده کرديد رو بذاريد . . . ممنون ميشم
    ARM....
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 20

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

  1. پاسخ: 7
    آخرين نوشته: 2015/06/02, 10:00
  2. دريافت يک رشته با طول نا مشخص از پورت سريال
    توسط mo2_star در انجمن مدار هاي ديجيتال
    پاسخ: 8
    آخرين نوشته: 2015/03/26, 10:58
  3. تاخير دريافت اطلاعات از پورت سريال
    توسط miladesd در انجمن Labview
    پاسخ: 3
    آخرين نوشته: 2013/04/26, 17:00
  4. دريافت 16 بيت و يا بيشتر در پورت سريال
    توسط jafar2000 در انجمن میکروکنترلرهای AVR
    پاسخ: 21
    آخرين نوشته: 2012/04/03, 12:19
  5. پاسخ: 5
    آخرين نوشته: 2010/09/19, 16:38

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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