У меня проблемы с использованием интерфейсов портов в dll PP_COM_Wrapper, которую предоставляет Cypress 'PSO C Programmer. Я использую комплект для прототипирования CY8CKIT-0529 PSO C 5LP. Я смог успешно открыть порт для платы и убедился, что могу писать на него, используя мост USB-I2 C, который предоставляет PSO C. Однако, когда я go закрываю порт или проверяю, открыт ли порт, команды возвращают, что порт закрыт. для команды closeport () возвращается -1 и «Порт не открыт!» Для команды IsPortOpen () он возвращает 0, что означает, что порт закрыт, и нет сообщения об ошибке. Я все еще могу писать на плату через I2 C после выполнения обеих команд. Я прикрепил код, который я использую, для подключения, отключения и проверки состояния ниже. Будем признательны за любые отзывы о том, почему я не могу закрыть порт и почему программа считает, что порт закрыт. Мне не хватает использования этой команды?
PP_COM_Wrapper Api: Документация Api от 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;
}
}