|
本帖最後由 S013078 於 2009-4-7 23:56 編輯
#include <windows.h>
#include <stdio.h>
#include <rs232.h>
int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;//開檔案
BOOL fSuccess;//bool=0.1
//DWORD nBytesRead;//雙字元
COMSTAT cs;//com1狀態
char *head="255";
unsigned long checksum=3,Data=32,Data2=125,Data3=93;
char *pcCommPort = "COM1";
hCom = CreateFile(pcCommPort,//開啟COM1
GENERIC_READ | GENERIC_WRITE,//允許讀跟寫
0, //通訊設備必須以獨佔方式打開
NULL,//無安全屬性
OPEN_EXISTING, //通訊設備以存在
0,
NULL );
if (hCom == INVALID_HANDLE_VALUE) //違法的值
{
printf ("開啟錯誤");
system("pause");
return(1) ;
}
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess)
{
printf ("GetCommState failed with error %d.\n", GetLastError()); //Handle the error.
return (2);
}
fSuccess = GetCommState(hCom, &dcb);//取得com1狀態
dcb.BaudRate = CBR_9600; // 傳輸率
dcb.ByteSize = 8; // 資料位元長度
dcb.Parity = NOPARITY; // 沒有偶同位元
dcb.StopBits = ONESTOPBIT; // 一個停止位元
if (!fSuccess)
{
printf ("通訊設定錯誤");
system("pause");
return (3);
}
//ReadFile(hCom,BufferofData, cs.cbInQue, &nBytesRead, NULL);
WriteFile(hCom,head,Data,&checksum,NULL);
WriteFile(hCom,head,Data2,&checksum,NULL);
WriteFile(hCom,head,Data3,&checksum,NULL);
//用CreateFile 獲得的文件標題,
//輸出緩衝區的第一個位置,
//要求輸出的字節數,
//實際輸出的字節數,
//重操作方式數據的地址
system("pause");
}
編譯可以通過但是不會動,想知道錯在哪
馬達的記憶體位址0XFF=255
馬達的編號是0
速度是1
角度是125 |
|