CH368 CH367mAccessBlock函数请教


BOOLWINAPICH367mAccessBlock(  // 读取或者写入数据块

ULONGiIndex,  // 指定CH367设备序号

ULONGiAccessMode,  // 参考下面的说明

PVOIDiAddr,  // 指定I/O端口或者存储器的地址

PVOIDioBuffer,  // 指向输入或者输出的缓冲区

ULONGiLength );  // 数据块长度,也就是读取或者写入的字节数,长度不超过32KB


如题,根据例子仿写的代码,

mAddr=0x04;


if(!CH367mAccessBlock(mIndex,mFuncWriteIoDword,&mBaseAddr->mCH367IoPort[mAddr],Cfreq_Dout,4))

Cfreq_Dout是个8位数组,存储的内容是0x83126E00, 理解的是这32Bit数据会一次性发送到下位机FPGA,但FPGA抓到的内容是02010308,请问这个CH367mAccessBlock函数存储数据ioBuffer缓冲区,实际发送时时一个什么机制?内部会经过提取吗?谢谢,如果要实现我的效果,要怎么修改

谢谢。

1666364140200306.jpg

1666364140181129.jpg


您好,该函数是数据透传并不会进行内容转换。如上实现32位读写没有问题。进行32位读写,需要先使能IO寄存器的32位读写使能位。

image.png

测试时可同时抓取硬件信号,使用读写使能信号线作触发标志。


"需要先使能IO寄存器的32位读写使能位" 这个设置在哪? 我是根据你们网上的案例DEBUG368挑选出写功能,在此上面改写的? 仔细看了,debug368(使用断点功能)没看到哪有这个设置? 能否帮忙指点下 谢谢


 还有,我通过IO read,读取的数据是FPGA下发的数据,也就是说,我读的状态正确,写的状态不正确。


您好,32位读写,界面上手动往这个IO寄存器里写值即可。写数据的问题,建议先抓取下硬件信号,看是否满足要求。


谢谢,我找到原因了。


只有登录才能回复,可以选择微信账号登录