
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Guten Tag, ich möchte auf die serielle Schnittstelle COM 1 mit Ecxel/VBA zugreifen, angeschlossen ist ein Microcontroller CControl. Das mache ich mit folgender VBA-Routine: Declare Function OPENCOM Lib "RSAPI.DLL" (ByVal Parameter$) As Integer Declare Function SENDSTRING Lib "RSAPI.DLL" (ByVal Parameter$) As Integer Declare Function READSTRING Lib "RSAPI.DLL" (ByVal Parameter$) As Integer Declare Function SENDBYTE Lib "RSAPI.DLL" (ByVal B%) As Integer Declare Function READBYTE Lib "RSAPI.DLL" () As Integer Declare Sub TIMEOUT Lib "RSAPI.DLL" (ByVal ms%) Declare Sub CLOSECOM Lib "RSAPI.DLL" () Declare Sub DELAY Lib "RSAPI.DLL" (ByVal ms%) Sub c_control() Const CC_BYTE% = 27 Dim i1%, i2%, zeichen$ '---------------------------------------------- If OPENCOM("COM1:9600,N,8,1") <> 0 Then MsgBox "Fehler bei OPENCOM" Exit Sub '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End If TIMEOUT 2000 i1 = SENDBYTE(CC_BYTE) If i1 <> 0 Then MsgBox "Fehler bei SENDBYTE: " & i1 Exit Sub '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> End If zeichen = READBYTE MsgBox "zeichen = " & zeichen CLOSECOM End Sub OPENCOM und SENDBYTE liefern jeweils "0" zurück, d.h. keinen Fehler, aber READBYTE liefert "-1", d.h. "Fehler". CControl fragt RXD sekündlich ab, sollte auf ein gesendetes Byte 27 vernünftig antworten. Aber es reagiert überhaupt nicht. Was könnte sein? Wo könnte ich weiter versuchen, forschen? Könnte es an Vista liegen? Danke Laika |
| Antwort schreiben |