看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC 2010 Pro 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenCV 問題(Question): 模擬rs232的USB IO 卡 跑久會當機 餵入的資料(Input): 使IO high 或 low 預期的正確結果(Expected Output): 一直跑一直跑..... 錯誤結果(Wrong Output): 跑到相當時間就會當機 每次時間都不同 程式碼(Code):(請善用置底文網頁, 記得排版) 只附上重點 std::string int2str(int &i){ std::stringstream ss; ss << i; return ss.str(); }; // 我用以下這個 function 不斷送 commond 給 COM3(USB IO) // 每秒15~30次 // 跑到一定時間就會當掉 // release 或 debug 的話,停止偵錯,重來就好 // 如果直接跑.exe,當掉了就只能重開機,工作管理員都關不掉 inline void inputTA7257P(bool p_in1,bool p_in2,HANDLE *p_hComm) { std::string strTurn; const char *SendTurn_Data; unsigned long lrcTurn, BS_Turn; int in1=p_in1; int in2=p_in2; strTurn="~out6="+int2str(in1)+"~"; SendTurn_Data = strTurn.c_str(); BS_Turn=strlen(SendTurn_Data); WriteFile(*p_hComm, SendTurn_Data,BS_Turn,&lrcTurn,NULL); strTurn="~out7="+int2str(in2)+"~"; SendTurn_Data = strTurn.c_str(); BS_Turn=strlen(SendTurn_Data); WriteFile(*p_hComm, SendTurn_Data,BS_Turn,&lrcTurn,NULL); }; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.17.235
loveme00835:如果直接把 strTurn.c_str() strTurn.size() 作為引數 07/12 01:39
loveme00835:傳給 WriteFile() 會如何? 07/12 01:39
error C2664: 'WriteFile' : 無法將參數 3 從 'const char *' 轉換成 'DWORD' 請問 strTurn.size() 要放哪裡? ※ 編輯: deo2000 來自: 118.168.17.235 (07/12 02:08)
loveme00835:第三個引數, 你不知道每個引數的涵義嗎? = =" 07/12 02:35
沒錯,真的不知道XD 可是第三個已經放 strTurn.c_str() 了耶 (結果當然是會error) ※ 編輯: deo2000 來自: 118.168.17.235 (07/12 02:45)
loveme00835:http://codepad.org/gBTLKzkA 只是減少變數的使用 07/12 02:53
flylover:Send與Receive之間要delay time,時間依BaudRate,TimeOut 07/12 09:30
可是我只有Send, 沒有Receive耶, 兩次send之間也要delay time嗎? ※ 編輯: deo2000 來自: 118.168.16.13 (07/12 18:31)
zetab:CreateFile的時候是用overlapped還是non-overlapped? 07/12 20:43
我不懂overlapped和non-overlapped的差別耶 貼上port set的程式碼 /****Com Port Set****/ HANDLE hComm; DCB dcb; hComm = CreateFile("\\\\.\\COM3",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0); GetCommState(hComm,&dcb); dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.Parity = 1; dcb.StopBits = ONESTOPBIT; ※ 編輯: deo2000 來自: 118.168.16.13 (07/12 23:55)