PDA

View Full Version : عدم شناسایی دستورات ارسالی از vb به میکرو



unforgiven
یک شنبه 29 شهریور 1394, 11:42 صبح
سلام به همگی و روز بخیر
دوستان یک برنامه نوشتم با vb6 و قرار هست از طریق برنامه دستوری به میکرو ارسال بشه و میکرو طبق دستور دریافت شده عملی رو انجام بده . میکرو رو دادم بیرون برام ساختن و به خوبی با برنامه ارتباط بر قرار میکنه و تنظیمات باود ریت و پورت و ... چیزها به درستی ست شده.
این بنده خدا که میکرو رو ساخته یک سری دستورات به من داده که من داخل برنامه ازش استفاده کنم تا عمل مورد نظر رو میکرو انجام بده:
مثلا : خاموش کردن LED دستگاه : 0x05 و روشن کردن Led دستگاه : 0x06
من از دستور زیر استفاده میکنم :


MSComm1.Settings = "9600,N,8,1"
MSComm1.CommPort = 4
MSComm1.PortOpen = True
MSComm1.Output = "0x05"

دستور خاموش کردن Led رو ارسال میکنم . Led های ارسال و دریافت همزمان با ارسال دستور روشن و خاموش میشن اما دستور خاموش شدن Led دستگاه انجام نمیشه . میکرو با برنامه کد ویژن ایشون به درستی عمل میکنه و همه دستورات رو میکرو به خوبی اجرا میکنه .
مشکل از چی هست ؟ ایشون از vb سر در نمیاره و بنده از الکترونیک .
ممنون میشم راهنمایی بفرمایید .
پیشاپیش متشکرم

مهدی کرامتی
یک شنبه 29 شهریور 1394, 14:36 عصر
دستوری که میکرو انتظار داره عدد هگز 0x05 است، اما شما دارید اون مقدار رو به صورت String می فرستید که بالطبع میکرو نمی فهمه. کافی است شما خود "5" و "6" رو به میکرو بفرستید، مثلا:
MSComm1.Output = "5"

unforgiven
یک شنبه 29 شهریور 1394, 16:36 عصر
جناب کرامتی سلام و تشکر بابت توجه شما

فرمایش شما رو قبلا انجام داده بودم و نتیجه نداد .چون میدیدم ایشون داخل کد ویژن همون 4 رو میزدن و میکرو عکس العمل نشون میداد . اما من در برنامه میزنم باز چراغ ارسال دیتا یک لحظه روشن میشه اما عمل خاموش شدن Led اتفاق نمیافته .
چیز دیگه ای به ذهنتون میرسه من انجام بدم ؟ یا تنظیمات خاص دیگه ای ؟
متشکرم

unforgiven
دوشنبه 30 شهریور 1394, 10:29 صبح
راهش رو پیدا کردم بالاخره . میگم شاید بدرد کسی خورد .
دستور در میکرو به صورت هگزا بود و ما داشتیم به صورت رشته و بعد دسیمال میفرستادیم . البته با استفاده از تابع chr تونستم با میکرو ارتباط بگیرم .



mscomm1.output=chr("5")

نکته کنکوریش استفاده از تابع chr بود .