自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 RTC时间戳和年月日时分秒互转

【代码】RTC时间戳和年月日时分秒互转。

2025-01-06 09:13:57 92

转载 RT-thread调度锁与中断锁详解

第二种情况就是实时性要求很高的场合,比如我们在线程中操作一个电机的转动,由于电机的转动只要给定特定信号的电平就能转动,但是是否旋转到位,则需要通过特定的引脚检测状态或者通过ADC判断电流情况,如果到位了还不停止转动,则会对电机的寿命有很大的影响,此时我们就可以用调度锁锁住这个过程,而后在检测的时候,不必等待其他高优先级任务释放线程使用权。比如我们在升级系统的时候,这时不允许有其他的中断来干扰升级的过程,或者我们在操作内存或者flash的时候,不希望其他的中断扰乱执行逻辑,此时我们就需要关闭中断。

2024-12-07 21:52:49 187

原创 RT Thread Studio新建STM32F407IG工程文件编译提示错误

如果支持包用0.2.3版本的话,需要用RT内核4.1.0版本。0.2.3 版本更新了一些针对内核4.1.0的驱动代码,这几个定义都是4.1.0里的。RT 源码使用4.0.3的话,请用STM32F4支持包的0.2.2版本,就不会出错了。

2024-12-07 21:25:33 221

原创 STM32CubeMX生成RT-Thread工程代码

6.由于生成的RT-Thread工程代码中cpu_cache.c文件中包含#include 头文件,而生成的工程代码中没有board.h文件,所以需要新建一个board.h文件。7.由于生成的工程代码中没有创建RT-Thread任务,所以需要新建创建任务的文件,新建app_rt_thread.h文件,新建app_rt_thread.c文件。RT-Thread版本:X-CUBE-RT-Thread_Nano,Release version :4.1.1。

2024-11-08 14:47:32 1040

转载 使用STM32CubeMX移植STM32H743芯片RT-THREAD系统

2、在 \Middlewares\Third_Party\RealThread_RTOS\bsp_template\cubemx_config 目录下创建board.h头文件并把以下内容复制粘贴到新创建的board.h里。在上图中在STM32H743上面的RT-THREAD系统执行了 ps 和list_thread两条指令,说明此次在STM32CubeMX移植RT-THREAD成功。//添加如下一行代码,如果没有这行代码,会在MAIN线程中会一直占用CPU,而不会切换到其它线程。

2024-11-07 15:51:07 421

原创 STM32内核DWT精确延时详解

在Cortex-M里面有一个外设叫DWT(Data Watchpoint and Trace),该外设有一个32位的寄存器叫CYCCNT,它是一个向上的计数器,记录的是内核时钟运行的个数。(3)、使能CYCCNT寄存器,这个由DWT_CTRL(代码上宏定义为DWT_CR)的位0控制,写1使能。DWT_CYCCNT为内核的计数次数,SysClockFreq为内核时钟频率。(假设内核频率为400M,内核跳一次的时间大概为1/400M=2.5ns)GET_CPU_ClkFreq()为内核的时钟频率。

2024-08-02 20:11:31 764

原创 MATLAB使用系统辨识工具箱建立PID水温的传递函数系数

最后点击Import选项。(1).以PID控制水温为例子,在实际的工程项目中,以PWM的占空比为输入,输出为温度的值,以百分之百的占空比加热水温,将水温从当前温度(例如:30度)加热到100度,记录加热期间每秒钟对应的PWM占空比的值,以及每秒钟对应的水温值,这里为了便于计算以恒定的占空比百分之百加热,记录的数值存储到SD卡中,若没有SD卡可用串口讲记录的数据发送到上位机中,这里以SD卡为例,将每秒钟记录的水温存储到txt格式的文本中。

2024-06-30 16:28:17 1177 1

转载 智能车Matlab电机系统辨识和PID仿真自动调参

由于我们的转速的编码器采集的离散数据,所以我们需要将默认的连续性数据选项改为Discrete-time (Ts = 0.0x)(由于后面仿真的时候节点选的都是连续型,这里也就先按连续型做系统辨识,为了尽量保证准确性等我开学回实验室再次验证下之后再更新成离散型。(2).给电机占空比的具体数值,最好使用电机以日常速度跑的时候的占空比。电机在正常运行的区间内,理论上这个关系应该是线性的,用任何占空比最终的效果都会差不多,但考虑到实际情况还是在日常使用的占空比范围区间内选取定值比较好,不过也不用过于纠结这里。

2024-06-29 22:58:07 337

原创 STM32将外部SDRAM空间作为系统堆(Heap)空间

为了解决这个问题,首先可以将外部sram的初始化函数提前,放到SystemInit函数中调用,cube生成的stm32代码已经为我们提供了这样的接口,这样__main就可以正确运行,然而这还没有解决SystemInit本身执行的问题,我们需要保证SystemInit执行时使用STM32内部RAM。注意这里的0x02000000的大小为32M,因为这里我们采用的SDRAM的芯片大小是32M,将此32M的空间全部用作堆(Heap)空间,也可以只用SDRAM芯片的一部分空间作为堆空间。查询申请的堆空间的地址。

2024-06-24 14:38:15 1373 1

转载 stm32 上用 Zbar 库识别BMP格式二维码

目前能在网上找到的二维码资料,都是编码居多,也就是从一串字符串生成二维码(常用算法如 QRCode),而解码识别方面的参考教程比较少。二维码解码库有 Quirc、Zbar 等,更多的开发者是用在安卓、OpenCV 和 Python 等高级环境上,对于 MCU 级别的使用,并且基本是经过封装后的实现,灵活性较差。这里说明一下,Zbar 库要求输入的是灰度图像数据(也就是黑白照),每个像素用一个字节表示灰度,从 0x00 全白到 0xff 全黑,有了图像数据,再传入图像的宽高便能解码了。

2024-06-15 22:47:31 244

转载 STM32H5移植zbar记录

ZBar使用C/C++编写,具有高度优化的算法,能够快速准确地读取各种二维码和条形码,包括QR码、Data Matrix码、PDF417码、EAN-13码等等。这里直观的看就是内存问题,奈何如果从源码直接去查找malloc和free的匹配所需时间太大,只能动态调试查找原因,所以第一步,我移植了rt-thread系统,使用rt的内存管理api。总之,ZBar是一种非常有用的嵌入式二维码和条形码扫描库,它提供了高效的解码算法、可定制的解码器和灵活的API,能够轻松地满足嵌入式设备的扫描和解码需求。

2024-06-15 20:44:53 282

原创 matlab中BP神经网络预测

在应用神经网络的过程中,处理信息的单元一般分为三类:输入单元、输出单元和隐含单元。误差精度: 关于mu参数含义的一种理解是,mu是误差精度参数,用于给神经网络的权重再加一个调制,这样可以避免在BP网络训练的过程中陷入局部最小值,mu的范围为0到1。下图是训练神经网络时经常出现的一个界面,从这部分我们可以看到,输入层的神经元节点个数为2,隐含层的神经元节点个数为5,输出层的神经元节点个数为1,即2-5-1网络结构。(5).网络参数配置(训练次数,学习速率,训练目标最小误差.等)(6).BP神经网络训练。

2024-06-05 15:14:18 676

原创 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 916

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

这两种是借助其他字符件完成越南语的输入,但是在手机上无法使用,打字的速度和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 5908

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

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

2024-04-08 17:42:01 1477

原创 STM32H74x RAM知识点

1.STM32H74x RAM分配

2024-04-07 17:53:05 372

原创 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 467

原创 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 1774

原创 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 2170

原创 STM32 SDRAM知识点

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

2024-03-08 13:15:03 2829

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

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

2024-03-06 19:09:15 3269 1

原创 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 3278 1

原创 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 1407

原创 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 3935

原创 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 1525

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

1.修改.sct文件。

2023-12-19 14:22:51 992

原创 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 875

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

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

2023-12-07 16:15:15 2106

原创 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 168

原创 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 4325

原创 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 9148

原创 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 323

原创 ITF条码详解

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

2023-07-25 15:24:23 1100

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

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

2023-06-30 13:33:16 3084

原创 C# 网络编程之TCP

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

2023-06-08 10:30:48 1040

原创 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 2683

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

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

2023-05-25 14:55:07 3867 1

原创 C# 委托 Invoke用法

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

2023-05-12 13:56:06 5579

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

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

2023-04-28 20:37:58 391

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

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

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

STM32H5移植zbar二维码解码库

STM32H5采用rt-thread操作系统,移植zbar二维码解码库,解决了多次解码内存崩溃的问题

2024-06-15

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关注的人

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