線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1513
推到 Plurk!
推到 Facebook!

RS232 接收到89s51後 如何用if判斷

答題得分者是:s92405054
konan520
一般會員


發表:1
回覆:1
積分:0
註冊:2013-03-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-03-06 01:07:53 IP:219.69.xxx.xxx 訂閱
請問一下為何 我的 IF 判斷式沒有做用  
好不容易送出去的訊號 單晶片可以正確的 以P1輸出了
在接收的部份 還是有問題

拜託可以幫我看一下嗎?
是不是字串 型別的問題????

/*
if (ret=="A") //如果收到A 表單上ShaP00 顯示紅色
{
ShaP00->Brush->Color=(255);
}

*/









// 接收COM 的資料
ReadFile(hComm, ret,cs.cbInQue,&nBytesRead,NULL);
//將資料Show出來
resLabel->Caption = ret; //確定有收到訊號
Edit2->Text=ret; //透過Edit2在一次確認 確定有收到
// String P0;
// Label3->Caption = ret;
// P0 = ret;
if (ret=="A") //如果收到A 表單上ShaP00 顯示紅色
{
ShaP00->Brush->Color=(255);
}
else if (ret=="B") //如果收到B 表單上ShaP00 顯示紅色
{
ShaP01->Brush->Color=(255);
}









/*
以下是89S51的程式
*/




main()
{
unsigned char i; //定義列表計數變數
UART(9600); //設定串列環境及鮑率
aa:
P1=getchar(); //由串列埠輸入一個字元到P1顯示
if (P1==65) // A的 ASCII碼為65
{
puts (65); //由串列埠發射一個字元 // A的 ASCII碼為65 直接送 ASCII碼
// delay1ms(100);
}
else if (P1==66)
{
puts ("B"); //由串列埠發射一個字元 //不可送"B" PC 接收端會產生 BB
\ ?
// delay1ms(100);
}
// delay1ms(100);
goto aa;
}



s92405054
高階會員


發表:7
回覆:49
積分:101
註冊:2009-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-03-06 10:14:10 IP:60.248.xxx.xxx 訂閱

我猜您應該用strncmp 或 strcmp來判斷

===================引 用 konan520 文 章===================
請問一下為何 我的 IF 判斷式沒有做用
好不容易送出去的訊號 單晶片可以正確的 以P1輸出了
在接收的部份 還是有問題

拜託可以幫我看一下嗎?
是不是字串 型別的問題????

/*
if (ret=="A") //如果收到A 表單上ShaP00 顯示紅色
{
ShaP00->Brush->Color=(255);
}

*/









// 接收COM 的資料
ReadFile(hComm, ret,cs.cbInQue,&nBytesRead,NULL);
//將資料Show出來
resLabel->Caption = ret; //確定有收到訊號
Edit2->Text=ret; //透過Edit2在一次確認 確定有收到
// String P0;
// Label3->Caption = ret;
// P0 = ret;
if (ret=="A") //如果收到A 表單上ShaP00 顯示紅色
{
ShaP00->Brush->Color=(255);
}
else if (ret=="B") //如果收到B 表單上ShaP00 顯示紅色
{
ShaP01->Brush->Color=(255);
}









/*
以下是89S51的程式
*/




main()
{
unsigned char i; //定義列表計數變數
UART(9600); //設定串列環境及鮑率
aa:
P1=getchar(); //由串列埠輸入一個字元到P1顯示
if (P1==65) // A的 ASCII碼為65
{
puts (65); //由串列埠發射一個字元 // A的 ASCII碼為65 直接送 ASCII碼
// delay1ms(100);
}
else if (P1==66)
{
puts ("B"); //由串列埠發射一個字元 //不可送"B" PC 接收端會產生 BB
\ ?
// delay1ms(100);
}
// delay1ms(100);
goto aa;
}



konan520
一般會員


發表:1
回覆:1
積分:0
註冊:2013-03-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-03-06 19:44:20 IP:219.69.xxx.xxx 訂閱
===================引 用 s92405054 文 章===================

我猜您應該用strncmp 或 strcmp來判斷

===================引 用 konan520 文 章===================

太感謝你了
改成下列程式 解決了我的問題


char *P0="A";
if (strncmp(P00,ret,1)==0)
{
ShaP00->Brush->Color=(255);
}

系統時間:2017-10-22 1:21:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!