- 博客(96)
- 收藏
- 关注
原创 基于STM32标准库的FreeRTOS移植与任务创建
FreeRTOS是一款专为嵌入式系统设计的实时操作系统,适用于STM32等单片机,支持多任务并发执行。相比裸机编程的串行任务处理,FreeRTOS通过任务调度器和内核组件实现真正的多任务管理,包括任务创建、调度、通信及内存分配等功能。其核心机制基于SysTick定时器、PendSV和SVC中断,实现任务的快速切换。移植FreeRTOS到STM32标准库需按目录结构组织源码文件,并配置FreeRTOSConfig.h定义系统参数,适用于中大型嵌入式工程开发。
2025-11-09 00:41:13
1016
原创 USART发送第一个字符丢失的原因与修正
调试串口输出时发现第一个字符丢失,原因是USART_FLAG_TC标志位初始状态为1导致判断失效。解决方法是在发送函数开始处清除TC标志位,或改用TXE标志判断发送寄存器是否为空。两种方案都可确保字符完整输出,其中TXE更适合逐字节发送场景。这个小细节在调试日志和首次通信时尤为重要,建议优先使用TXE逻辑更可靠。
2025-10-23 09:15:40
350
原创 STM32控制S989舵机角度实战
摘要:本文介绍了基于STM32的S989 180°舵机驱动控制方法。通过定时器输出50Hz PWM信号(周期20ms,高电平0.5-2.5ms对应0-180°),实现舵机角度精准控制。硬件需STM32开发板、5V独立电源供电和三线舵机(信号线接TIMx_CH1)。代码配置了1MHz计数频率的定时器,并提供了角度转换公式(500+角度×2000/180μs)和初始化设置,最终通过TIM_SetCompare1()函数实现0-180°范围的角度控制。
2025-10-20 11:17:41
976
原创 SPI协议详解及逻辑时序图解
SPI(串行外设接口)是一种同步全双工通信协议,由Motorola提出,主要用于单片机系统。它通过四根信号线(SCK、MOSI、MISO、SS/CS)实现主机与从机的高速通信,支持一主多从架构。SPI具有四种工作模式(模式0-3),由时钟极性(CPOL)和时钟相位(CPHA)共同决定数据采样时机。与类似接口SSI不同,SPI采用普通电平信号且支持全双工通信,广泛应用于存储器、传感器等设备的数据交换。开发时需根据外设要求选择正确的工作模式,通常模式0和模式3较为常用。
2025-10-12 18:01:39
1015
原创 通过VNC实现树莓派远程桌面访问
本文详细介绍了树莓派VNC远程桌面的配置方法,包含图形界面和命令行两种开启方式,并提供了VNC Viewer连接的具体步骤。常见问题解决方案包括:检查局域网连接、确认5900端口状态、验证登录凭据,以及优化连接性能等。通过本指南,用户可以轻松实现树莓派的远程桌面访问和故障排查。
2025-09-21 20:19:06
711
原创 第十六届蓝桥杯单片机国一经验总结(含开源第11-16届省赛/国赛代码)
《蓝桥杯竞赛备考指南》摘要:作为大学生IT基础竞赛,蓝桥杯近年国赛难度显著提升,注重底层知识掌握。建议:1)选择主流教程系统学习;2)重点练习近3届真题;3)使用4T网站优化代码至80分基准线;4)备赛时同步练习省赛/国赛题目。竞赛特点:相比电赛等系统工程类比赛,更侧重算法与基础能力检验。附赠开源往届真题代码库供参考,强调完成度优先于内存优化。参赛者需注意竞赛难度逐年递增的趋势特征。
2025-06-24 16:42:46
812
1
原创 Git提交代码不再难,零基础小白也能轻松上手的两种方式
在提交前,需要设置好自己的个人信息,这是因为日志中会记录提交者和他的邮箱,方便协作管理。尤其是如果要提交到网络位置这个位置就更加重要,如果是非正式的使用,可不用在意,随意填写即可!这个命令的作用是为本地分支 main 设置一个追踪关系(upstream branch),即将本地的 main 分支与远程的 origin/main 分支绑定。在提交代码前,需要设置远程仓库的地址,便于代码与远程仓库保持同步。你可以指定单个文件或多个文件。在提交中,可能会出现如下界面,输入对应的git远程仓库的账号密码即可。
2024-12-25 11:40:27
1573
原创 【Python第三方库】OpenCV库实用指南
OpenCV(Open Source Computer Vision Library)作为一个强大的计算机视觉库,提供了丰富的图像处理和计算机视觉功能,尤其在图像识别、对象检测、视频分析等领域有着广泛的应用。本文将带领读者使用Python编程语言,通过简单的代码示例,初步掌握OpenCV的图像处理技术。
2024-09-11 23:19:46
2642
3
原创 轻松学Python并发编程:线程、进程与异步
在编程中,队列(Queue)是一种常用的数据结构,它遵循先进先出(FIFO, First-In-First-Out)的原则,即第一个进入队列的元素也是第一个被取出的元素。在多线程编程中,创建和销毁线程是需要一定开销的,特别是在高频率地创建和销毁线程时,这种开销可能会显著影响程序的性能。线程池(Thread Pool)是一种优化机制,它通过提前创建好一组可复用的线程来管理并发任务的执行,避免了频繁创建和销毁线程的开销。一个事件循环在运行时,不断检查是否有任务需要执行,并在任务等待I/O操作时切换到其他任务。
2024-08-21 23:17:29
1258
原创 红外遥控与NEC协议详解
红外遥控器通过发射红外光来传输信息,这种光线在肉眼不可见,但可以被接收设备上的红外接收器(通常是一个光电二极管)检测到。当用户按下遥控器上的某个按键时,遥控器会以特在红外遥控通信中,连发码(Repeat Code)是用于处理长按按键时的特殊信号。通常情况下,当用户按下遥控器上的某个按键,遥控器会发送一个完整的指令数据帧。然而,如果用户长时间按住按键,比如长按“音量加”按钮以连续增加音量,此时重复发送完整的数据帧不仅会浪费电量,还可能造成信号冲突。因此,连发码被设计用于这种场景,以更高效的方式传达用户的意图。
2024-08-11 23:43:44
3210
原创 从历史到未来:程序员如何在AI时代保持优势
随着人工智能(AI)的快速发展,AIGC(如chatgpt、midjourney、claude等)大语言模型接二连三的涌现,程序员这个职业正面临着前所未有的挑战。有人担心,随着AI越来越智能化,传统的编程技能将变得不再重要。那么,在这个变革的时代,程序员如何保持核心竞争力呢?要回答这个问题,我们可以从历史发展的角度,分析技术变革对职业的影响,进而找到未来的应对之策。历史上的技术革命与职业演变每一次技术革命都带来了职业的变革。从18世纪的工业革命到20世纪的信息革命,技术的发展一直在推动着社会的进步,
2024-08-10 10:52:47
1152
原创 【Python第三方库】Requests全面解析
requests 是一个非常流行的 Python HTTP 库,用于发送所有类型的 HTTP 请求。它简洁易用,能够处理复杂的请求场景,如保持会话、处理 cookies、上传文件等。本篇只对GET和POST做简单说明,其他请求类似。在接下来的代码示例中,会使用到 httpbin.org 工具。httpbin.org 是一个专门用于测试 HTTP 请求的服务网站。这个网站由 Kenneth Reitz 创建,目的是为开发者提供一个简单的工具来测试和调试各种 HTTP 请求。你可以使用它来发送各种类型的 HTT
2024-08-09 23:34:20
1918
原创 普中51单片机:DS18B20温度传感器操作指南(十三)
初始化读周期期间需要主机将总线拉低至少1微秒(通常是1-15微秒),然后释放总线。然后释放总线,主机释放总线,并在15微秒内读取总线状态。要读取一个字节(8位),需要重复上述读取数据位的过程八次,按低位在前(LSB first)的顺序读取。每个位的写入时序稍有不同。主机将总线拉低至少1微秒(通常是1-15微秒),然后释放总线,这是初始化写周期。主机将总线拉低至少480微秒(us),通常是500us,以确保所有从设备都能检测到复位信号。先读取低位,后读取高位,温度数据是16位带符号的二进制数,最低位代表。
2024-08-07 22:29:58
2756
2
原创 DS18B20数字温度传感器操作解析
因此,主设备在执行完读暂存寄存器(BEh)或读取供电模式[B4h]后,必须及时地生成读时段,这样DS18B20才能提供所需的数据。此外,主设备可以在执行完转换温度(44h)或拷贝EEPROM(B8h)命令后生成读时段,以便获得在“DS18B20功能命令”章节中提到的操作信息。总线复位:主机通过总线复位将数据线拉低至少 480 微秒(µs),以重置总线上的所有设备。存在脉冲:DS18B20 响应主机的复位信号,在复位脉冲后的 15-60 µs 内,将数据线拉低 60-240 µs,发送存在脉冲。
2024-08-04 23:15:49
2334
原创 普中51单片机:AT24C02芯片EPROM数据存储(十二)
EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)是一种非易失性存储器,可以通过电信号擦除和重新编程。AT24C02是EEPROM的一种具体实现,它采用了IIC接口进行数据传输。具体而言,AT24C02是EEPROM大家族中的一个成员,具备了EEPROM的基本特性,同时结合了I²C总线接口,方便与微控制器进行通信。存储容量:最大容量2Kb(256字节)
2024-08-01 23:29:44
2219
原创 IIC总线原理特性解析及通信要点
每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能由一个主机),总线上的器件删除和增加不影响其他器件正常工作;总线上所有的从机接收到该字节数据后都将这7位地址与字节的地址进行比较,如果相同,则认为字节被主机寻址,然后在根据第8位将字节定位发送器或接收器。IIC总线通信时每个字节为8位长度,数据传送时,先传送最高位,后传送低位,发送器发送完一个字节数据后节后接收器必须发送1位应答位来回应发送器即一帧共有9位。SCL为高电平时,SDA由高到低表示。
2024-07-28 23:41:33
1348
原创 普中51单片机:蜂鸣器的简单使用(十一)
开始工作,产生一个周期性的音频信号。振动膜片在磁场的作用下快速振动,这种振动通过空气传播,形成我们可以听到的声音。不论是压电蜂鸣器还是电磁蜂鸣器,它们在工作时都需要外部的电源供应和相应的电路控制。通过改变输入的电压、频率或触发信号,可以控制蜂鸣器的声音频率和强度,实现不同的音调和音量效果。根据其工作方式的不同,无源蜂鸣器又可分为压电式蜂鸣器和电磁式蜂鸣器。一般单片机的IO口的驱动能力不足以直接驱动蜂鸣器,因此通常采用放大电路,例如三极管放大电流,或者使用ULN2003D集成电路驱动蜂鸣器。
2024-07-27 19:55:48
1379
原创 普中51单片机:DS1302时钟芯片讲解与应用(十)
RAM,全称为随机存取存储器(Random Access Memory),是计算机中的一种重要存储器。它的主要特点是可以随时读写数据,并且速度非常快。RAM是计算机的“短期记忆”。当你打开一个程序或文件时,计算机会将其数据加载到RAM中,以便快速访问和处理。例如,当你在编辑一篇文档时,文档的内容会暂时存储在RAM中,这样你可以快速进行编辑和保存。RAM是易失性存储器,这意味着一旦断电,存储在RAM中的数据就会丢失。这就像是你在白板上写字,一旦擦掉(断电),字迹就消失了。
2024-07-24 22:38:17
3051
原创 【Python第三方库】PyQt5安装与应用
在 PyQt5 中,uic(用户界面编译器)模块是一个强大的工具,它允许开发者将 Qt Designer 设计的 .ui 文件加载到 Python 应用程序中。在开发桌面应用程序时,页面跳转是一个常见的需求。进行设置用户界面,创建 Ui_MainWindow 的实例,并调用它的 setupUi 方法,将 Qt Designer 中的设计应用到 window 实例上。Qt Designer 是一个图形用户界面(GUI)设计工具,它允许开发者通过拖放组件的方式来设计应用程序的用户界面,而不需要编写大量的代码。
2024-07-21 18:46:10
3210
原创 普中51单片机:LED点阵屏组成结构及实现方法详解(九)
LED点阵屏是一种由多个LED(发光二极管)组成的显示设备,通过控制每个LED的亮灭来实现图像和文字的显示。常见的LED点阵屏规格有8x8、16x16等,本文以16x16点阵屏为例进行讲解。根据颜色的不同,LED点阵屏可以分为单色、双色和全彩三种类型,分别适用于不同的应用场景。本次采用的时候16*16LED点阵屏作为演示,所以需要用到级联,级联工作原理与单独595芯片类似,主要分为四个步骤:1. 数据输入:数据通过串行输入引脚(SER)输入到第一个74HC595芯片的移位寄存器中。每个时钟脉冲(SCK)的
2024-07-19 18:43:38
1693
1
原创 深入解析74HC595移位寄存器的工作原理
74HC595是一种串行输入并行输出(SIPO)移位寄存器。它通过三根线输入串行数据,并通过八根线输出并行数据。多个74HC595可以级联使用,从而实现16位、24位、32位等更高位数的并行输出,广泛应用于I/O口扩展。其中并行输出为三态输出(即高电平、低电平和高阻抗)。在数字电路中,通常有两种基本状态:高电平(逻辑1)和低电平(逻辑0)。三态(Tri-state)是一种特殊的输出状态,除了高电平和低电平外,还有第三种状态,即高阻抗状态(Z)。高电平(1):电路输出高电平信号。
2024-07-17 19:51:23
5858
原创 普中51单片机:串口通信原理与应用指南(八)
在电脑端和单片机通信时可以使用USB转串口,串口的标准接口是DB9接口,DB9接口通常用于连接计算机设备的串行端口。在计算机的串行端口上使用RS232协议进行数据传输时,需要利用DB9接头来进行连接。浅谈串口UART通信原理RS232与RS485串行通信协议详解。单片机的串口完全兼容。设有2个互相独立的接收、发送缓冲器,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址码(99H)。两个缓冲器统称串行通信特殊功能寄存器SBUF。
2024-07-15 19:22:02
1996
1
原创 RS232与RS485串行通信协议详解
虽然许多现代处理器都集成了UART(通用异步收发器)控制器,但它们输出的通常是TTL(晶体管-晶体管逻辑)电平信号,而不是RS232标准所要求的电平。RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。因为采用两线制,数据的发送和接收都要使用这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作,编程时也需要加以处理。该标准规定采用一个标准的连接器,标准中对连接器的每个引脚的作用加以规定,还对信号的电平加以规定。
2024-07-13 00:11:31
5548
原创 浅谈串口UART通信原理
并行传输指的是数据以成组的方式,在多条并行信道上同时进行传输。每条信道传输一部分数据,这样可以在同一时间内传输更多的数据位,因此传输速度较快,但成本较高。
2024-07-12 01:38:09
947
原创 普中51单片机:定时器与计数器详解及应用(七)
模式3只适用于定时器/计数器0,定时器T1处于模式3时相当于TR1-0,停止计数,而T0可作为两个定时器用。通过定时器0中断控制LED1指示灯间隔1秒闪烁,实物图连接:D1连接到P2_0引脚即可,使用的12.000MHz的时钟,每次间隔一毫秒触发中断,在中断触发函数进行计数,当为1000时,就是一秒。注意:定时器的资源和单片机的型号是关联在一起的,不同型号的单片机可能会有不同的定时器数量和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。下图为模式3时的定时器0逻辑图。
2024-07-11 12:42:41
2157
原创 普中51单片机:中断系统与寄存器解析(六)
STC89系列51单片机提供了8个中断请求源,分别是一个外部中断0(INT0),外部中断1(INT1),外部中断2(INT2),外部中断3(INT3)以及定时器0(TF0)、定时器1(TF1)和定时器2(TF2),外加串口中断,用于发送接收(UART)而在其他情况下,可能需要在信号变为低电平时执行相应的操作。在同一时刻,当有多个中断源出现,会根据中断源的优先级来判断先执行哪一个,其中TCON寄存器中的IT0位控制的是触发方式,是低电平触发还是下降沿触发,当为0时,是低电平触发,当为1时是下降沿触发。
2024-07-10 01:21:06
2562
5
原创 普中51单片机:矩阵按键扫描与应用详解(五)
如果有按键按下,则进一步检查行,确定具体的按键位置,并返回相应的键值。用户可以输入密码并进行验证,正确的密码会显示“OK PASS”,错误的密码会显示“ERR”。矩阵按键是一种通过行列交叉连接的按键阵列,可以有效地减少单片机I/O口的使用。当按键被按下时,相应的键号会显示在数码管上。假设我们有一个4x4的矩阵键盘,它由4条行线和4条列线组成,总共可以检测16个按键。逐行/逐列扫描的本质与行列扫描类似,但适用于矩阵键盘接到了任意的I/O口。根据图片可以看出,矩阵按键的连接在P1端口,下面是它的原理图。
2024-07-08 23:36:03
2065
原创 普中51单片机:数码管显示原理与实现详解(四)
从资料中提供的电路图可知,此开发板静态数码管使用的是共阳极数码管,如果使用共阴数码管,为了不影响其他IO口的电流,要增加IO口的驱动电路,单片机主要是用来控制的,如果要驱动一些外部的设备,通常会使用专门的驱动电路,比如74HC245芯片,74HC573芯片。由电路图可知,该开发板的动态数码管是由两个4位一体数码管组成的,一共八个数码管,它们的公共端单独引出来,位选段全部并联在一起,动态进行显示,采用的是共阴极。数码管的每个段实际上是一个独立的LED,通过控制各个LED的通断状态,可以组合成不同的字符。
2024-07-07 01:13:40
3559
原创 普中51单片机:独立按键的工作原理与应用详解(三)
然后进入一个无限循环,检测P1.0引脚的状态:如果P1.0引脚为低电平(按键按下),则调用DelayXms(1)函数进行1毫秒的延时,以消除按键抖动。再次检测P1.0引脚的状态,如果仍为低电平,则将P2.0引脚设置为低电平(点亮LED1)。通过在检测到按键按下后加入一个短暂的延时,可以让按键抖动的影响消失,再次检测按键状态时,如果仍然是按下状态,才认为按键确实被按下了。然后进入一个无限循环,检测P1.0引脚的状态:如果P1.0引脚为低电平(按键按下),则调用DelayXms(5)函数进行5毫秒的延时。
2024-07-06 00:10:12
2540
原创 Android studio开发入门教程详解(复习)
默认情况下,Toast会显示在屏幕的底部中央。如果你想改变Toast的位置,可以使用setGravity()方法。例如,将Toast显示在屏幕中央。使用步骤创建新的XML布局文件设计自定义视图加载自定义布局这里以定义一个标题栏布局,方便其他页面引用作为讲解,首先在res.layout目录下,新建一个xml文件。
2024-07-05 00:43:00
717
原创 Android Studio中HAXM安装失败的解决方案(HAXM installation failed)
HAXM installation failed每次启动时都会创建一个全新的环境,关闭后所有更改都会被丢弃,适用于快速测试可疑软件或运行不受信任程序的场景,确保主机系统的安全。Windows Hypervisor Platform (WHP) 是 Windows 操作系统中的一个组件,提供了虚拟化的基础设施,使得第三方虚拟机管理软件可以利用 Windows 的虚拟化功能。比如下方错误日志,表示当前处理器(CPU)不支持 Intel 的虚拟化技术,查询当前CPU是否支持,如果支持,采取方案三即可!,
2024-06-26 22:49:45
7022
3
原创 深入理解Java中的Collectors(Stream流)
Collectors 类是 Java 中的一个实用工具类,包含了一系列静态方法,这些方法用于创建各种常见的集合操作。它们用于将流中的元素累积到某些结果中,例如 List、Set、Map 等,还可以进行各种统计操作,如求和、平均、最小值、最大值等。Collectors 类位于 java.util.stream 包中,通常与 Stream 的 collect() 方法一起使用。它的设计遵循了函数式编程的原则,使得数据处理变得更加简洁和高效。
2024-06-26 00:35:40
3538
原创 Centos7系统下Docker的安装与配置
此博客的内容的为自己的学习笔记,如果需要更具体的内容,可查看Docker官网文档内容注意:以下命令在root管理员用户下运行,如果在普通用户中,则需要加上sudo。注意:如果出现以下错误,这是由于国内网络环境无法直接访问 **Docker** 官方镜像。为了解决这一问题,建议使用阿里云(aliyun)提供的 Docker 镜像源,这将帮助您顺利完成安装和更新。YUM(Yellowdog Updater Modified)是一个基于RPM包管理系统的开源软件包管理工具,广泛应用于Linux系统中,
2024-06-16 00:04:00
517
原创 MyBatisPlus代码生成器(交互式)快速指南
MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。这里对自定义模板引擎不做过多讲解!MyBatis Plus中的代码生成器是一个非常强大且实用的工具,旨在提高开发效率,减少重复性代码的编写。的版本必须一致,并且版本需要大于3.5.1。注意:`mybatis-plus-generator`和`mybatis-plus-boot-starter`的版本必须一致,并且版本需要大于3.5.1。
2024-06-12 22:04:41
1416
1
原创 SpringBoot快速整合MyBatisPlus
MyBatis Plus 是 MyBatis 的增强工具,在 MyBatis 的基础上进行扩展和增强,主要目标是简化开发、提高效率。它提供了一系列功能,包括 CRUD 封装、条件构造器、批量操作、自动填充、逻辑删除、代码生成器等,旨在让开发者不需要写繁琐的 SQL 语句即可实现常见的数据库操作。Lombok提供了多种注解,每种注解都有其特定的功能。例如,@Getter和@Setter注解可以自动为类生成getter和setter方法;@ToString注解可以自动生成对象的字符串表示形式;@Data注解则会
2024-06-09 23:32:25
1342
原创 SpringBoot与MyBatis的快速整合(基于注解)
在Java项目中,Druid常用于管理数据库连接,提高性能,并提供了一些有用的监控和统计功能。当在项目中引入了这个Maven依赖后,可以在项目中使用Druid作为数据源,提供数据库连接的管理功能。MyBatis是一个基于Java的持久层框架,它的主要作用是简化数据库操作,提供了一种更加直观和灵活的方式来执行SQL查询、插入、更新和删除等数据库操作。在Java代码中,通过这个ID来引用这个SQL语句。注解用于标识一个接口,告诉MyBatis框架这个接口是一个映射器在需要回滚的业务逻辑层的Service类中,使
2024-06-09 11:47:50
1451
原创 Python中上下文管理器解析
其工作流程如下:当使用语句时,首先会调用上下文管理器的方法。这通常包括一些预处理操作,如打开文件、获取锁等。在with语句的代码块内执行用户定义的操作。这些操作可以是任何Python代码。当代码块执行完毕后,会自动调用上下文管理器的方法。这通常包括一些清理操作,如关闭文件、释放锁等。要实现一个上下文管理器,可以通过以下两种方式:可以通过实现 和 方法来自定义上下文管理器。例如:输出为:Python 提供了 contextlib 模块,帮助简化上下文管理器的创建。特别是装饰器,可以将一个生成器函数转换
2024-06-04 21:50:27
893
1
原创 初探Flask:Pycharm社区版创建Flask项目
本文将带您一步步创建一个简单的Flask项目,包括设置Python环境、安装Flask库以及创建基本的项目结构。使用命令行安装Flask在使用Flask前,您需要先下载安装Flask库。打开终端,输入以下命令:
2024-05-29 11:53:04
7596
1
原创 启动SpringBoot项目及解决端口占用问题(指令版)
需要将 SpringBoot 项目进行打包。部署注意Windows系统下,按照以下方式在cmd窗口以管理员身份允许使用命令启动springboot项目打包之后的jar包即可(开放对应端口访问权限);Linux系统下,需要关闭防火墙,允许项目对应端口的访问权限;在部署的时候,所处服务器要有对应的开发环境版本(如jdk、mysql、redis等等
2024-05-22 17:30:35
897
原创 通知:职业技能比赛移动应用与开发赛项竞赛服务器已上线(含线上免费服务器)
专为职业技能比赛移动应用开发竞赛设计的服务器系统,为移动应用开发竞赛量身打造,提供一比一的实战体验。采用全新主题设计,全面适配中职组和高职组的移动应用与开发赛项,覆盖六种不同主题,满足多样化的竞赛需求。如有需要,可以进行提供中职组竞赛辅导。在这里,每一位参赛者都能体验到与真实赛场零距离的挑战,激发您的创意,提升您的技能,让您在竞赛中脱颖而出!
2024-05-16 17:14:39
556
2
Android Studio 3.5下载安装包
2023-02-06
Android Studio 3.2版本安装包
2023-02-06
Xftp-7(亲测可用)
2022-11-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅