PDA

View Full Version : سوال: مشکل کدینگ در پورت سریال



jerjis1912
جمعه 20 آذر 1388, 15:04 عصر
سلام- اطلاعاتی که از پورت سریال میگیرم به هیچ طریقی درست دیده نمیشه.

با همه کدینگا تست کردم. چه کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Private Sub DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

Dim myEncoding As Encoding = Encoding.ASCII
Dim myEncoding As Encoding = Encoding.Unicode '
Dim myEncoding As Encoding = Encoding.UTF32 '
Dim myEncoding As Encoding = Encoding.UTF7 '
Dim myEncoding As Encoding = Encoding.UTF8 '

Dim b() As Byte = myEncoding.GetBytes(SerialPort1.ReadExisting)
MsgBox(myEncoding.GetString(b))

End Sub

Computer.Programmer
جمعه 20 آذر 1388, 17:02 عصر
شما برای دریافت صحیح اطلاعات اولین کاری که لازمه بکنی اینه که مشخصات ارتباط در هر دو طرف را یکسان کنی. مشخصاتی از قبیل : DataBit - Parity - Stop Bit - FlowControl - BuadRate

زمانی که این مشخصات با هم یکسان باشد شما می تونی داده های درست و با مفهوم را دریافت کنی.

موفق باشی

ali_md110
شنبه 21 آذر 1388, 01:40 صبح
دوست من دسترسی به داده های ارسالی توسط پورت کام باید از طریق ادرس دهی ارجاع صورت بگیره
نمیتونید توی روال رویداد SerialPort1_DataReceived از متغیر یا کنترل استفاد گنید و داده ها رو توی اون بریزید
متغیری رو در سطح جنرال تعریف کنید

dim A as integer
اول یک سابروتین بسازید

Private Sub DisplayData(ByVal sender As Object, ByVal e As EventArgs)
TextBox1.AppendText(A.ToString)
End Sub
بعد توی رویداد DataReceived

A = (SerialPort1.ReadExisting)

Me.BeginInvoke(New EventHandler(AddressOf DisplayData))


البته متد ReadLine کارایی بهتری داره
بستگی به میکرو کنترل یا device مورد نظرتون که چه طوری داده رو ادسال میکنه بصورت line یا کاراکتر باید از متد مورد نظرتون استفاده کنید

naserrezaee
شنبه 21 آذر 1388, 09:25 صبح
دوست عزيز اين اطلاعات كه فرموديد را از ميكرو گرفتيد يا از يه كامپيوتر ديگر ؟
اگر از ميكرو گرفتيد ابتدا مطمئن بشيد كه اي سي max232 بكار رفته توي مدار درست كار ميكنه يا خير.(و يا اصلا از اين اي سي استفاده نموديد).
و اما اگر از كامپيوتر ديگر اين اطلاعات را ميگيريد همون طور كه دوستمون گفت بايد پارامترهاي ارتباطي هر دوسمت يكسان باشد .البته در مورد ميكرو هم علاوه بر max232 ست كردن اين پارامترها نيز لازم است.

hossein-khoshseyar
چهارشنبه 02 دی 1388, 14:35 عصر
دوست عزیز علاوه بر همه چیزایی که دوستان گفتند اگه همه رو چک کردی احتمالا مشکل از یه جای دیگست
قضیه سر باود ریت اگه مطمئنی که درست تنظیمش کردی کریستال میکروتو چک کن .احتمال کریستالت مقداری متفاوت از چیزی که تو برنامه تنظیم کردی داره. یا نکنه از کریستال استفاده نکردی.تو مواقعی که از ارتباط سریال استفاده می کنی بهتره که از کریستال استفاده کنی چون نوسان ساز داخلی میکرو فرکانسش به شدت به ولتاژ مدار و دما و... بستگی داره که اختلاف فرکانس اختلاف باود ریت ایجاد می کنه

saadi2
چهارشنبه 02 دی 1388, 23:47 عصر
با سلام دوستان
میشه یک نمونه سورس خوب برای تبدیل string به hex و سپس ارسال اون به تابلو های روان اینجا بزارید؟

فقط از روی کنجکاوی میخام بدونم و اگه کسی اطلاعاتی داره که مفید است خواهش میکنم بفرماید تا این موضوع برای من روشن بشه