返回首页

您好,

我想工作与Elexol USBIO24。它有24的I / O引脚可以设定高或低,或用于输入。所提供的代码示例是在VB中,我不认为我把它转换到C#正确。

他们的数据有:

开放的港口
由于USBIO24单位使用二进制数据传输,我们必须在二进制模式中使用的端口。
如果端口号是不正确的或不连接USBIO24模块,然后VB会生成一个错误。

MSComm1.CommPort = 3??设置这个号码显示在设备管理器
MSComm1.InputMode = comInputModeBinary?设置二进制输入方式
MSComm1.PortOpen =真??打开的端口

引脚设置为输入或输出
设置为输入或输出端口,你必须确定你想设置为输入引脚的价值。

要设置引脚I/O1 I/O2和投入,其余为输出引脚I/O3,你只需添加输入引脚1 2 4 7位值,从而被放置在IOValx变量的值下面的示例代码是7。

??集I/O1 I/O2放大器;港口I/O3一个投入,其余为输出
IOValA = 7?3输入其余全部为输出
IOValB = 0??所有输出
IOValC = 0??所有输出
为MSComm1.Output ="!"CHR $(IOValA)"写入端口方向寄存器
为MSComm1.Output ="B"的CHR $(IOValB)"写入B口方向寄存器
为MSComm1.Output ="C"的CHR $(IOValC)"写C口方向寄存器

写入港口
写输出引脚简单重复上述没有!字符。
下面的代码示例设置端口B I/O8针高和低的剩余引脚。

IOValB = 128?I/O8高,其余全部低

MSComm1.Output ="B"的CHR $(IOValB)

任何人都可以指向等价的C#为VB吗?

回答

评论会员:游客 时间:2012/02/05
根据imgsrc=],,它Strings.Chr(IOValB)。我预期数值上的字符类的静态方法,我仍然不知道如果Convert.ToChar也将工作:希思・斯图尔特:CHR$只是一个整数,代表一个代码点转换的实际字符的代码点表示codepreMSComm1.Output=spanclass="code-string""/spanspanclass="code-string"B"/span+Convert.ToChar(IOValA);/pre/code但是你要小心。如果当前线程是MBCS的(像Unicode),你可能会得到一个较大的比PIC允许的代码点。你可以检查IOVal*LT128,这将是在大多数情况下,作为simpel代码的罚款。但要真正是确定和稳健的,ASCIIEncoding类
Solomos
评论会员:游客 时间:2012/02/05
你可以找到现成的C#代码,一个类似Elexol产品在这里:{A}你将不得不作出一些修改,因为这种产品使用以太网而不是USB连接,但我认为部分代码用于设置Elexol端口方向寄存器和端口值是相同的