View Single Post
Old 17-04-2012, 04:30 PM   #55
daretowin
Nhập môn đệ tử
 
Tham gia ngày: Apr 2012
Bài gửi: 3
:
Mình cũng đang làm truyền gửi dữ liệu để điều khiển Robot.

Ở trên máy tính mình viết code gửi xuống như sau: (để điều khiển rẻ trái rẻ phải, tới lùi...)

private void forward_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("0#");
STATUS.Text = "ROBOT FORWARD";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}
private void turnleft_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("1#");
STATUS.Text = "ROBOT TURN LEFT";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}

private void stop_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("2");
STATUS.Text = "ROBOT STOPPING";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}

private void turnright_Click(object sender, EventArgs e)
{
try
{
serialPort1.Write("3");
STATUS.Text = "ROBOT TURN RIGHT";
}
catch (Exception)
{
MessageBox.Show("Kết nối chưa được thiết lập", "Connection Error");
}

}




Bên vi điều khiển Pic mình viết code nhận như sau(không hiểu nhận như thế này có đúng không), mà kết quả mình nhận được là mạnh đứng chả có hiện tượng chi hết.

#include <16F877A.h>
#include <def_16F877A.h>
#device *=16
#fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP, NOCPD,NOWRT //khai bao cac thiet dat cho PIC
#use delay(clock=4000000)
#bit rc0 = 0x07.0 //khai bao su dung thach anh 20MHz de su dung ham delay cua chuong trinh
#use rs232(baud=9600,parity=N,xmit=pin_c6,rcv=pin_c7)
/************************************************** ***********************************/
signed int8 y=0;
#INT_RDA
VOID RECEVICE()
{
y=getc();

}
void main()
{
rc3=0;
enable_interrupts(global);
enable_interrupts(INT_RDA);
while(true)
{
if(y==0)
{ rephai();
}
if(y==1)
{
retrai();
}
}
}............





Mong các cao thủ giúp mình, mình dùng lệnh gửi serialPort1.Write("2");
Thì lệnh nhận ở vi điều khiển if(y==2) có đúng không? Hay nó sẽ hiểu theo kiểu HEX của kí tự "2" ạ ?
daretowin vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn