- 博客(83)
- 资源 (28)
- 收藏
- 关注
原创 【Docker】ubuntu20.04 X86机器搭建NVIDIA ARM64 TX2的Docker镜像
是一个用于利用当前操作系统来运行其它架构的一个仿真器,可以通过x86的机器编译出其它各个架构的docker镜像。打开清华源官网,选择自己使用的ubuntu的版本,例如:Ubuntu 20.04。为了后面ubuntu下载安装软件快些,需要使用国内的源,比如清华源。通过查询命令可以看到刚刚被成功创建的TX2的容器,并且容器的ID为。因为需要在X86架构机器模拟ARM架构来编译,这里需要用到。,下次启动就可以直接通过容器ID来启动。因为TX2实际的板子使用的版本为。,所以这里的镜像保持一直都使用。
2023-09-14 16:56:49
2432
3
原创 【I2C】Linux使用GPIO模拟I2C
在Linux项目中,如果出现硬件硬件I2C不够用的情况下,我们就可以通过GPIO模拟I2C来解决。Lnux内核的i2c-gpio是使用GPIO模拟I2C协议的驱动,在内核中已经实现了,我们要做的只需要配置2个GPIO(SDA和SCL)即可。i2c-gpioi2c-gpio.c解析设备树中的引脚配置信息提供GPIO SDA和SCL引脚配置接口。向I2C Core注册一个adapter提供I2C通信时的算法,然后通过i2c-gpio.c提供GPIO配置接口来收发数据。注册成功后,
2023-06-12 17:05:40
6348
原创 【I2C】Linux I2C子系统分析
是根据Soc的I2C硬件寄存器来实现read、write通信的方法,适配器需要通过i2c_algorithm提供的通信函数来产生对应的访问时序。就是i2c标准总线设备驱动模型中的驱动部分,它主要是现实该I2C设备具体初始化、操作函数接口等的实现,等待app程序的对该I2C设备实现业务上面的逻辑。新的adapter将根据总线number添加到I2C Core的全局变量i2c_adapter_idr中,为以后get对应的adapter做准备。这里主要是在I2C总线下,注册一个i2c adapter类型的设备。
2023-06-02 15:22:34
1279
原创 【Bus】编写一个Demo虚拟的总线-设备-驱动模型
Linux平台为了驱动的可重用性,虚拟了很多的虚拟总线。很经典的就是platform总线,只要platform device和platform driver的名字匹配就调用driver的probe函数。在分析内核源码时,经常会遇到各种总线。为了方便和加深理解,本篇文章写了一个虚拟Demo总线来加深对总线模型的理解。下面是总线-设备-驱动模型。
2023-04-29 12:38:39
1402
原创 【I2C】通用驱动i2c-dev分析
前面分析i2c-tool测试工具就是基于驱动来实现的。i2c-dev驱动在加载时会遍历所有的I2C总线()上所有注册的adapter/dev/i2c-0/dev/i2c-1/dev/i2c-2等。应用程序通过open打开对应的i2c字符设备,通过ioctl来收发数据。
2023-04-01 17:26:32
3714
原创 【I2C】基于/dev/i2c-x应用层读写I2C设备
本测试程序主要是参考中的,为了方便以后使用,在这里做一个记录。其实它主要是基于驱动创建的/dev/i2c-x字符设备来操作I2C设备。
2023-03-25 17:40:28
3436
原创 【I2C】基于Linux移植i2c-tool工具
SMBus是基于I2C协议的,SMBus要求更严格,SMBus是I2C协议的子集。:强制模式,即使驱动程序已经注册该设备,也允许用户从寄存器读取/写入寄存器。:强制模式,即使驱动程序已经注册该设备,也允许用户从寄存器读取/写入寄存器。:强制模式,即使驱动程序已经注册该设备,也允许用户从寄存器读取/写入寄存器。:强制模式,即使驱动程序已经注册该设备,也允许用户从寄存器读取/写入寄存器。:强制模式,即使驱动程序已经注册该设备,也允许用户从寄存器读取/写入寄存器。,不再询问用户确认。,不再询问用户确认。
2023-03-23 17:51:41
3748
1
原创 【Linux】虚拟Pinctrl Demo驱动(二) -- Debug FS之Pinctrl分析
我们在调试Pinctrl子系统时,会使用到。在目录下就会有pinctrl目录,如果该目录下没有任何目录或文件,说明debugfs功能没有被打开。
2022-10-07 07:48:38
1969
原创 【Linux】虚拟Pinctrl Demo驱动(一)-- Demo Code
为了更进一步了解Linux的Pinctrl子系统,这里编写一个虚拟的Pinctrl Demo驱动。下面是编写的内容文件列表:下面是在加载驱动和驱动后的运行效果:下面主要是分析,只是驱动模板什么都没有做。之所以需要驱动,是在设备树中引用了里面的。驱动加载probe时,就调用Pinctrl子系统。
2022-10-04 10:58:11
929
原创 【Linux】基于IMX6ULL平台Pinctrl架构分析总结(二)-- Client Device使用过程
1. 前言在上一篇文章已经介绍了Pinctrl子系统中Pin Controller注册过程《【Linux】基于IMX6ULL平台Pinctrl架构分析总结(一)-- Pin Controller注册过程》,本篇文章主要是介绍Client Device是如何设置Pin的状态。在Device Tree中,Pinctrl主要分为2个部分:Pin Controller和Clinet Device。Device可能会有多个状态,不同的状态下,Pin的状态的作用可能不相同。I2C1 Client Device只有一个
2022-04-10 16:29:38
1626
1
原创 【Linux】基于IMX6ULL平台Pinctrl架构分析总结(一)-- Pin Controller注册过程
1. 前言在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。通过pinctrl子系统来设置引脚的复用、配置,可以将IO复用成GPIO、I2C等其它功能。本篇文章主要是基于IMX6ULL平台来分析Pin Controller子系统整个注册过程。整个pinctrl子系统比较核心的结构体是struct pinctrl_dev,后面会详细一步步介绍它整个构造过程。下面是经过分析总结的图,如下:2....
2022-04-09 09:49:43
1837
原创 【Linux】常见问题汇总(一)
文章目录问题一:/sys/kernel/debug/下没有任何文件问题一:/sys/kernel/debug/下没有任何文件问题现象:在linux的debugfs中,/sys/kernel/debug/目录下面没有发现任何文件。解决办法:查看config是否有配置CONFIG_DEBUG_FS注意:虽然上面定义了CONFIG_DEBUG_FS,但是此时/sys/kernel/debug/目录还是没有任何文件。需要将debugfs挂载到这个目录下,2种方法:方法一:运行如下命令,手动挂载到
2022-03-06 08:55:43
4138
原创 【Linux】基于busybox移植rootfs根文件系统
文章目录1. 前言2. 下载Busybox3. 编译Busybox4. 向rootfs根文件系统添加lib库5. 根文件系统初步测试6. 完善rootfs根文件系统7. 根文件系统最终测试8. 移植过程错误汇总1. 前言我们所熟悉的Linux主要由三部分组成:uboot、Linux Kernel、rootfs(根文件系统)。uboot启动后会加载Linux Kernel,然后Kernel再来挂载rootfs文件系统,进入文件系统后,我们才可以运行我们的应用程序,对不同的设备进行操作。本篇文章主要是介绍通
2022-01-17 14:50:45
2098
原创 【Linux】Linux5.4.70内核定时器的使用
文章目录1. 定时器简介2. Timer相关API介绍3. Timer时间单位4. Timer Demo测试验证5. 定时器内部机制简单分析6. 参考资料1. 定时器简介本篇文章介绍内核定时器是基于内核Linux5.4.70版本,它是内核用来控制再未来某个时间点(基于jiffies)调度执行某个函数的一种机制,代码实现位于include/linux/timer.h和kernel/time/timer.c文件中。定时器数据结构,如下:struct timer_list { /* * All fi
2021-09-26 21:50:29
6730
3
原创 【Linux】内核中休眠与唤醒的使用(wait_event、wake_up)
文章目录1. 前言2. 休眠和唤醒内核函数介绍3. 使用休眠与唤醒的驱动框架4. 编写测试程序1. 前言在wait_event_interruptible()函数中会将当前进程的状态设置成TASK_INTERRUPTIBLE,然后调用schedule(),它会将位于TASK_INTERRUPTIBLE状态的进程从run queue队列中删除。从run queue队列中删除的结果是,当前这个进程将不再参与调度,除非通过其他将这个进程重新放入run queue队列中,wake_up()函数就是这个作用。由
2021-09-19 20:53:51
13392
6
原创 【MCU】Keil编译无法识别__WEAK问题
文章目录1. Keil编译无法识别__WEAK问题2. ARM系列编译工具链:`__CC_ARM、__ICCARM__、__GNUC__、__TASKING__`__CC_ARM对应的平台是:ARM RealView:__ICCARM__对应的平台是:IAR EWARM:__GNUC__对应的平台是:GNU Compiler Collection:__TASKING__对应的平台是:Altinum Designer:3. 参考博客1. Keil编译无法识别__WEAK问题在使用Keil编译有时出现无法识
2021-09-11 21:39:48
15558
7
原创 【Linux】编写一个Linux按键中断Demo
文章目录1. 前言2. 硬件介绍3. 编写按键驱动程序4. 配置设备树5. 烧录验证6. 工程代码下载地址1. 前言在内核里面实现了按键驱动,drivers/input/keyboard/gpio_keys.c,我们可以参考它来学着写一个按键中断程序。2. 硬件介绍通过下面的硬件我们可以知道按键检测GPIO默认是高电平,如果按键被按下就变成低电平。所以,我们可以配置GPIO为中断模式,检测KEY是否被按下。3. 编写按键驱动程序在设备树中添加按键使用的引脚,如下:imx_gpio_keys
2021-09-09 20:58:14
1598
1
原创 【Linux】编写一个简单Linux驱动Demo -- 控制LED
文章目录1. 前言2. 设备树和platform_driver的匹配3. 编译led driver4. 编译led app5. 测试验证6. 测试demo完整工程1. 前言本篇文章主要是介绍在linux平台上,如何编写一个简单的Driver来控制LED的亮灭。我们通过DeviceTree来定义硬件资源,和Driver匹配成功之后可以拿到硬件资源控制硬件GPIO。下面是APP、Driver和硬件的架构,如下:2. 设备树和platform_driver的匹配设备树节点是根据platform_driv
2021-08-22 12:00:50
1556
原创 【QT】VS2017+QT使用QCustomPlot绘图
文章目录1. 前言2. 下载QCustomPlot的源码3. 将QCustomPlot添加到QT项目4. 移植QCustomPlot Demo中的plots5. 测试demo完整工程1. 前言QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用。官方网址:https://www.qcustomplot.com/下面是运行的效果如下:2. 下载QCustomPlot的源码源码下载地址:htt
2021-08-10 16:13:09
4051
原创 【Linux】QT5移植到Linux ARM
文章目录1. 前言2. tslib-1.22的移植2.1 tslib官方源码下载2.2 交叉编译tslib源码3. QT5.15.2的移植3.1 QT5.15.2官方源码下载3.2 交叉编译QT1. 前言QT 是一种跨平台 C++图形用户界面应用程序开发框架。它既可以开发 GUI 程序,也可用于开发非 GUI 程序,比如控制台工具和服务器。在嵌入式 Linux 系统上,移植QT时通常需要支持tslisb,它是开源并常用的触摸屏库。下面会通过2个部分来介绍整个移植过程:tslisb移植和qt移植。2.
2021-07-27 16:03:53
6466
3
原创 【Linux】基于IMX6ULL移植Buildroot
文章目录1. Buildroot 简介2. 获取 buildroot 源码3. 编译环境配置4. 通过buildroot编译imx6ull5. 修改默认配置适配imx6ull uboot1. Buildroot 简介Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系
2021-07-15 18:06:54
3713
1
原创 【Linux】imx6ull Kernel 源码下载和编译环境配置
文章目录1. 获取 ARM 官方交叉编译工具链2. 在IMX官网下载IMX6ULL相关资料3. 下载源码和编译kernel4. 编译验证kernel5. 相关文章1. 获取 ARM 官方交叉编译工具链在ubuntu linux环境下编译imx6ull Kernel源码时,需要安装对应版本的交叉编译工具链。IMX6ULL的CPU是 32bit ARM v7架构并支持硬件浮点,所以下载 AArch32版本工具链后缀为gnueabihf,地址如下:https://developer.arm.com/tool
2021-07-13 17:42:42
4210
3
原创 【TOOLS】ubuntu如何安装QtCreator
文章目录1. 准备工作2. 详细安装步骤1. 准备工作首先去QT官网下载安装包,我这里选择的是在线安装,路径如下:https://download.qt.io/archive/online_installers/4.1/将下载好的安装包存放在ubuntu上:添加可执行的权限,并启动安装:chmod +x qt-unified-linux-x86_64-4.1.1-online.runsudo ./qt-unified-linux-x86_64-4.1.1-online.run2. 详细安
2021-07-08 16:32:25
3736
原创 【uboot】imx6ull uboot移植LAN8720A网卡驱动
文章目录相关文章1. 前言2. IMX6ULL Ethernet LAN8720A硬件连接3. 支持LAN8720A修改步骤4. 验证测试问题1:如何确定LAN8720A网卡PHYAD地址?问题2:如何确定device tree中对reset gpio的定义?问题3:LAN8720A网卡nINTSEL是如何配置?问题4:IMX6ULL ETH是如何被初始化的?相关文章1.《【uboot】imx6ull uboot 2020.04源码下载和编译环境配置》2.《【Ethernet】以太网卡LAN8720
2021-06-28 21:18:44
3789
5
原创 【Ethernet】以太网卡LAN8720A分析和使用
文章目录1. LAN8720A简介2. PHYAD[0]: PHY地址配置3. MODE[2:0]: Mode配置4. nINTSEL: nINT/REFCLKO配置5. REGOFF: 配置内部+1.2V电压源6.SMI(MDC/MDIO)总线接口介绍6.1 MDIO接口6.2 MDIO数据传输协议7. 相关寄存器描述8. 参考资料1. LAN8720A简介LAN8720A 是 SMSC 公司(已被 Microchip公司收购)设计的一个体积小、功耗低、全能型 10/100Mbps 的以太网物理层收发
2021-06-28 16:52:49
33154
3
原创 【uboot】uboot 2020.04 Pinctrl子系统分析和使用
1. 前言在许多soc内部都包含有pin控制器,通过pin控制器的寄存器,我们可以配置一个或者一组引脚的功能和特性。uboot提供一个类似linux的pinctrl子系统,目的是为了统一各soc厂商的pin脚管理。2. Pinctrl子系统的功能简介我们可以通过pinctrl子系统来设置引脚的复用、配置,可以将IO复用成GPIO、I2C等其它功能。图如下:管理系统中所有的可以控制的pin,在系统初始化的时候,枚举所有可以控制的pin,并标识这些pin。管理这些pin的复用(Multiplexi
2021-06-18 11:02:00
3381
1
原创 【uboot】uboot 2020.04 DM驱动模式 -- 架构分析
相关文章1.《【uboot】imx6ull uboot 2020.04源码下载和编译环境配置》2.《【uboot】uboot 2020.04 DM驱动模式 – Demo体验》1. DM驱动模式简介uboot引入了驱动模型(driver model)简称为DM,这种驱动模型为驱动的定义和访问接口提供了统一的方法。提高了驱动之间的兼容性以及访问的标准型。它主要包含以下4个成员:udevice:它就是指设备对象,一个driver的实例。driver:udevice的驱动,硬件外设的driver。u
2021-06-10 17:27:00
5899
5
原创 【uboot】uboot 2020.04 DM驱动模式 -- Demo体验
文章目录1. 前言2. uboot的驱动模型简介1. 前言本篇文章是基于IMX6ULL平台uboot 2020.04源码分析DM驱动模式是如何使用的。IMX6ULL平台uboot源码下载可以参考这篇文章《【uboot】imx6ull uboot 2020.04源码下载和编译环境配置》。2. uboot的驱动模型简介uboot引入了驱动模型(driver model)简称为DM,这种驱动模型为驱动的定义和访问接口提供了统一的方法。提高了驱动之间的兼容性以及访问的标准型。uboot官网有对DM的使用介
2021-06-05 18:03:08
2306
原创 【uboot】imx6ull uboot 2020.04源码下载和编译环境配置
文章目录1. 获取 ARM 官方交叉编译工具链2. imx6ull uboot源码下载3. imx6ull uboot编译1. 获取 ARM 官方交叉编译工具链在ubuntu linux环境下编译imx6ull uboot源码时,需要安装对应版本的交叉编译工具链。IMX6ULL的CPU是 32bit ARM v7架构并支持硬件浮点,所以下载 AArch32版本工具链后缀为gnueabihf,地址如下:https://developer.arm.com/tools-and-software/open-s
2021-06-04 16:09:31
4012
原创 【Linux】ubuntu20.04搭建编译环境
1.新安装的系统创建ROOT用户创建root用户:sudo passwd root //会让你输入当前用户密码。输入按下回车输入两次root密码`切换到root用户:su root //提示输入root密码。输入即可运行结果如下:2.创建一个新用户创建新用户:sudo adduser benjamin // 创建新用户benjamin,设置新用户密码(输入2次),然后一直回车输入Y切换到新用户:su benjamin运行结果如下:将新用户赋予管理员的权限:sudo ad
2021-05-09 16:19:05
5326
4
原创 【Audio】基于STM32 I2S移植WM8978 Audio Codec驱动
1. WM8978简介WM8978是一款低功耗,高质量的立体声编解码器,专为便携式应用,如数码相机或数码摄像机等。该芯片集成了立体声差分麦克风的前置放大器,并包括扬声器、耳机和差分或立体声线输出的驱动器。外部组件要求减少,因为不需要单独的麦克风或耳机放大器。WM8978的功能框图如下所示:2. WM8978硬件连接使用STM32F429+WM8978硬件平台,通过I2S接口来读写音频数据,I2C接口发送写命令控制WM8978相关功能。STM32F429与WM8978的引脚连接如下:
2021-05-04 16:34:16
12873
17
原创 【Audio】I2S传输PCM音频数据分析总结(二)
1.前言《I2S传输PCM音频数据分析总结》主要是介绍PCM音频数据是如何通过I2S进行传输的,主要是分成2个部分:PCM音频数据介绍 - 《【Audio】I2S传输PCM音频数据分析总结(一)》I2S协议介绍本篇文章主要是以I2S协议来介绍。2....
2021-04-30 16:52:34
9003
1
原创 【Audio】I2S传输PCM音频数据分析总结(一)
1.前言本篇文章主要是介绍PCM音频数据是如何通过I2S进行传输的,主要是分成2个部分:PCM音频数据介绍I2S协议介绍2.PCM音频数据介绍PCM音频(Pulse-Code Modulation)是一种用数字表示采样模拟信号的方法。要将一段音频模拟信号转换为数字表示,包含如下三个步骤:Sampling(采样)Quantization(量化)Coding(编码)下面的截图是PCM音频 1KHz 正弦波的波形,播放出来就是“滴”的声音:2.1 Sampling(采样)Samp
2021-04-26 18:04:20
7474
原创 【FatFs】基于STM32 SD卡移植FatFs文件系统
1.前言FatFs是一个通用的FAT/exFAT文件系统模块,用于小型嵌入式系统。它完全是由 ANSI C 语言编写并且完全独立于底层的 I/O 介质。因此它是独立于平台的,可以集成到资源有限的小型微控制器中,如8051、PIC、AVR、ARM、Z80、RX等。FatFs 支持 FAT12、FAT16、FAT32、exFAT 等格式,所以我们利用前面写好的 SD卡驱动,把 FatFs 文件系统代码移植到工程。2.如何下载FatFs文件系统FatFs 文件系统的源码可以从 fatfs 官网下载:htt
2021-04-07 21:09:04
6812
原创 【FatFs】FAT32文件系统协议总结(理论+实践)
1.前言本篇文章主要是介绍FAT 格式分区内数据是如何存储的。FAT 分区格式是Microsoft 最早支持的分区格式,依据 FAT 表中每个簇链的所占位数(有关概念,后面会讲到)分为 FAT12、 FAT16、 FAT32 三种格式"变种",但其基本存储方式是相似的。我们在嵌入式系统中使用的最多的是FAT32,所以后面主要介绍的是FAT32。在介绍 FAT32文件系统前,我们需要先了解一下硬盘基本知识:磁头、磁道、扇区、柱面等,方便后面对FAT32文件系统的理解。NOTE:本文介绍的很多概念都是
2021-03-27 15:28:05
8182
4
原创 【STM32】STM32 SDIO SD卡读写测试(四)-- SD_Test之Transfer Mode阶段
1.前言本篇文章主要是介绍SD卡的读写测试,包括:SD卡擦除测试、SD卡单一块读写测试、SD卡多个块读写测试。这个3个测试主要是调用了stm324x9i_eval_sdio_sd.c里面的相关API,下面会详细的介绍这些API是如何实现的。SD卡在Transfer Mode阶段的状态图如下:SD卡的读写测试的思维导图如下,下面会详细介绍这3个函数是如何实现的:2.SD_EraseTest()SD_EraseTest()函数主要的流程是擦除指定地址块的存储,通过DMA的方式读取这写块的数据,判断是
2021-03-07 19:09:13
5460
5
原创 【SDIO】SDIO、SD卡、FatFs文件系统相关文章索引
1.SDIO协议分析1.《【SDIO】SD2.0协议分析总结(一)-- SD卡基本概率介绍》2.《【SDIO】SD2.0协议分析总结(二)-- SD卡识别&数据传输过程》3.《【SDIO】SD2.0协议分析总结(三)-- SD卡相关命令介绍》2.STM32平台SD卡实验1.《【STM32】STM32 SDIO SD卡读写测试(一)-- SD卡硬件设计和软件移植》2.《【STM32】STM32 SDIO SD卡读写测试(二)-- SD_Init之Power On阶段》3.《【STM32】
2021-02-27 13:01:19
2753
1
原创 【STM32】STM32 SDIO SD卡读写测试(三)-- SD_Init之Init Card阶段
1. 前言本篇文章主要是介绍stm324x9i_eval_sdio_sd.c里面SD_Init()函数完整的过程。它主要是实现了SDIO的初始化、SD卡的Power UP、SD卡的初始化和获取SD卡的相关信息等,下面会详细介绍SD卡的初始化和获取SD卡的相关信息的分析。2. SD_InitializeCards()SD_InitializeCards()主要的功能是初始化SD卡获取CID和RCA的信息,并进入Standby状态。主要涉及到的函数如下:CMD2: SD_CMD_ALL_SEND_C
2021-02-27 12:32:55
6361
8
原创 【C/C++】使用DUMP8、DUMP16、DUMP32打印数据Buffer
1.前言经常在编程时会遇到打印Data Buffer的情况,下面定义了DUMP8、DUMP16、DUMP32,很方便来打印Data Buffer里面的数据。2.hal_print.c#include "hal_print.h"/** **************************************************************************************** * @brief function used to Print data
2021-02-26 14:28:27
1971
5
13-i2c-client.rar
2023-06-02
linux总线设备驱动模型的demo code
2023-04-29
虚拟Pinctrl Demo驱动
2022-10-04
04_key_wait_wake.rar
2021-09-19
03_gpio_key.rar
2021-09-09
02_led_ctrl.rar
2021-08-22
QCustomPlotDome.rar
2021-08-10
uboot_2020.04_driver_model_demo.tar.gz
2021-06-05
1.stm32f429_audio_i2s_record_playback.rar
2021-05-04
2.stm32f429_sdio_fatfs_test.rar
2021-04-07
FAT32文件系统参考资料.rar
2021-03-27
dump_print_demo.rar
2021-02-26
1.stm32f429_sdio_rd_wt_test.rar
2021-02-14
SDIO参考资料.rar
2021-01-31
9.stm32f429_lwip2.1.2_FreeRTOS_mqtt_baidu.rar
2021-01-04
stm32f429_lwip2.1.2_FreeRTOS_tcp_client&server.rar
2020-12-10
BMI160.rar
2020-12-03
stm32f103-spi-bmi160-demo-20201126.rar
2020-12-02
8.stm32f429_lwip2.1.2_FreeRTOS_tcp.rar
2020-11-19
7.stm32f429_lwip2.1.2_FreeRTOS_base.rar
2020-11-09
3.stm32f429_lwip_basic_dns.rar
2020-10-24
2.stm32f429_lwip_basic_dhcp.rar
2020-10-18
stm32f429_lwip_basic_ping.rar
2020-10-13
Qrencode二维码开发资料.rar
2020-06-27
VS2017+QT如何创建和使用静态库.rar
2020-06-21
SQLite资料
2012-12-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人