using System;
using System.Collec
tions.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace MCP2221OPEN
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
class Mcp2221
{
[DllImport(“mcp2221_dll_um_x86.dll”,
EntryPoint=“Mcp2221_OpenByIndex”,
ExactSpelling = false ,
CallingConvention = CallingConvention.Winapi)
]
public static extern int Mcp2221_OpenByIndex(int VID, int PID,int index);
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = Convert.ToString(Mcp2221.Mcp2221_OpenByIndex(0x4D8,0xDD,0));
}
}
}
01. C#的调用DLL编程方法是构建函数,实现调用方法;
02. MCP2221需要安装相关驱动,才能保证被PC正确识别;
03. 通过 DllImport 语法来调用MCP2221A芯片的dll文件;
04. DllImport需要 被引用的文件路径 方法入口 调用方法;在DLLImport语句的后面来紧跟定义原始方法映射的新名称,由用户自定义设定;
05. 注意新路径必须要设定是 公共全局调用public 和允许外部 extern参数;注意新方法接口类型必须与原始方法接口一致或兼容;
06. 上面代码首先定义了一个MCP2221的class类,然后测试打开芯片是否反馈一个标记数据指针,该指针数字是后续操作函数的令牌;(在CH341的API中只有设备号码,没有代表打开的令牌)
07 调用函数的语法是:类名。方法名(输入参数);上述代码中按下按钮1触发MCP2221A打开函数,然后返回一个指针参数1020;
08. 注意第一次打开后,后续再调用变为-1,说明重复打开,需要配合关闭函数操作;
原作者:Dream_doing 千里优选教学基地