Ðề tài: giao tiếp rs232
View Single Post
Old 03-11-2008, 04:29 PM   #11
naivatho
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Nơi Cư Ngụ: BKHCM
Bài gửi: 17
:
bác toàn ơi sao chương trình chạy được nhưng vẫn chưa truyền nhận được
đây là code của em
trên vb
Private Sub cmdtruyen_Click()
Dim rstr As String
rstr = txttruyen.Text
If (Val(rstr) < 1000) And (Val(rstr) > 0) Then
l = Len(rstr)
If (l = 1) Then
rstr = "000" + rstr
End If
If (l = 2) Then
rstr = "00" + rstr
End If
If (l = 3) Then
rstr = "0" + rstr
End If
End If
MSComm1.Output = rstr
End Sub

Private Sub Form_Load()
With MSComm1
.CommPort = 1
.Settings = "19200,N,8,1"
.PortOpen = True
.RThreshold = 1
End With
End Sub

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = 2 Then
txtnhan.Text = txtnhan.Text + MSComm1.Input
End If
End Sub
code tren pic
#include<18f452.h>
#include <stdlib.h>
#use delay(clock=20000000)
#use rs232(baud=19200,parity=N,xmit=PIN_C6,rcv=PIN_C7)
int y;
void getvalue()
{
int16 x;
int i;
char s[1]; //khai báo so^' lu+o+.ng chuo^~i truye^`n
for(i=0;i<4;i++) //so^' ký tu+. truye^`n xuo^'ng
s[i]=getc(); //nhan s vao tu tu dang chuoi
x=atol(s); //chuyen chuoi sang so
y=x; //so^' ba.n ca^`n truye^`n ?ây
printf("%lu",x); //xuat gia tri x ra pc so ko dau
}

void main()
{
while(1)
{
if (y==0)
getvalue();
}

}
e vẫn chưa hiểu đoạn bác gán y =0 để làm gì!!!!
và chỗ getvalue(); là lấy giá trị đúng không bác
sao e vẫn chưa truyền nhận được
mong bác sớm hồi âm
e truyền số 100 mà không được
naivatho vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn