是的!你可以通过下面的函数来解决检查应答的问题:/* ********************************************************************************************** *//* 例子:兼容IIC总线的通用操作时序 */BOOLWINAPIIIC_IssueStart(ULONGiIndex ) // 指定CH341设备序号{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength;mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STA; // 产生起始位mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 3;return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块}BOOLWINAPIIIC_IssueStop(ULONGiIndex ) // 指定CH341设备序号{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength;mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_STO; // 产生停止位mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 3;return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块}BOOLWINAPIIIC_OutBlockSkipAck( // 输出数据块,不检查应答ULONGiIndex, // 指定CH341设备序号ULONGiOutLength, // 准备写出的数据字节数,单次必须小于29字节PVOIDiOutBuffer ) // 指向一个缓冲区,放置准备写出的数据{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength;if ( iOutLength == 0 || iOutLength > ( mCH341_PACKET_LENGTH - 1 - 1 - 1 ) ) return( FALSE );mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_OUT | iOutLength ); // 输出数据,位5-位0为长度memcpy( &mBuffer[2], iOutBuffer, iOutLength ); // 数据mBuffer[ 1 + 1 + iOutLength ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 1 + 1 + iOutLength + 1;return( CH341WriteData( iIndex, mBuffer, &mLength ) ); // 写出数据块}BOOLWINAPIIIC_OutByteCheckAck( // 输出一字节数据并检查应答是否有效ULONGiIndex, // 指定CH341设备序号UCHARiOutByte ) // 准备写出的数据{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength, mInLen;mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_OUT; // 输出数据,位5-位0为长度,0长度则只发送一个字节并返回应答mBuffer[ 2 ] = iOutByte; // 数据mBuffer[ 3 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 4;mInLen = 0;if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入if ( mInLen && ( mBuffer[ mInLen - 1 ] & 0x80 ) == 0 ) return( TRUE ); // 返回的数据的位7代表ACK应答位,ACK=0有效}return( FALSE );}BOOLWINAPIIIC_InBlockByAck( // 输入数据块,每输入一个字节都产生有效应答ULONGiIndex, // 指定CH341设备序号ULONGiInLength, // 准备读取的数据字节数,单次必须小于32字节PVOIDoInBuffer ) // 指向一个缓冲区,返回后是读入的数据{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength, mInLen;if ( iInLength == 0 || iInLength > mCH341A_CMD_I2C_STM_MAX ) return( FALSE );mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = (UCHAR)( mCH341A_CMD_I2C_STM_IN | iInLength ); // 输入数据,位5-位0为长度mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 3;mInLen = 0;if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入if ( mInLen == iInLength ) {memcpy( oInBuffer, &mBuffer[0], iInLength ); // 数据return( TRUE );}}return( FALSE );}BOOLWINAPIIIC_InByteNoAck( // 输入一字节数据,但是不产生应答ULONGiIndex, // 指定CH341设备序号PUCHARoInByte ) // 指向一个字节的缓冲区,返回后是读入的数据{UCHARmBuffer[ mCH341_PACKET_LENGTH ];ULONGmLength, mInLen;mBuffer[ 0 ] = mCH341A_CMD_I2C_STREAM; // 命令码mBuffer[ 1 ] = mCH341A_CMD_I2C_STM_IN; // 输入数据,位5-位0为长度,0长度则只接收一个字节并发送无应答mBuffer[ 2 ] = mCH341A_CMD_I2C_STM_END; // 当前包提前结束mLength = 3;mInLen = 0;if ( CH341WriteRead( iIndex, mLength, mBuffer, mCH341A_CMD_I2C_STM_MAX, 1, &mInLen, mBuffer ) ) { // 执行数据流命令,先输出再输入if ( mInLen ) {*oInByte = mBuffer[ mInLen - 1 ]; // 数据return( TRUE );}}return( FALSE );}

Email : szk@wch.cn

Phone : 025-52638363

ch341a i2c 安卓_CH341A实现USB转I2C的问题相关推荐

  1. ch341a i2c 安卓_CH341A转I2C的Labview应用说明

    http://wch.cn/ CH341A 可以做同步串口.异步串口.并口等使用. 一,基础操作 A ,相关文件下载 1 ,在官网下载 CH341PRT.zip (并口+同步串口驱动) CH341SE ...

  2. ch341a i2c 安卓_CH341A安卓平板OTG连接成功但读取不到数据

    使用CH341A开发的STM32板子,在win下使用超级终端连接Serial Com口会有数据返回, 但是在支持OTG的安卓平板(ONDA VX610W)上使用OTG线连接,使用官网下载的apk安装, ...

  3. ch341a i2c 安卓_ch341a编程器软件继续更新-产生芯片列表功能

    支持芯片量:971 生成时间:2020/5/27 20:17:12 SPI系列: KB90XX: KB9010                KB9012                KB9016  ...

  4. USB转I2C适配器 模块 USB-IIC/GPIO/PWM/ADC 支持Android 安卓

    名称:纬图Ginkgo USB-I2C适配器 品牌:ViewTool/纬图 型号:VTG200A 典型应用: - I2C总线设备,芯片控制.调试 - I2C接口传感器测试 - I2C存储器EEPROM ...

  5. USB转I2C I2C工具 I2C助手

    USB转I2C小工具,支持单字节.多字节读写,支持定时读数据.非常的好用! 界面如下: 设备地址:十六进制输入的设备地址,一般I2C 设备的地址都是7 位+1 位的读写位,这里设备地址就是7 位地址左 ...

  6. USB TO SPI / USB TO I2C 软件概要 6--- 专业版调试器

    所需设备: 内附链接 软件概述: SPI类: USB TO SPI 1.0-Slave SPI从机软件,适合单步调试,支持SPI工作模式0.1.2.3,自动跟随主机通讯速率,自动接收数据: USB T ...

  7. 安卓设备通过USB串口与STM32单片机通讯之二

    安卓设备通过USB串口与STM32单片机通讯之二 本博文系JGB联合商务组的原创作品,引用请标明出处. 本博文接续上一篇的末尾章节. (二) APP的JAVA代码部分(使用Android Studio ...

  8. linux下I2C驱动发送IO时序,I2C驱动情景分析——怎样控制I2C时序

    内核版本:linux-3.4.2 源程序:    linux-3.4.2\drivers\i2c\busses\I2c-s3c2410.c 这次要解决的问题是:如何配置soc的I2C模块,输出想要的时 ...

  9. pyaudio usb playback_苹果安卓手机充电器USB接口PSD源文件psd素材

    分类:详情页 类目:数码家电 格式:psd 体积: 尺寸:790*12168 编号:13182638 软件: Photoshop CS6(.psd) 颜色模式 : RGB 图像类型:位图 版权:独家版 ...

最新文章

  1. 收藏 | 卷积神经网络 C++ 从零开始实现
  2. 在windows上使用virt-manager
  3. SQL创建表语句文档
  4. AngularJS指令封装高德地图组件
  5. 计算机程序设计员_第二届北京大工匠计算机程序设计员、网络与信息安全管理员挑战赛:一场互联网“战场”的巅峰对决...
  6. 公众号接口,memcached缓存
  7. array,arraylist,string的总结
  8. ORACLE工作原理小结
  9. Flink流计算编程--在WindowedStream中体会EventTime与ProcessingTime
  10. range 和 xrange
  11. 【Python】Tkinter图形界面设计(GUI)
  12. 微机笔记6——输入输出控制
  13. 使用Apktools反编译apk应用
  14. mysql binlog hdfs_Mysql binlog 之阿里canal
  15. 无线通讯基站服务器,无线通信的软基站技术详解
  16. 职业规划路线(研究生阶段)
  17. 有公网IP内网穿透配置
  18. 禁止 Windows 10 和 Windows Server 自动更新
  19. 设置来电铃声、卡2来电铃声、短信铃声、提示铃声、闹铃铃声
  20. A-Level经济真题每期一练(19)

热门文章

  1. iOS获取手机内部音乐列表
  2. Intel 助力移动云百万 IOPS 云硬盘,打造极速云存储体验
  3. python画五角星
  4. c语言中有符号数的补码,[分享]带符号数的表示-----补码
  5. 互联网”还是“技术”?派系分明的电子烟市场
  6. photoshop批处理改变图片大小
  7. primeNG组件库在Angular2上的使用
  8. jumpserver简单安装及使用
  9. 做个男人,做个成熟的男人
  10. 微信、app、电脑更新缓存总结