如图: 不知这软件开源的吗... 想知道软件是如何操作驱动进行读写的.......
该软件不是我们提供 关于上位机编程,请到我们网站下载ch341evt.zip文件
ch341evt.zip 里的内容很少有对25系列操作的方法. 只找到一小段 AT25F512_ReadBlock 读取块的操作的代码 也没有对单片机的操作的资料说明等 资料好少啊
里面的例程也似乎有问题, 只要插上CH341A做的板(完全正常的板), 再运行里的例程, 软件无法启动的
25系列是spi接口的,所以要通过ch341dll.h中的spi接口api来控制25系列 里面的例程我们都测试过,应该没有问题,是不是你操作不对?请把出错信息贴出来看看
能否提供点 用 CH341StreamSPI4 函数 完整读写25系列IC所有内容的的DEPHI代码啊
----------------------------
问题找到了 插入Ch341A的板到USB上, 再启动程序, 会在下面SendLedVal过程中停留不响应, 我把这些代码注释掉就正常了 如下代码引起的, 我注释掉LED示例的相关代码就没问题了, 可以了...
Procedure SendLedVal();
Var mBuf: Array[0..(mMAX_BUFFER_LENGTH - 1)] Of byte; mLen: cardinal; Begin If (mOpen = True) Then Begin mLen := 1; mBuf[0] := ((BoolToByte(Form1.LED1.Checked) Shl 7) + (BoolToByte(Form1.LED2.Checked) Shl 6) + (BoolToByte(Form1.LED3.Checked) Shl 5) + (BoolToByte(Form1.LED4.Checked) Shl 4) + (BoolToByte(Form1.LED5.Checked) Shl 3) + (BoolToByte(Form1.LED6.Checked) Shl 2) + (BoolToByte(Form1.LED7.Checked) Shl 1) + (BoolToByte(Form1.LED8.Checked) Shl 0)); //组合按钮键值 If (Form1.memadd0.Checked = True) Then //地址0 Begin If (CH341MemWriteAddr0(mIndex, @mBuf[0], @mLen) = FALSE) Then application.MessageBox('发送LED状态值失败!', 'CH341', MB_ICONEXCLAMATION); End Else Begin If (Form1.memadd1.Checked = True) Then Begin If (CH341MemWriteAddr1(mIndex, @mBuf[0], @mLen) = FALSE) Then application.MessageBox('发送LED状态值失败!', 'CH341', MB_ICONEXCLAMATION); End; End; End Else application.MessageBox('设备未打开!', 'CH341', MB_ICONEXCLAMATION); End;