自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 DSP 知识点

我们将其八位全部取反,得到01111111, 然后加1,得到10000000. 将该数看作无符号数,值为128, 故计算机中的10000000表示的是-128。将每个二进制位(包括符号位)取反加1,得到一个二进制数,将该数看成无符号数,其值就是上述负数的绝对值。最高位为0的8位有符号数有128个,但全0的那个表示数0,所以总共只能表示127个正整数。有符号整数在计算机中分别占有一个字节(8位),2个字节(16位),四个字节(32位),8个字节(64位)2 若最高位(即符号位)为0,表示正数。

2024-05-08 11:23:37 341

原创 越南语输入法使用指南

这两种是借助其他字符件完成越南语的输入,但是在手机上无法使用,打字的速度和Telex差不多。通过26个英文字母键盘来完成越南语29个字母和5个音调的输入,这种方式是最常用的。越南语输入法的打字方式大致有三种:Telex、VIQR、VNI。所以,下面给大家介绍的输入法软件都是Telex 类的。Tôi thích ăn lẩu (我喜欢吃火锅)答案:Tooi thisch awn laaru。字母:a,e,i,o,u,w,y 语音调有效。1、 越南语输入法打字规则。

2024-04-26 09:39:50 507

原创 Keil5编译器设置单片机上电复位后RAM数据不被初始化

特别注意:使用此方法,当内存为外部内存时,例如外部SDRAM内存时,则定义的时候必须要在其后面加上zero_init修饰符,否则程序会进入HardFault_Handler。第一步初始化堆栈指针,然后跑SystemInit,再跳到__main,在__main里会把所有RAM清空(sct分散文件),以及加载全局和静态变量。将IRAM区域中的NoInit勾选,即表示在_main中不会被初始化,IRAM中需要填入内存的起始地址和内存的容量大小。通过Keil5编译器设置。

2024-04-08 17:42:01 512

原创 STM32H74x RAM知识点

1.STM32H74x RAM分配

2024-04-07 17:53:05 231

原创 UCOSIII中的系统任务

时钟节拍任务的任务优先级为 OSCfg_TickTaskPrio,时钟节拍任务的优先级尽可能的高一点, 有些 默认设置时钟节拍任务的任务优先级为 1。当把 os_cfg.h 文件中的宏 OS_CFG_ISR_POST_DEFERRED_EN 置 1 就会使能中断服务管 理任务,UCOSIII 会创建一个名为 OS_IntQTask()的任务,如果要使能统计任务的话需要将宏 OS_CFG_STAT_TASK_EN 置 1,宏 OS_CFG_STAT_TASK_EN 在 os_cfg.h 文件中有定义。

2024-03-22 14:18:30 409

原创 ST官网各数据包的下载方法

5.在以上打开的网页中点击Get Software,选择对应的版本,一般选择最新的版本,继续点击Get latest下载即可。1.打开网址:https://www.st.com/content/st_com/en.html。3.在以上打开的网页中选择Discover STM32Cube MCU Packages打开网页。4.在以上打开的网页中选择我们需要的数据包,例如我们需要下载H7的数据包,则点击H7即可。2.在以上打开的网页中选择Embedded software,点击后打开网页。

2024-03-19 13:40:19 327

原创 STM32CubeMx配置LTDC

设置Display Type,根据电路原理图和显示屏的特性可知,电路图中R0-R7,G0-G7,B0-B7,一共是3*8=24bit线,查看显示屏的数据手册可知显示屏为RGB方式的屏幕,所以此处选择RGB888(24bits)。Horizontal Synchronization Width:此参数为水平同步宽度,单位为时钟周期的数目,此参数实际上对应HSW参数,查看显示屏的数据手册可知HSW的参数范围为1–40,单位为时钟周期,所以此处设置为3。HSync Width:软件自动计算结果。

2024-03-15 11:22:04 620

原创 STM32 SDRAM知识点

而SDRAM(Dynamic Random Access Memory)每隔一段时间,要刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,功耗较SDRAM大 [1],相同容量的SDRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。异步就是,当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。

2024-03-08 13:15:03 464

原创 Keil软件无法烧录程序的解决方案

(2).确认目标板上电,长按目标板上的复位键,点击魔术棒…至Settings,点击 Settings,再松开目标板上的复位键,此时SWDIO应该会出现目标板,请确认有红框圈中的内容后,点击烧录程序即可。1.由于单片机程序有些情况下出错,导致烧录进去单片机运行异常,无法烧录程序,但是Keil软件可以识别到SW Device器件,点击烧录程序提示no target connected连接。(1).点击魔术棒->debug->Settings,选择under Reset。

2024-03-06 19:09:15 784

原创 STM32 NAND FLASH知识点

由图可知, READ PAGE 的命令分两次发送,首先发送 00H 命令,然后发送 5 次地址( Block&Page&Column 地址),指定读取的地址,随后发送 30H 命令,在等待 RDY 后,即可读取 PAGE 里面的数据。ECC page size:ECC页大小,对应FMC_PCR寄存器中的ECCCPS,这三个位用于设置ECC的页大小,256字节,512字节,1024字节,2048字节,4096字节,8192字节。我们设置 MEMHOLD=2,表示 2 个 fmc_ker_ck 周。

2024-03-04 14:59:43 1599

原创 STM32H7 系列 MCU 内部 SRAM

SRAM1:地址 0x3000 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以当 D1 域断电后用于运行程序代码。SRAM2:地址 0x3002 0000,大小 128KB,用途不限,可用于 D2 域中的 DMA 缓冲,也可以用于用户数据存取。备份 RAM 区,位于 D3 域,数据带宽是 32bit,挂在 AHB 总线上,大部分主控都能访问这块 SRAM 区。SRAM3:地址 0x3004 0000,大小 32KB,用途不限,主要用于以太网和 USB 的缓冲。

2024-02-21 10:23:46 678

原创 stm32 DCMI的知识点

在帧内的数据一般从左到右,从上到下,一个像素一个像素地输出 (也可通过寄存器修改方向),若我们使用 Y2-Y9 数据线,图像格式设置为 RGB565,进行数据输出时, Y2-Y9数据线会在 1 个像素同步时钟 PCLK 的驱动下发送 1 字节的数据信号,所以 2 个 PCLK 时钟可发送 1 个 RGB565 格式的像素数据。XCLK: XCLK引脚,它跟 PCLK 是完全不同的, XCLK 是用于驱动整个传感器芯片的时钟信号,是外部输入到 OV5640 的信号;OV5640 输出图像时,一帧帧地输出,

2024-02-19 11:19:09 1060

原创 WinForm中使用MaskedTextBox制作IP地址输入框

1.实现的功能:输入IP地址,形如000.000.000.000的格式,并设置keydown事件,当输入点(.)的时候,自动跳至下一栏。从工具箱中拖入一个MaskedTextBox,命名为MaskedTextBox_IP。3.在PromptChar属性中,将_换为空格,如果你喜欢_的话,也可以不用换。2.在Mask属性中,输入:000.000.000.000。

2024-01-18 18:49:52 703

原创 keil自动分配SDRAM空间设置使用

1.修改.sct文件。

2023-12-19 14:22:51 590

原创 Nand Flash和LCD同时使用闪屏问题

接着仔细分析,发生冲突肯定是因为SDRAM和Nand Flash的冲突,因为LCD屏的显存是在外部的SDRAM中的,并且SDRAM和Nand Flash都是属于FMC是挂接在AHB总线上的,同一时间肯定两者只能有一个占用总线,是不是因为在读取Nand Flash的时候,长时间的占用了总线时间,而LCD却长时间不能从SDRAM得到界面刷新,因此我们想着可以试着降低LCD的刷新率,在LCD的驱动文件中,果然看到了有个LCD_PIX_CLK的宏,试着将刷新率从20M改到了15M,果然屏不闪烁了。

2023-12-12 15:49:58 521

原创 SVN修改已提交版本的日志方法

1.在工做中一直是使用svn进行項目的版本控制的,有时候因为提交匆忙,或是忘了添加Log,或是Log内容有错误。当然此状况是svn服务端设置的问题,版本在提交后不容许修改log。须要在服务端添加一个hook来容许log的修改。我用的服务器是Windows下的VisualSVN Server。在仓库文件夹下,找到hooks文件夹,增加文件"pre-revprop-change.bat",内容如下。

2023-12-07 16:15:15 1418

原创 HTTP协议说明

案例中的含义就是:GET请求,请求服务器路径为/hello/index,请求协议和版本号为http1.1。响应体:返回给客户端(浏览器)的数据,下面的案例中返回的是一个HTML页面,从Content-Type: text/html;206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,响应报文中通过Content-Range指定范围的资源。指定的连接相关的属性。请求体:POST请求是可以有体的,就是POST请求提交的数据,而GET请求不能有请求体,它的请求的数据会附在url之后。

2023-10-31 10:23:26 87

原创 FATFS文件系统返回FR_DISK_ERROR错误的解决方案

特别是 - 请参阅 HAL_SD_InitCard 和内部发送 SD 命令的函数 - 主要是 SD_PowerON 和 SD_InitCard。因为,它根本不起作用。我的意思是,FR_DISK_ERR 在工作期间返回了很多,但我们的设备试图获取FR_OK。此外,我们发现如果“f_mount”函数被调用一次,然后您将 SD 卡取出并重新放入,它将永远无法工作,直到您重置您的微控制器。不幸的是,我们总是在某些 SD 卡中收到FR_DISK_ERR,而它在我们的 STDLibrary 版本中一直有效。

2023-09-18 09:38:07 2014

原创 FATFS文件系统f_mkfs函数详解

1.f_mkfs函数中的变量n_fats=1,表示FAT的表项个数,默认FAT32文件系统中,此值为1,当值为1时,使用f_mkfs格式化SD卡后,FAT的表项只有一个,当此值为2时,则格式化之后会有两个表项,FAT1和FAT2,FAT1为主表项,FAT2为备份表项。

2023-09-08 18:09:36 3483

原创 FATFS外置UNICODE GBK双向转换码表

首先将UtoG.sys,GtoU.sys两个文件放到SD卡根目录,注意,一定要在根目录,并且是短文件名,因为长文件名需要UNICODE支持,此时的FATFS还是不支持长文件名的,但是当初始化UNICODE码表后就可以支持长文件名了.**[导读]**将UtoG,GtoU双向码表放到存储卡里面实现长文件名,因为FATFS长文件名需要unicode支持, 首先将UtoG.sys,GtoU.sys两个文件放到SD卡根目录,注意,一定要在根目录,并且是短。

2023-09-06 09:54:55 207

原创 CH32串口接收方案(IDLE+DMA+FreeRTOS+NOTIFY)

而使用DMA技术可以避免这种情况,因为DMA可以通过硬件控制数据传输,而不需要CPU的干预。首先配置好串口的收发,完成串口的初始化,并且启用idle空闲中断,然后配置dma,为串口外设指定dma通道(注意不要使能dma的中断),创建一个串口数据处理任务,在任务的死循环中等待通知,当串口接收到一帧数据后触发中断,在中断处理函数中需要做几件事情:停止dma通道、复位中断标志位、计算数据的大小、发送任务通知、复位dma计数、重新使能dma通道,做完这些事之后中断结束,串口数据处理任务接到通知,开始直接处理数据。

2023-08-04 18:43:07 792

原创 ITF条码详解

3.在ITF中,表示字符的条和空是交错的,第一个字符用5个条表示,第二个用5个空表示。第三个字符用5个条表示,第四个用5个空表示,以此类推。由于条和空都具有信息,因此ITF的组成密度很高。ITF采用5个条(空)来表示一个字符。由于5个中的2个是宽的,因此被叫做“2 of 5”。ITF是采用以下表格内的字符组成的。可以表示的字符只能为数值(0至9)不使用起始和终止符号,但使用条式图案来代表起始和终止。

2023-07-25 15:24:23 312

原创 嵌入式软件工程师经典笔试题

而中断过程发生的时间一般的随机的,CPU在执行某一主程序时收到中断源提出的中断申请时,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的(软中断发生时间是固定的),也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;中断服务函数的调用是硬件级别的,当中断产生,pc指针强制跳转到对应的中断服务函数入口,进入中断具有随机性,并不是某段代码对其进行调用,那么如果有返回值它的返回值返回给谁?通常情况下,在对int类型的数值作运算时,CPU的运算速度是最快的。

2023-06-30 13:33:16 2421

原创 C# 网络编程之TCP

与TCP相关的API在System.Net.Sockets下,一般使用Socket类,也可以直接使用TcpListener和TcpClient类,这里使用的是Socket类。在一般的客户端与服务器进行交互的过程中,遵循以下几个规则。4.客户端与客户端之间没有直接交互。1.一(服务器)对多(客户端)2.客户端主动,服务器被动。3.服务器保持长期稳定运行。

2023-06-08 10:30:48 901

原创 ESP32 :项目的创建及项目架构解析

由于工程中.c文件的名字修改需要cmakelists.txt同步修改,所以我们直接用file函数利用正则将自身路 径下的所有.c文件列出来赋值给 SOURCES变量,并在SRCS中引入,这样就可以省去在cmakelists.txt中 修改.c名字的步骤。include 表示需要导入esp-idf中的某个cmake文件,这个文件的作用是把esp-idf中所有的库放到我们的 工程中,只有这样我们才能在工程里面调用esp-idf库中的函数。除了上面说的这些目录,还有部分文件是后期创建,但经常会用到的。

2023-05-26 09:47:30 2045

原创 ESP32 VSCode ESP IDF Monitor乱码解决方案

1.ESP32芯片,在VScode开发环境下点击(ESP-IDF Monitor device)图标,串口打印的数据乱码。3.将两者中的波特率设置为一致问题即解决,比如全部设置为115200.

2023-05-25 14:55:07 2009

原创 C# 委托 Invoke用法

这样的写法运行程序之后,可能会触发异常,异常信息大致是“不能从不是创建该控件的线程调用它”。造成这种异常的原因在 于,控件是在主线程中创建的(比如this.Controls.Add(…)😉,进入控件的事件响应函数时,是在控件所在的线程,并不是主线程。在控件的事件响应函数中改变控件的状态,可能与 主线程发生线程冲突。不过这样的情况并不总会发生,如果主线程此时在重绘别的控件,就可能逃过一劫,这样的写法可以正常通过,没有触发异常。这样的写法有一个烦人的地方:对不同的控件写法不同。

2023-05-12 13:56:06 3248

原创 C# 字段修饰符 继承的概念

3.声明枚举类型以及接口类型,前面不加限制访问修饰符时,默认为public且只能为public(就算要把限制访问修饰符写出来,也只能写public,而不能使用其他限制访问修饰符)——访问不受限制。2.声明类成员(包括字段(变量)、属性和方法)默认为private)以及结构类型,前面不加限制访问修饰符时,默认访问权限为private——访问仅限于当前类。1.声明命名空间、类,前面不加限制访问修饰符时,默认访问权限为internal——访问仅限于当前程序集。

2023-04-28 20:37:58 302

原创 C#中定义数组--字符串及数组操作

注意 如果在声明时没有初始化数组,则数组成员将自动初始化为该数组类型的默认初始值。另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分。这使您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。下面的示例展示初始化不同类型的数组的各种方法。C# 支持一维数组、多维数组(矩形数组)和数组的数组(交错的数组)。例如,下面的代码声明了类型为 int 的二维数组的三维数组的一维数组。以前用VB的时候经常使用数组,不过C#用习惯后数组基本上用的不多了。

2023-04-28 13:45:36 5973 1

原创 C#中引用命名空间和using的用法

您也可以使用 using 命名空间指令,这样在使用的时候就不用在前面加上命名空间名称。using:引用,使用:这里表示引用命名空间,第二个作用实例化对象时,对象执行完大括号内立刻释放空间。using 关键字表明程序使用的是给定命名空间中的名称。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。此外,也可以使用“*”来引用一个命名空间中所有的子命名空间。C#中引用命名空间是指在编写代码时,使用using关键字来引用一个或多个命名空间,以便在代码中使用它们的类型。

2023-04-27 14:50:44 2775

原创 stm32在SDIO模式下SD写入错误的问题

重写bsp_driver_sd.c文件中的BSP_SD_WriteBlocks函数是_weak 函数,可以在自己的源文件myfile.c中重写该函数,当写发生错误后,清除错误标记,再重试几次即可,在我的单片机上,一般第一次重试即可成功。更改sdio.c中的MX_SDIO_SD_Init函数,将hsd.Init.ClockDiv = 0改为hsd.Init.ClockDiv = 2,写频率会变成原来的1/2,在我的单片机上降频1/2之后,写错误将不再发生。优点:上层应用软件不需要更改,也不需要禁用中断。

2023-04-23 15:55:31 1747 1

原创 栈,堆,全局区,常量区

常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,是不允许修改的。静态存储区是在内存空间中的,在其所属的类(或文件)中是全局的。系统自动在栈中为b开辟空。思是栈顶的地址和栈的最大容量是系统预先规定好的,在WINDOWS下,栈的大小是2M(也有。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的。的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将。执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈。

2023-03-14 09:56:01 654

原创 EG21 基站定位

1.EG21中基站定位使用LAC/TAC,CellID数据,SIM卡类型不一样时,数据所存在的位置也不一样。网址:http://api.cellocation.com:83/cell.html。CELLID:1A6D172(十六进制)=27709810。TAC:712A(十六进制)=28970。例如:若为联通卡时,则为。

2023-02-17 17:33:51 474

原创 ESP32 WIFI知识点

domain:为地址族,也就是 IP 地址类型,常用的有 AF_INET 和 AF_INET6;type:数据传输方式/套接字类型,常用的有 SOCK_STREAM(流格式套接字/面向连接的套接字) 和 SOCK_DGRAM;protocol:为协议类型,常用的有 IPPROTO_TCP 和 IPPTOTO_UDP,分别表示 TCP 传输协议和 UDP 传输协议;sockaddr :套接字s想要连接的主机地址和端口号;(1).基本流程wifi连接到sta,新建socket,连接到tcp server。

2023-02-03 11:06:54 509 1

原创 ESP-IDF在VSCode中创建工程文件

构建的时候,会在当前项目目录新建build文件夹,里面存放了编译产生的中间文件和最终的固件二进制文件;工程配置文件sdkconfig,该文件在 make menuconfig 命令中被创建或更新;components组件,一般是将第三方组件放置在该文件夹下。包含了CMake版本要求,已定义好的通用ESP-IDF项目构建脚本,项目名称等。main.c为主应用程序,里面有 app_main() 的主程序入口;2.设置项目名,项目工程目录位置,芯片类型,端口号。主要是描述代码结构,添加需要编译的源代码。

2023-01-31 17:27:25 1115

原创 ESP32相关知识点

注册gap回调函数----合成ADV的UID(或URL或TLM等)数据包----将合成的UID数据内容和长度赋值到adv_data结构体中的服务数据变量中-----gap配置adv_data数据参数-----adv_data设置完成事件(回调)----gap开始adv_data广播。c_cpp_properties.json文件,在’includePath’下加入头文件实际的存储位置即可。Beacom信标广播中的eddystone传输在LL(链路层)中。GATT服务端初始化和GATT客户端初始化。

2023-01-16 11:04:02 726

原创 GIT使用教程

针对Git 文件的三种状态,这里需要了解Git项目的三个工作区域:工作区、暂存区和Git仓库。

2022-10-17 11:30:15 230

原创 利用STM32CubeMX软件生成USB_DEVICE_SD卡虚拟U盘

(3).配置USB_OTG_FS,由于电路板上USB管脚连接的是PA11和PA12,所以这里配置USB_OTG_FS,Mode项配置Device Only,同时开启中断。(5).需要用户实现的只有USB虚拟U盘相关的函数,都在usbd_storage_if.c文件中。(1).打开STM32CubeMX软件,创建新的工程文件,先生成一个的串口的收发例程,需要实现将串口收到的数据发送的出来,生成串口的例程这里不再详细介绍。(2).生成一个SDIO的SD卡读写例程,实现对SD卡的读写,这里不做介绍。

2022-10-12 12:12:26 2008

原创 利用STM32CubeMX软件生成USB_DEVICE_Virtual Port Com(虚拟串口)

(2).配置USB_OTG_FS,由于电路板上USB管脚连接的是PA11和PA12,所以这里配置USB_OTG_FS,Mode项配置Device Only,同时开启中断。(1).打开STM32CubeMX软件,创建新的工程文件,先生成一个的串口的收发例程,需要实现将串口收到的数据发送的出来,生成串口的例程这里不再详细介绍。usb_device.c 里面仅包含一个 USB 设备函数初始化函数 MX_USB_DEVICE_Init(),在程序开始时调用。工具:STM32CubeMX软件。

2022-10-12 10:55:32 1309

原创 利用STM32CubeMX软件生成USB_DEVICE_DFU升级程序

此处设置的值应为你升级下载存放的起始地址,对于字段中APP字眼切勿认为需要填写APP程序的起始地址,其实它的作用就是触发DFU传输升级时告诉你应该擦除哪片区域地址,因为大多数DFU功能都在应用在Bootloader工程中,相对于Bootloader,在运行DFU升级,应该简单直接(直接擦除或写入APP区域地址的数据,而不是在APP中运行DFU升级,不能直接擦除APP自身代码,而是中转一下,下载到下载区或者其他不干涉APP程序代码的区域)。128Kg代表7个128k字节的Read/Write/Erase。

2022-10-11 16:21:03 1391

STM32中RGB显示屏四个方向显示

RGB显示屏默认是显示一个方面,比如800480,其中800为宽度,480为高度,则这种显示屏是横屏显示,而480800,其中480为宽度,800为高度,则这种显示屏是竖屏显示。若需要将800*480的显示屏竖屏显示的话,则需要转换像素点的位置

2024-03-15

STM32F429单片机用Lwip协议栈实现TCP服务端(三个socket)

STM32F429单片机用Lwip协议栈实现TCP服务端(三个socket)

2024-01-31

STM32F429单片机用Lwip协议栈实现TCP客户端(两个netcom)

STM32F429单片机用Lwip协议栈实现TCP客户端(两个netcom)

2024-01-31

STM32F429单片机用Lwip协议栈实现TCP客户端(两个socket)

STM32F429单片机用Lwip协议栈实现TCP客户端(两个socket)

2024-01-31

Unicode To Gbk编码双向转换码表文件

Unicode To Gbk编码转换表,利用FAT32中的ff_convert函数转换,代替cc936.c中转换数组,以节省单片机ROM的空间。

2023-09-06

STM32F429IGT6通过USB驱动4G通信模块ME909s-821apv2,带FreeRtos操作系统,测试稳定

STM32F429IGT6通过USB驱动4G通信模块ME909s-821apv2,带FreeRtos操作系统

2022-08-31

STM32F429_IGT6 USB_HOST_HID,可以连接鼠标键盘,获取鼠标坐标以及键盘键值

STM32F429_IGT6 芯片USB_HOST_HID功能,可以连接鼠标键盘,获取鼠标坐标以及键盘键值

2022-08-17

STM32F429IGT6 USB_host源代码,可实现对U盘的读写操作

Hal库+FreeRtos+FATFS + USB_HOST + USB_OTG_HS,可实现对U盘的读写,测试通过

2022-08-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除