基于CH347实现USB扩展SPI/I2C/GPIO Master主机应用方案

USB2.0高速转接芯片CH347应用开发手册 CH347是一款USB2.0高速转接芯片,以实现USB-UART(HID串口/VCP串口)、USB-SPI、USB-I2C、USB-JTAG以及USB-GPIO等接口,分别包含在芯片的四种工作模式中。CH347DLL用于为CH347芯片提供操作系统端的UART/SPI/I2C/JTAG/BitStream等接口操作函数,支持CH341厂商/HID/VCP驱动接口,使用时无需区分驱动接口和芯片工作模式。 阅读详情
AI摘要

本文介绍基于CH347芯片通过USB接口扩展SPI、I2C和GPIO功能的技术方案,适用于Linux/Android系统。驱动支持动态总线分配、设备即插即用,并可在用户空间通过sysfs或spidev访问外设,显著提升主机外设控制能力。

在安卓/Linux主机上经常会遇到CPU原生SPI/I2C/GPIO Master资源通道不够或者功性能不满足实际产品需求的情况,基于USB2.0高速USB转接芯片CH347,配合厂商提供的USB转MPHSI(Multi Protocol High-Speed Serial Interface)Master总线驱动(CH34X-MPHSI-Master)可轻松实现为系统扩展SPI和I2C总线、GPIO Expander、中断信号等。

该驱动软件正常工作后,会在系统下创建新的SPI和I2C Master,拥有独立的bus num,原SPI和I2C器件的设备驱动可直接挂载到该总线上,无需任何修改。驱动会同时创建GPIO相关资源,各GPIO可通过sysfs文件系统或应用层软件直接访问,也可以由其他设备驱动申请该GPIO的访问权以及申请GPIO对应中断号并注册中断服务程序。

项目地址:GitHub - WCHSoftGroup/ch34x_mphsi_master_linux

应用框图:

 CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。本方案仅使用到CH347的高速SPI、I2C串行总线,以及GPIO功能,使用串口功能需要单独使用CH343SER串口驱动,使用JTAG功能或SPI和I2C的非总线模式应用可使用CH341PAR多功能USB设备驱动。

CH34X-MSPI-Master总线驱动特点:

1、支持CH347与CH341总线转接芯片;

2、支持SPI、I2C、GPIO、IRQ等接口和功能扩展;

3、支持SPI、I2C的bus总线号、GPIO编号、IRQ中断号的动态分配以及静态指定;

4、支持自动绑定spi通用设备驱动,创建/dev/spidev*;

驱动概述

该Master驱动支持在Linux/安卓主机上,使用USB转串口/JTAG/SPI/I2C/GPIO转换芯片CH347,和USB转串口/SPI/I2C/GPIO转换芯片CH341。

驱动仅支持SPI/I2C/GPIO接口,该文档主要介绍CH347芯片的相关特性。

CH347F SPI接口

PIN脚SPI功能脚GPIO复用脚
13SCS0-
7SCS1-
14SCK-
16MOSI-
15MISO-

CH347T SPI接口

PIN脚SPI功能脚GPIO复用脚
5SCS0gpio2
9SCS1gpio5
6SCKgpio0
8MOSI-
7MISOgpio1

SPI接口特性:

  • SPI模式0/1/2/3

  • SPI时钟频率60MHz~218.75KHz

  • MSB/LSB传输

  • 8位/16位传输

  • 2路片选

  • 片选高/低有效

CH347F I2C接口

PIN脚I2C功能脚GPIO复用脚
11SCL-
12SDA-

CH347T I2C接口

PIN脚I2C功能脚GPIO复用脚
11SCLgpio3
12SDA-

CH347F/T支持至少4种I2C时钟:20kHz,100kHz,400kHz和750kHz。驱动配置的默认I2C时钟为100KHz,当前不支持动态修改该时钟频率,若需要修改可以在ch34x_mphsi_i2c_init函数中修改。

在Linux上增加对器件的驱动支持十分方便,只需要将该器件的设备驱动绑定到此Master驱动生成的总线下即可。举例:

modprobe bmi160_i2c
echo "bmi160 0x68" > /sys/bus/i2c/devices/i2c-$DEV/new_device

或

modprobe tcs3472
echo "tcs3472 0x29" > /sys/bus/i2c/devices/i2c-$DEV/new_device

驱动创建的I2C设备文件在/sys/bus/i2c/devices/i2c-$DEV/ 目录下

CH347F GPIO接口

PIN脚GPIO复用脚
17gpio0
18gpio1
10gpio2
9gpio3
23gpio4
24gpio5
25gpio6
26gpio7

CH347T GPIO接口

PIN脚GPIO复用脚
15gpio4
2gpio6
13gpio7

CH347的硬件接口支持GPIO0~GPIO7,考虑到部分引脚被SPI和I2C的接口占用了,此驱动仅开放支持了GPIO4,GPIO6和GPIO7。

驱动操作说明

  • 使用“make”或者其他方式编译此驱动,如果动态编译成功会生成“ch34x_mphsi_master.ko”驱动模块

  • 使用“sudo make load”或“sudo insmod ch34x_mphsi_master.ko”动态加载驱动,使用此方式加载SPI总线号和GPIO起始序号会自动分配,也可以通过增加参数进行指定。

  • 如:“sudo insmod ch34x_mphsi_master.ko spi_bus_num=3 gpio_base_num=60”

  • 使用“sudo make unload”或“sudo rmmod ch34x_mphsi_master.ko”卸载驱动

  • 使用“sudo make install”将驱动开机自动工作

  • 使用“sudo make uninstall”卸载该驱动

使用此驱动,需要确认CH347/CH341已经插入主机并且工作正常,可以使用“lsusb”或“dmesg”指令来确定,CH347/CH341的厂商VID是0x1A86。

如果芯片工作正常,可以使用“ls /sys/class/master”,“ls /sys/class/gpio”指令确认设备节点路径。

用户空间访问

使用SPI接口

一旦驱动加载成功,默认会提供2个关联到这个新的SPI Bus的SPI Slave设备,以CH347为例:

/dev/spidev0.0
/dev/spidev0.1

根据设备名称规则 /dev/spidev<bus>.<cs>,<bus>是驱动自动选择的总线号,<cs> 是芯片指定引脚的片选信号。

自linux内核5.15开始绑定到spidev驱动需要主动bind使/dev目录下设备可用,如bus 0下slave 1:

# echo spidev > /sys/class/spi_master/spi0/spi0.1/driver_override
# echo spi0.1 > /sys/bus/spi/drivers/spidev/bind

对所有ch34x_mphsi_master驱动管理的设备:

# for i in /sys/bus/usb/drivers/mphsi-ch34x/*/spi_master/spi*/spi*.*; do echo spidev > $i/driver_override; echo $(basename $i) > /sys/bus/spi/drivers/spidev/bind; done

标准I/O函数如 open, ioctl 和close 可以直接和该spi slave进行通讯,打开SPI设备:

int spi = open("/dev/spidev0.0", O_RDWR));

设备打开成功后,可以使用 ioctl函数修改SPI配置和传输数据等。

uint8_t mode = SPI_MODE_0;
uint8_t lsb = SPI_LSB_FIRST;
...
ioctl(spi, SPI_IOC_WR_MODE, &mode);
ioctl(spi, SPI_IOC_WR_LSB_FIRST, &lsb);

函数 ioctl传输数据示例:

uint8_t *mosi; // output data
uint8_t *miso; // input data
...
// fill mosi with output data
...
struct spi_ioc_transfer spi_trans;
memset(&spi_trans, 0, sizeof(spi_trans));
​
spi_trans.tx_buf = (unsigned long) mosi;
spi_trans.rx_buf = (unsigned long) miso;
spi_trans.len = len;
​
int status = ioctl (spi, SPI_IOC_MESSAGE(1), &spi_trans);
​
// use input data in miso

挂载SPI NOR FLASH作为MTD存储设备

举例:flash器件挂载到bus 0 chip 0(spi0.0)

# echo spi0.0 > /sys/bus/spi/drivers/spidev/unbind
# echo spi-nor > /sys/bus/spi/devices/spi0.0/driver_override
# echo spi0.0 > /sys/bus/spi/drivers/spi-nor/bind

注:为方便用户使用,该驱动默认会创建spidev设备,用户可以使用上面的命令主动解绑与spidev的绑定,或者undefine在ch34x_mphsi_master_spi.c文件中的“SPIDEV”宏定义。

使用GPIO接口

用户空间访问GPIO,可以使用sysfs,对驱动支持的GPIO,可在如下系统目录下查看。

/sys/class/gpio/<gpio>/

is created by the system, where <gpio> is the name of the GPIO as defined in the driver variable ch347_board_config. These directories contain

<gpio>是定义在驱动变量 ch347_board_config中的GPIO名称 ,目录包含

  • value 文件用于配置或读取GPIO电平

  • edge文件用于配置GPIO中断使能以及中断类型

  • direction文件用于改变支持双向GPIO的引脚方向

注:对文件的读写操作,用户需要指定的读写权限。

当前支持的中断类型包括:

  • rising 上升沿中断

  • falling 下降沿中断

  • both 双边沿中断

打开GPIO

使用GPIO前,需要先打开value文件

int  fd;
​
if ((fd = open("/sys/class/gpio/<gpio>/value", O_RDWR)) == -1) 
{
    perror("open");
    return -1;
}

<gpio>是GPIO的名称

设置GPIO方向

配置GPIO方向为input或output,可在root权限下简单地写入in或out字符串到direction文件。

echo out > /sys/class/gpio/gpio4/direction

设置GPIO输出

文件value打开后,可使用标准I/O函数进行读写,配置GPIO输出电平,可简单使用write函数,写入后GPIO会立刻输出指定电平。

if (write(fd, value ? "1" : "0", 1) == -1) 
{
    perror ("write");
    return -1;
}

读取GPIO电平

读取GPIO电平,可简单使用read函数:

char buf;
​
if (read(fd, &buf, 1) == -1) 
{
    perror("read");
    return -1;
}
​
value = (buf == '0') ? 0 : 1;

每一次读操作后,需要将文件位置指针需要重新定位到首字节。

if (lseek(fd, 0, SEEK_SET) == -1) {
    perror("lseek");
    return -1;
}

使用GPIO中断

完整的使用GPIO中断功能的驱动例程:

#include <linux/bitops.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/gpio.h>
#include <linux/of_gpio.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/uaccess.h>
#include <linux/irq.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
​
#define GPIO_NUMBER 509 /* modify with actual gpio number */
​
static irqreturn_t gpio_interrupt(int irq, void *dev_id)
{
    printk("gpio_interrupt callback.\n");
​
    return IRQ_HANDLED;
}
​
static int __init ch34x_gpio_init(void)
{
    unsigned long flags = IRQF_TRIGGER_FALLING;
    int ret;
    int irq;
​
    irq = gpio_to_irq(GPIO_NUMBER);
    printk("irq: %d\n", irq);
    ret = gpio_request(GPIO_NUMBER, "gpioint");
    if (ret) {
        printk("gpio_request failed.\n");
        goto exit;
    }
    ret = gpio_direction_input(GPIO_NUMBER);
    if (ret) {
        printk("gpio_direction_input failed.\n");
        gpio_free(GPIO_NUMBER);
        goto exit;
    }
    irq_set_irq_type(irq, flags);
    ret = request_irq(irq, gpio_interrupt, 0, "gpio_handler", NULL);
    printk("%s - request_irq = %d result = %d\n", __func__, irq, ret);
​
exit:
    return ret;
}
​
static void __exit ch34x_gpio_exit(void)
{
    int irq;
​
    irq = gpio_to_irq(GPIO_NUMBER);
    free_irq(irq, NULL);
    gpio_free(GPIO_NUMBER);
    printk("gpio driver exit.\n");
}
​
module_init(ch34x_gpio_init);
module_exit(ch34x_gpio_exit);
​
MODULE_LICENSE("GPL");
​

注:该驱动默认会创建gpio设备,若需要在内核中使用中断功能,需要undefine在ch34x_mphsi_master_gpio.c中定义的“SYSFS_GPIO”宏。

注

CH341支持3种工作模式

模式0: [串口]

模式1: [SPI+ I2C + GPIO]

模式2: [打印口]

CH347F 支持1种模式

模式0: [串口* 2 + SPI + I2C + JTAG + SWD] VCP/CDC/HID 驱动模式

CH347T 支持4种模式

模式0: [串口* 2] VCP/CDC 驱动模式

模式1: [SPI + I2C + 串口* 1] VCP 驱动模式

模式2: [SPI + I2C + 串口* 1] HID 驱动模式

模式3: [JTAG + 串口* 1] VCP 驱动模式

该驱动支持CH347F, CH341 模式1 或 CH347 模式1

有技术问题,可以发邮件至技术邮箱: tech@wch.cn

沁恒微电子CH347是一款高速USB总线转接芯片 CH347是一款高速USB总线转接芯片,通过USB总线提供异步串口、I2C同步串行接口、SPI同步串行接口和JTAG接口等。 阅读详情

相关推荐

62-USB转JTAG or SPI电路设计

USB转JTAG or SPI电路设计

weixin_66510961的博客 3245

USB转I2C芯片操作EEPROM--CH347应用

高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。

PC小能手的博客 1万+

告别原生接口焦虑:CH347 USB转SPI/I2C/GPIO多协议扩展板在Linux下的驱动安装与设备管理指南

本文详细介绍了CH347 USB转SPI/I2C/GPIO多协议扩展板在Linux下的驱动安装与设备管理方法。通过解析CH347芯片架构、驱动编译流程及高级设备管理技巧,帮助开发者高效解决接口资源紧张问题,实现多协议并行处理与稳定运行。

weixin_42525632的博客 339

【1】国产USB转接芯片CH347-初体验

CH347是一款国产USB2.0高速接口转接芯片,可实现单路USB转SPI/IIC/JTAG/SerialPort/GPIO接口,其中UART&SPI&IIC或者UART&JTAG可同时使用/

OIDCAT的博客 8090

告别树莓派GPIO不够用?用CH347给Linux小主机低成本扩展一堆IO和总线

本文详细介绍了如何利用CH347芯片为Linux小主机低成本扩展IO与总线接口,解决树莓派等设备GPIO不足的问题。通过对比CH347F和CH347T型号特性,分析Linux驱动方案,并结合智能环境监测终端实战案例,展示SPI、I2C和GPIO的配置与优化技巧,帮助开发者高效扩展外设接口。

weixin_28724661的博客 414

CH34X USB转I2C芯片调试:i2c-tools实战与性能调优指南

I2C(Inter-Integrated Circuit)是一种广泛应用于嵌入式系统的串行通信总线协议,它通过主从架构和简单的双线制(SDA数据线、SCL时钟线)实现设备间通信。其工作原理基于开漏输出和线与逻辑,需要上拉电阻确保信号电平,这是理解I2C总线稳定性的基础。该协议的技术价值在于支持多主多从、硬件地址寻址和低速设备互联,在传感器数据采集、EEPROM存储和IO扩展等场景中至关重要。当通过CH34X这类USB转I2C桥接芯片扩展主控能力时,标准工具链的适配成为关键。本文聚焦于在Linux环境下,如何

weixin_34174105的博客 406

Linux系统CH347应用—GPIO输出输入与中断功能

Linux/安卓系统可使用CH347转接GPIO功能,所有GPIO均为双向IO口,支持输出与输入切换,输出时为推挽输出结构,具有较强驱动能力,输入时内部为弱上拉输入,上拉能力较弱。此外,用作输入的GPIO还支持GPIO中断功能。 在系统下提供2种应用方式使用GPIO,第一种使用Master主机驱动扩展GPIO,其使用方法和系统自带的GPIO口一样。

PC小能手的博客 1651

【信息科学与工程学】【产品体系】计算机科学与自动化——第一百八十九篇 操作系统内核(微内核/宏内核)函数与算法02

宏内核(Linux)更多典型内核函数/算法,从编号271开始,覆盖中断管理、热插拔、PCI、ACPI、固件、崩溃转储、kexec、休眠、watchdog、RTC、hwmon、LED、backlight、input子系统、remoteproc等更多领域。编号类型领域内核类型内核中的函数/算法/模块/模组模块的调用关系模块/函数/算法逐步推理思考的数学表达式及参数列表及参数数值设计模块的C/C++/其他代码关联知识271中断管理中断描述符宏内核 / (中断子系统核心)驱动申请中断 → → → 分配irq_

weixin_49199313的博客 111

CH347F一芯多用:OpenOCD调试与flashrom读写SPI Flash

在嵌入式开发中,调试器与烧录器通常是两套独立工具,增加了设备成本与切换成本。多协议USB转接芯片通过内部集成SPI、I2C、UART及JTAG/SWD控制器,为“一芯多用”提供了硬件基础。借助OpenOCD与flashrom这两款开源工具,开发者可以复用同一套硬件完成MCU的SWD在线调试与SPI NOR Flash离线读写,大幅简化桌面设备。以CH347F为例,其芯片级模式切换机制让调试与烧录可以分时复用,配合现代工具链即可构建便携式烧录调试平台。本文思路也适用于其他具备多协议复用能力的USB转接方案,尤

weixin_34332905的博客 314

三模冗余设计

在数字电路设计中,Voter模块(表决器) 和 三模冗余(Triple Modular Redundancy, TMR) 是高可靠性系统的核心设计技术,主要用于容错和抗辐射(如航天、医疗设备等关键领域)。容错机制:若任一模块故障(如SEU,单粒子翻转),其他两个模块仍能保证正确输出。功耗与面积:TMR会显著增加资源占用(约3倍),需权衡可靠性和成本。航天电子:抗辐射芯片(如FPGA)中用于防止单粒子翻转(SEU)。故障检测:可扩展设计以检测并隔离故障模块(如通过BIST)。

qq_45776815的博客 2056

[MTK][Android P]如何去掉差分包中的preloader分区

最近碰到一个问题,在进行差分升级的时候,会因为某些原因导致preloader hash值不匹配,升级失败,所以需要在差分升级的时候不升级preloader。 解决的方法,就是在制作AB分区的差分升级包的时候,把目标zip解压出来,把ab_partitions.txt中的分区名去掉,同时把preloader.img去掉 修改如下: Project/build/tools/releasetool...

thonmin的专栏 1434

【信息科学与工程学】【通信工程】第三百零五篇 网络中的几何/拓扑/离散数学/组合数学 01

矩 accountant 累计。Bluetooth LE广告包。单细胞RNA-seq计数矩阵。梯度AllReduce算法。蛋白质-蛋白质相互作用网络。联邦学习本地epoch数。资本资产定价模型beta。联邦学习客户端采样比例。联邦学习服务器聚合权重。变分量子本征求解器参数。抵押贷款支持证券现金流。数据加载器工作进程数。流水线并行微批次数量。学习感知图像块相似度。边缘设备CPU利用率。ZigBee网络地址。量子近似优化算法参数。宇宙微波背景温度涨落。

weixin_49199313的博客 247

论文阅读--射频电源在半导体领域的应用

射频电源(RF Power Supply)是能够输出300kHz~300GHz正弦波电压的高频交流电源,在半导体制造领域,射频电源的典型工作频率范围为400kHz∼60 MHz,主要由射频发生器(功率源)、匹配器及配套控制电路组件构成,其关键组件包括变压器与电抗器、晶闸管、绝缘栅双极型晶体管(IGBT)、钣金件、铜材及各种电子元器件。射频电源是刻蚀和薄膜沉积工艺的核心,主要用于产生等离子体,以增强气体反应活性,其性能直接影响反应腔体内等离子体的浓度、均匀性和稳定性。

伊丽莎白的学习之路 2341

CH347使用笔记:CH347驱动安装、评估板使用

CH347使用笔记:CH347驱动安装、评估板使用

qq_43010294的博客 7560

高分系列卫星轨道、传感器参数等信息

遥感卫星数据简介-高分系列

中遥科 3309

深信服aCloud虚拟存储VS3.0实战:从数据分片到仲裁机制的全流程解析

本文深度解析了深信服aCloud虚拟存储VS3.0的核心架构与生产级实践。从数据分片、条带化写入、多副本机制到智能缓存分层,详细阐述了其如何实现高性能与高可靠性的平衡。同时,深入剖析了动态均衡、平滑扩容以及故障恢复与仲裁机制,为运维人员和技术决策者提供了在超融合基础架构(HCI)中部署和管理虚拟存储的实战指南。

net55的博客 588

Linux系统CH347应用—概述

CH347 高速 USB2.0 总线转换芯片,可实现为USB主机扩展JTAG\SWD\SPI\I2C\UART\GPIO等接口的功能,包含 CH347F和CH347T两种型号,其区别主要在于:1、封装差异,CH347F为QFN28_4X4,CH347T为TSSOP-20封装;2、模式差异,CH347F不需要进行模式配置进行接口选择,CH347T需要进行模式选择;3、VIO电源差异,CH347T提供独立的VIO电源引脚,支持IO接口独立供电,支持3.3V/2.5V/1.8V等。

PC小能手的博客 3267

[EdgeAI] NXP eIQ 机器学习Toolkit (二):模型篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。......

HowieXue 薛永浩的博客 1万+

9M高速USB转接芯片CH347转双串口转I2C转SPI转JTAG转SWD

480Mbps 高速 USB 设备接口,外围元器件只需晶振和电容。内置 EEPROM,可配置工作模式、芯片 VID、PID、最大电流值、厂商和产品信息字符串等参数。单一 3.3V 供电。CH347F 支持 I/O 独立供电,支持 3.3V、2.5V、1.8V 电源电压。提供 TSSOP-20 和 QFN28 无铅封装,兼容 RoHS。多种工作模式,适应高速 USB 转接应用需求。

易板 3921

如何在 DevOps 管道中实现 AI?

AI与DevOps的融合(AIOps)正在重塑软件开发生命周期。本文系统阐述了AI在DevOps中的五大应用场景:智能监控、自动化测试、安全防护、CI/CD优化和事件管理,并提出了六步实施框架:痛点识别、工具选型、流程集成、智能监控、MLOps和治理合规。通过Netflix、Google等企业的实践案例,验证了AI在提升部署效率(降低40%故障率)、缩短问题解决时间(MTTR减少60%)方面的显著价值,同时指出数据质量、模型偏差等实施挑战。研究表明,战略性地

介绍AWS Azure GCP devops Terraform 等技术 497

6、直流微电网中恒功率负载(CPL)的稳定性分析与控制策略

本文探讨了直流微电网中恒功率负载(CPL)带来的稳定性问题,并深入分析了其影响机制及相应的缓解策略。文章首先通过小信号模型和非线性分析揭示了CPL对系统稳定性的影响,接着讨论了被动稳定方法的优缺点,最后重点介绍了基于时间的方法和几何控制器等控制策略。这些方法各有优劣,在实际应用中需结合具体需求选择合适方案,以实现直流微电网的稳定运行。

star的博客 227

一起来做个CH347的项目(应用于FPGA、CPLD、MCU)

但并不满足于此,鉴于目前市面上存在的大多数JTAG调试器都是使用FT2232等完成,因为接口的不同,所以在常用的一些IDE上没法直接使用CH347,比如quartus、vivado等,但同时一些优秀的开源方案给予了灵感,比如OpenOCD、OpenFPGALoader等,结合开源方案+CH347就可以实现此些功能应用。所以突发奇想,做一个基于CH347的程序工程,可以用于FPGA、MCU调试和下载功能,还有CH347的其他接口也都有一定探索空间。

OIDCAT的博客 7317

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CH341应用升级为CH347软硬件注意事项

CH341是一款USB总线的转接芯片,支持转接为串口、并口、SPI和I2C接口等,但其串口和其他接口模式是独立分开的,不能在同一模式下使用串口和其他接口,此时,则可使用CH347进行替换。CH347是一款高速USB2.0转接芯片,可转接出UART、SPI、I2C、JTAG、GPIO等接口,且支持厂商驱动或者系统自带的HID驱动来实现接口功能。其中UART最高支持到9Mbps通讯速率,SPI和JTAG速率最高支持到60MHz,其频率可通过接口API进行配置。

PC小能手的博客 5571

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

USB转I2C转SPI芯片CH341与CH347比较

CH341与CH347比较,串口速度CH341=2M,CH347=9M,CH347的串口速度更快;CH341的I2C或SPI不能与串口同时输出,CH347可以在支持串口的同时使用I2C或SPI;CH347增加了JTAG、SWD 接口、I/O 独立供电。

易板 4789

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CH347使用笔记:CH347结合STM32CubeIDE实现单片机下载与调试

基于STM32CubeIDE的CH347 JTAG_SWD调试器使用说明

qq_43010294的博客 2947

不同编程语言下CH347DLL的调用方法

总结一下在C/C++、Python、C#下调用CH347DLL的方法,若有其他需要补充的也可一起交流。

OIDCAT的博客 7652
上一篇: Windows串口出厂测试工具与使用说明
下一篇: 安卓系统开机运行shell脚本
PC技术小能手
博客等级 码龄7年 1万+粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PC技术小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值