Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 8371|回復: 11
打印 上一主題 下一主題

自己寫得C控制AI馬達程式

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-4-7 23:54:17 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 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
2#
 樓主| 發表於 2009-4-8 16:15:27 | 顯示全部樓層
2# crazyking


我剛剛開啟來完全不會用 @@


鮑率部份跟我馬達附贈程式中的不同

我想知道我步驟是否有錯??????
3#
 樓主| 發表於 2009-4-8 17:23:14 | 顯示全部樓層
4# crazyking


剛看過送的資料不一樣 你的是16進位 我是用10進位

因為我是看學長的VB程式去改寫C的

剛用你給的程式跑過後,馬達還是沒動

是我不會用吧!!!但裡頭是使用16進位方式傳送資料

我先去用16進位丟看看
4#
 樓主| 發表於 2009-4-9 16:11:10 | 顯示全部樓層
6# crazyking

昨天測試結果失敗 *_*|||


你的rs232-ai馬達程式是自己撰寫的嗎!?


我猜想是不是連線的部分 com1->板子 的部分是不是我忽略了
5#
 樓主| 發表於 2009-4-9 20:10:44 | 顯示全部樓層
8# crazyking

剛完看你的說法

似乎我漏掉很多步驟@@


我比較想先練習看看 用簡單的程式碼啟動馬達

現在卡關了..首先我開啟COM1也設定好COM1
(9600.8.0.1)

下一步用WriteFile(hCom,head,Data,&checksum,NULL);丟出字串
           //用CreateFile 獲得的文件標題,
          //輸出緩衝區的第一個位置,
        //要求輸出的字節數,
       //實際輸出的字節數,
      //重操作方式數據的地址                                          
是不是我只丟到COM1里頭馬達並沒有接收到@@
6#
 樓主| 發表於 2009-4-9 23:16:34 | 顯示全部樓層
10# crazyking

我剛在說明書上有提到RX,TX


但英文不強 實在有看沒有懂


只能看圖猜故事 哈


我想知道RX,TX這兩個是??????


是不是寫入跟輸出???
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-12 15:40 , Processed in 0.399103 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表