Closed lishuai199502 closed 3 weeks ago
我在自己的程序中使用了这样的写法:
UInt32 EnumIspDeviceProc()
{
UInt32 devCnt;
CHISPWrapper.CHISPDeviceInfo[] devInforS = new CHISPWrapper.CHISPDeviceInfo[1];
CHISPWrapper.InitISPDeviceInfoStruct(ref devInforS[0]);
//枚举函数
devCnt = CHISPWrapper.EnumDev(devInforS, 1, out _, out _, out _);
return devCnt;
}
不知道是不是由于WCH这个程序历史太悠久,它要传入的那个IspDevInfor
里有不少冗余参数。我加了一步Init操作。另外你所用的芯片是否比较新?比如X035系列的?是的话建议拉取今天最新commit里3.7.0.0版本的WCHISPAPI.dll。
另外不知道什么原因,如果ispOption配置有问题,可能也会扫描设备异常。下面是一个初始化例子。
CHISPWrapper.CHISPOption option = new CHISPWrapper.CHISPOption();
CHISPWrapper.InitISPOptionStruct(ref option);
option.IspMcuSeries = (byte)ChipSeries.CH32X035;
option.IspMcuType = (byte)CH32X035_ChipType.CH32X033F8P6;
int i = CHISPWrapper.SetISPOption(option);
if (i != 1)
{
MessageBox.Show("WCHISPAPI初始化错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
Environment.Exit(1);
}
This issue has been inactive for so long.
感谢大佬提供这个资源,我正在用winform开发个上位机,导入了大佬的资源之后,调用
UInt32 EnumDev([Out] CHISPDeviceInfo[] IspDevInfor, Byte MaxDevCnt, out Byte BtChipSeries, out Byte BtChipType, out Int32 IsPreBTV230);
MaxDevCnt传入16,可以正确返回芯片类型,但函数的返回值仍然是0,不知道是哪里的问题。