CH341A如何实现SPI功能

再VB中CH341A如何实现SPI功能,片选CS如何置高,最好有演示代码。多谢!!!

相关的例子程序在/ch341/evt/ch341vb CH341A实现SPI功能步骤: 一:打开设备 Declare Function CH341OpenDevice Lib "CH341DLL.DLL" (ByVal iIndex As Long) As Long ' 打开CH341设备,返回句柄,出错则无效 ' iIndex 指定CH341设备序号,0对应第一个设备 二:设置流模式 Declare Function CH341SetStream Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iMode As Long) As Boolean ' CH341SetStream 设置串口流模式 ' iIndex, 指定CH341设备序号 ' iMode 指定模式,见下行 ' 位1-位0: I2C接口速度/SCL频率, 00=低速/20KHz,01=标准/100KHz,10=快速/400KHz,11=高速/750KHz ' 位2: SPI的I/O数/IO引脚, 0=单入单出(D5出/D7入),1=双入双出(D5出D4出/D7入D6入) ' 其它保留,必须为0

三:处理SPI数据流 Declare Function CH341StreamSPI3 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean ' CH341StreamSPI3 处理SPI数据流,3线接口,时钟线为DCK2/SCL引脚,数据线为DIO/SDA引脚(准双向I/O),片选线为D0/D1/D2,速度约51K字节 ' SPI时序: DCK2/SCL引脚为时钟输出, 默认为低电平, DIO/SDA引脚在时钟上升沿之前输出, DIO/SDA引脚在时钟下降沿之后输入 ' iIndex, 指定CH341设备序号 ' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 ' iLength, 准备传输的数据字节数 ' ioBuffer 指向一个缓冲区,放置准备从DIO写出的数据,返回后是从DIO读入的数据

Declare Function CH341StreamSPI4 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean ' CH341StreamSPI4 处理SPI数据流,4线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5引脚,输入数据线为DIN/D7引脚,片选线为D0/D1/D2,速度约68K字节 ' SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5引脚在时钟上升沿之前输出, DIN/D7引脚在时钟下降沿之后输入 ' iIndex, 指定CH341设备序号 ' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 ' iLength, 准备传输的数据字节数 ' ioBuffer 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据

Declare Function CH341StreamSPI5 Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iChipSelect As Long, ByVal iLength As Long, ByRef ioBuffer As Any, ByRef ioBuffer2 As Any) As Boolean ' CH341StreamSPI5 处理SPI数据流,5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/D5和DOUT2/D4引脚,输入数据线为DIN/D7和DIN2/D6引脚,片选线为D0/D1/D2,速度约30K字节*2 ' SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 ' iIndex, 指定CH341设备序号 ' iChipSelect,片选控制, 位7为0则忽略片选控制, 位7为1则参数有效: 位1位0为00/01/10分别选择D0/D1/D2引脚作为低电平有效片选 ' iLength, 准备传输的数据字节数 ' ioBuffer, 指向一个缓冲区,放置准备从DOUT写出的数据,返回后是从DIN读入的数据 ' ioBuffer2 指向第二个缓冲区,放置准备从DOUT2写出的数据,返回后是从DIN2读入的数据

Declare Function CH341BitStreamSPI Lib "CH341DLL.DLL" (ByVal iIndex As Long, ByVal iLength As Long, ByRef ioBuffer As Any) As Boolean ' CH341BitStreamSPI 处理SPI位数据流,4线/5线接口,时钟线为DCK/D3引脚,输出数据线为DOUT/DOUT2引脚,输入数据线为DIN/DIN2引脚,片选线为D0/D1/D2,速度约8K位*2 ' iIndex, 指定CH341设备序号 ' iLength, 准备传输的数据位数,一次最多896,建议不超过256 ' ioBuffer 指向一个缓冲区,放置准备从DOUT/DOUT2/D2-D0写出的数据,返回后是从DIN/DIN2读入的数据 '/* SPI时序: DCK/D3引脚为时钟输出, 默认为低电平, DOUT/D5和DOUT2/D4引脚在时钟上升沿之前输出, DIN/D7和DIN2/D6引脚在时钟下降沿之后输入 */ '/* ioBuffer中的一个字节共8位分别对应D7-D0引脚, 位5输出到DOUT, 位4输出到DOUT2, 位2-位0输出到D2-D0, 位7从DIN输入, 位6从DIN2输入, 位3数据忽略 */ '/* 在调用该API之前,应该先调用CH341Set_D5_D0设置CH341的D5-D0引脚的I/O方向,并设置引脚的默认电平 */


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