C# 中的 PSOC 端口连接
PSOC Port Connections in C#
我在使用 Cypress 的 PSOC Programmer 提供的 PP_COM_Wrapper dll 中的端口接口时遇到问题。我正在使用 CY8CKIT-0529 PSOC 5LP 原型开发套件。我能够成功打开板的端口并验证我可以使用 PSOC 提供的 USB-I2C 桥写入它。但是,当我关闭端口或检查端口是否打开时,命令 returns 端口已关闭。对于 closeport() 命令,它 returns -1 和“端口未打开!”对于 IsPortOpen() 命令,它 returns 一个 0,这意味着端口已关闭,并且没有错误消息。在 运行 两个命令之后,我仍然可以通过 I2C 写入电路板。我附上了我是 运行 的代码,用于连接、断开连接和检查下面的状态。任何有关我无法关闭端口的原因以及程序认为端口已关闭的原因的任何反馈都将不胜感激。我错过了命令的使用吗?
PP_COM_Wrapper Api: Api Documentation from Cypress
使用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;
}
}
在我的代码中,我混合使用了 pp 调用和对 i2c 文件的调用。我上面的代码是在 i2c 实例中打开端口并将其用于 read/write。我的 disconnect 和 check open 调用正被 pp 实例使用,但没有看到开放端口,因为它正被 i2c 调用使用。
我在使用 Cypress 的 PSOC Programmer 提供的 PP_COM_Wrapper dll 中的端口接口时遇到问题。我正在使用 CY8CKIT-0529 PSOC 5LP 原型开发套件。我能够成功打开板的端口并验证我可以使用 PSOC 提供的 USB-I2C 桥写入它。但是,当我关闭端口或检查端口是否打开时,命令 returns 端口已关闭。对于 closeport() 命令,它 returns -1 和“端口未打开!”对于 IsPortOpen() 命令,它 returns 一个 0,这意味着端口已关闭,并且没有错误消息。在 运行 两个命令之后,我仍然可以通过 I2C 写入电路板。我附上了我是 运行 的代码,用于连接、断开连接和检查下面的状态。任何有关我无法关闭端口的原因以及程序认为端口已关闭的原因的任何反馈都将不胜感激。我错过了命令的使用吗?
PP_COM_Wrapper Api: Api Documentation from Cypress
使用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;
}
}
在我的代码中,我混合使用了 pp 调用和对 i2c 文件的调用。我上面的代码是在 i2c 实例中打开端口并将其用于 read/write。我的 disconnect 和 check open 调用正被 pp 实例使用,但没有看到开放端口,因为它正被 i2c 调用使用。