我在使用Cypress‘PSOC程序员提供的PP_COM_Wrapper动态链接库中的端口接口时遇到了问题。我正在使用CY8CKIT-0529 PSOC 5LP原型工具包。我能够成功地打开端口到板,并已经证实,我可以写它使用USB-I2C桥提供的PSOC。但是,当我关闭端口或检查端口是否打开时,命令将返回端口已关闭的信息。对于closeport()命令,它返回-1和“未打开端口!”对于IsPortOpen()命令,它返回一个0,这意味着端口已经关闭,没有错误消息。在运行这两个命令之后,我仍然可以通过I2C写到板上。我已经附加了正在运行的代码,用于连接、断开和检查下面的状态。任何反馈,为什么我不能关闭端口,为什么程序认为端口关闭,将不胜感激。我是不是漏掉了命令的使用?
PP_COM_Wrapper Api:来自Cypress的Api文档
使用PP_COM_Wrapper:
PP_COM_Wrapper.PSoCProgrammerCOM_ObjectClass pp = new PSoCProgrammerCOM_ObjectClass();
开放港口:
private void dbgConnect_Click(object sender, EventArgs e)
{
string err;
string[] array = i2c.GetPorts();
int hr = i2c.OpenPort(array[0]);
err = i2c.GetLastError();
if (!err.Equals(""))
{
MessageBox.Show(err, "Connection Error", MessageBoxButtons.OK);
}
pp.IsPortOpen(out hr, out err);
if (!err.Equals(""))
{
MessageBox.Show(err, "Connection Error", MessageBoxButtons.OK);
}
}开放港口:
private void button2_Click(object sender, EventArgs e)
{
int hr;
string err;
pp.IsPortOpen(out hr, out err);
if (!err.Equals(""))
{
MessageBox.Show(err, "Connection Status", MessageBoxButtons.OK);
}
else
{
MessageBox.Show("Connected", "Connection Status", MessageBoxButtons.OK);
}
}断开端口:
private void dbgDisconnect_Click(object sender, EventArgs e)
{
string err;
int hr = pp.ClosePort(out err);
if (!err.Equals(""))
{
MessageBox.Show(err, "Connection Status", MessageBoxButtons.OK);
}
if (hr >= 0)
{
dbgStatus.BackColor = Color.Red;
}
}发布于 2020-08-03 15:57:14
在我的代码中,我使用了pp调用和对我的i2c文件的调用的混合。上面的代码打开了i2c实例中的端口,并使用它进行读写。我的断开连接和检查打开的调用被pp实例使用,没有看到开放端口,因为它是由i2c调用使用的。
https://stackoverflow.com/questions/63230915
复制相似问题