- 博客(991)
- 资源 (1)
- 收藏
- 关注
原创 ai大模型(二)
好,那么这个的话呢,就回到我们刚才说的这块,提供示例后呢,发现效果还一般,我们就需要来做微调,微调效果还不好啊,这一方面的话呢,我们就去结合Agent,另外一方面的话呢,可能有必要我们就得需要做这个续训啊,那这个续训的话呢,它在这个数据量啊,相对来说就更大一些,那一会我们也会提到这个微调的话呢,最起码啊,最最起码的得是 500 条以上的有标注的数据,当然我们这也需要看具体的场景,一会来说,那大体上来讲的话,一般一提到微调呢,就是大几千条数据得有啊,而或者说过万的这个数据,
2026-10-17 11:30:53
143
原创 STM32-I2C通信协议(二十七)
我们来一起学习 I2C 通信啊。关于 I2C 通信的内容,我主要会分为两大块来讲啊。第一块就是介绍协议规则,然后用软件模拟的形式来实现协议啊。第二块就是介绍 STM32 的 I2C 外设,然后用硬件来实现协议。因为 I2C 是同步时序啊,软件模拟协议也是非常方便,目前也存在有很多软件模拟 I2C 的代码,所以我们先学软件 I2C,再学硬件 I2C 啊。至于哪个更方便啊,各自的优势和劣势啊,等你学完之后应该会自有定论啊。那 I2C 通信的知识点呢,我在 51 单片机的视频里也讲过哈。在 51 单片机那个视频里
2026-07-05 16:38:55
258
原创 STM32-FlyMcu串口下载&STLINK Utility(二十六)
桌面上就出现了程序文件,这就有意思了是吧,比如你看到别人用 STM32 做了一个产品,你觉得不错就可以抄一下他的 PCB 板,然后程序文件呢,又可以通过这个软件读出来,这样就可以大批量山寨别人的产品了是吧,不过 STM32 也可以配置读保护哈,这个等会再说,但是反过来,如果你开发产品不注意这个问题的话,是不是一不小心程序就泄露了是吧,那我们看一下读出来的这个文件,这个文件是点 bin 格式?那我们先看一下 FLY MCU 程序烧录软件啊,打开软件,这个软件是绿色软件,直接打开就能运行,不需要安装啊。
2026-07-02 23:09:11
317
原创 STM32-串口收发HEX数据包&串口收发文本数据包(二十六)
我们在主函数测试一下看看主循环这里 if serial get x flag 等于等于一,接收到数据包之后,OLED 显示一下,这里收到的是字符串,所以可以使 oid show string 四行一列显示 serial rx packet 对的,当然在显示之前我们还需要清除一下第四行哈,因为这个字符串的长度不确定,如果先显示一个长的,再显示一个短的,那长的那个字符串的屁股就会露出来,所以复制一下先给 16 个空格,这就相当于擦除第四行了,再显示就行了,这会造成什么问题呢?最后写一下状态二的逻辑,等待包尾。
2026-06-28 22:04:37
254
原创 STM32-USART串口数据包(二十五)
这里数据包都是一个字节一个字节组成的哈。如果你想发送 16 位的整形数据,32 位的整形数据, float,double,甚至是结构体,其实都没问题啊,因为它们内部其实都是由一个字节一个字节组成的。只需要用一个 unit 8 杠 t的指针指向它,把它们当做一个字节数组发送就行了。这个操作方法我在指针教程里也讲过哈,不会的话可以去看一下。有关 hex 数据包定义的内容我就讲这么多啊。接下来看一下文本数据包。文本数据包和 hex 数据包就分别对应了文本模式和 hex 这两种模式啊。
2026-06-27 11:48:52
214
原创 STM32-串口发送&串口发送+接收(二十四)
下面这个是我们的 USB 转串口的模块啊,这里有个跳线帽,上节也说过,要插在 VCC 和 3V3 这两个引脚上,选择通信的 TTL 电平为 3.3 伏。然后通信引脚 TXD 和 RXD 要接在 STM32 的 PA9 和 PA10 口,为什么是这两个口呢?我们看一下引脚定义表啊。这里看到 USART1 的 TX 是 PA9, RX 是 PA10。我们计划用 USART1 进行通信,所以就选这两个脚。如果你用 USART2 或 3 的话,就要在这里找一下,接在 USART2 或 3 的对应脚上。然后是 TX
2026-06-27 09:41:10
220
原创 STM32-USART串口外设(二十三)
就是通用同步异步收发器。这个 S 就是同步的意思啊。另外我们经常还会遇到串口叫 UART, 这里少了个 S, 就是异步收发器。一般我们串口很少使用这个同步功能哈,所以 USART 和 UART 使用起来也没什么区别。其实这个 STM32 的 USART 同步模式啊,只是多了个时钟输出而已。它只支持时钟输出,不支持时钟输入啊。所以这个同步模式更多的是为了兼容别的协议或者特殊用途而设计的哈,并不支持两个 USART 之间进行同步通信,所以我们学习串口主要还是异步通信啊。然后继续看下一条, USART 是 STM
2026-06-23 07:46:54
258
原创 STM32-USART串口协议(二十二)
首先我们来了解一下通信接口啊,先看一下第一条,我们为什么需要通信?也就是通信的目的,它是将一个设备的数据传送到另一个设备,扩展硬件系统。比如这是我们的 STM32 芯片,它里面集成了很多功能模块,什么定时器计数啊, PWM 输出啊, AD 采集等等,这些都是芯片内部的电路,这些电路的配置寄存器啊,数据寄存器都在芯片里面,操作这些寄存器非常简单,直接读写就行了。但是也有些功能是 STM32 内部没有的,比如我们想蓝牙无线遥控的功能,想要陀螺仪加速度计测量姿态的功能。 STM32 没有,所以就只能外挂芯片来完成
2026-06-16 21:15:02
275
原创 STM32-DMA数据转运+AD多通道(二十一)
因为数据转运都是在STM32内部进行的,加一个led显示就行了好,那在正式开始 DMA 代码之前,我们先花一段时间做个小实验啊,来验证一下这个存储器映像的内容,看一下我们定义的数据,它到底是不是真的存在了这相应的地址区间里我们回到代码啊,在这上面先随便定一个变量啊,UINT8 杠 T a 等于 0X660X66,是一个十六进制的数啊,然后在主函数里 OLEDShow Hex number,一行一列显示 A A 长度为 2,这就是正常的定义变量引用变量啊,然后我们再显示一下这个变量的地址看看,也是十六进制显示
2026-06-14 18:51:12
299
原创 STM32-DMA直接存储器存储(二十)
本节我们来学习 DMA 啊,直接存储器存取。 DMA 是一个数据转移小助手,它主要是用来协助 CPU 完成数据转运的工作的。那我们先看一下本节程序的现象,本节课共有两个程序。第一个是 8-1 DMA 数据转运,第二个是 8-2 DMA 加 AD 多通道。先看一下第一个啊,在这个程序里,我们将使用 DMA 进行存储器到存储器的数据转运,也就是把一个数组里面的数据复制到另一个数组里。先看一下最终的代码啊,这里我定义了一个数组 data A, 里面存的是 1234。作为待转运的原数据。然后下面再定一个数组 Dat
2026-06-13 14:43:26
276
原创 STM32-AD单通道&AD多通道(十九)
这个电路图还是比较简单的。在这里我们接了一个电位器,这个电位器有三个引脚,分别插在这三排孔里。电位器的内部结构是这样的啊,左边和右边的两个引脚接的是电阻的两个固定端,中间这个引脚接的是滑动抽头。电位器外边这里有个十字形状的槽可以拧啊,往左拧抽头就往左靠,往右拧抽头就往右靠。所以外围电路这里,我们把左边的固定端接在负极,右边的固定端接在正极,中间就可以输出从负极到正极可调的电压了。然后右边这里我们把可调的电压输出接在 PA0 口。在这里根据引脚定义表, PA0 到 PB7 这 10 个引脚是 ADC 的 10
2026-06-09 19:32:53
347
1
原创 STM32-ADC模数转换器(十八)
那我们先来看一下本节课程序的现象啊。本节课共有两个程序,第一个程序是 AD 单通道,第二个是 AD 多通道。先看一下第一个 AD 单通道啊,下载,看一下面包板。在面包板的这里啊,我接了一个电位器,就是滑动变阻器啊。用这个电位器产生一个 0~3.3 伏连续变化的模拟电压信号,然后接到 STM32 的 PA0 口上。之后用 STM32 内部的 ADC 读取电压数据,显示在屏幕上。这里屏幕第一行显示的是 AD 转换后的原始数据,第二行是经过处理后实际的电压值哈。那我们拧一下这个电位器试一下。往左拧 AD 值减小,
2026-06-07 12:21:03
270
原创 STM32-编码器接口测速(十七)
这个结构体变量的配置哈,调用 ICInit 的函数之后,就写入到硬件的寄存器了,所以 Init 了之后,这个结构体我们可以换个值继续使用,不需要重新定义新的结构体了哈。这两个地方的参数啊,其实都配置的是同一个寄存器,属于重复配置的哈,后配置的参数会覆盖前面的参数。接着继续转到定义看一下,后两个参数就是 IC1 的极性和 IC2 的极性了,参数列表一样哈,都是 Falling 和 Rising, 选择 Rising 就是这个通道不反向,选择 Falling 就是这个通道反向,这个可以根据实际情况来配置哈。
2026-06-06 11:30:01
265
原创 STM32-TIM编码器接口(十六)
看一下最终程序的现象啊。本小节只有一个程序,就是编码器接口测速。我们试一下,下载,看一下面包板。在这里我接了一个旋转编码器模块啊,这个代码和之前我们写的旋转编码器计次的代码,实现的功能基本都是一样的。目前我们这个代码本质上也是旋转编码器计次,只不过这个代码是通过定时器的编码器接口来自动计次,而我们之前的代码是通过触发外部中断,然后在中断函数里手动进行计次。使用编码器接口的好处就是节约软件资源。如果使用外部中断来计次,那当电机高速旋转时,编码器每秒产生成千上万个脉冲,程序就得频繁进中断啊。然后进中断之后,完成
2026-06-04 23:13:31
247
原创 STM32-输入捕获模式测频率&PWMI模式测频率占空比(十五)
目前我们这个测量信号的输入引脚啊是 PA6,信号从 PA6 进来,待测的 PWM 信号也是 STM32 自己生成的,输出引脚是 PA0。所以接线这里,直接用一根线把 PA0 引到 PA6 就行了。如果你有信号发生器的话,也可以设置成方波信号输出,高电平 3.3 伏,低电平 0 伏,然后直接接到 PA6。另外也别忘了共地,这样接线也行。那这就是接线图。目前我们这两个代码的接线都是一样的哈,都是接一根线从 PA0 到 PA6。来看一下面包板,硬件电路这里直接找一根面包板飞线,一端接在 PA6,另一端接在 PA0
2026-06-03 23:07:41
297
原创 STM32-TIM输入捕获(十四)
输入捕获部分总共有两个程序,第一个是输入捕获模式测频率,第二个是 PWM 模式测频率和占空比。先看一下第一个程序啊,输入捕获模式测频率。在这里为了测量外部信号的频率,我们现在有个信号源,产生一个频率和占空比可调的波形啊。但是考虑到大家可能没有信号发生器,所以我这里就借用了一下上一小节的代码。先用 PWM 模块在 PA0 端口输出一个频率和占空比可调的波形。然后我们本节的代码,测量波形的输入口是 PA6。所以我们直接用一根线把 PA0 和 PA6 连在一起,这样就能测量自己 PWM 模块产生波形的频率了。另外
2026-06-01 20:35:29
288
原创 STM32-PWM驱动LED呼吸灯&PWM驱动直流电机(十三)
接线图:在这里我们在 PA0 引脚上插一个 LED 啊,我们准备在这个 PA0 引脚输出一个 PWM 波,用于驱动这个 LED, 并且呈现出不同的亮度。注意一下哈,这个 LED 我们用的是正极接在 PA0 引脚,负极接在接地的驱动方法。这样就是高电平点亮,低电平熄灭。这是正极性的驱动方法,这样接的话观察更直观一些哈,就是占空比越大 LED 越亮,占空比越小 LED 就越暗。删掉:新建:上一小节我们已经把 PWM 的这整个通路都讲完了哈。现在我们只需要把这些模块都打通,那就可以输出 PWM 了是吧?具体的步骤
2026-05-30 14:40:07
342
原创 STM32-TIM输出比较(十二)
STM32定时器的输出比较功能啊,这个输出比较功能还是非常重要的。它主要是用来输出 PWM 波形的, PWM 波形又是驱动电机的必要条件。所以你如果想用 STM32 做一些有电机的项目,比如智能车、机器人等啊,那这个输出比较功能就要好好学学了啊它的英文是 OC,全称是 Output Compare,直译就是输出比较的意思。在这个库函数中经常会出现这些英文缩写啊,所以要了解一下。要不然他写个 OC,另外还有 IC,全称是 Input Capture,意为输入捕获。还有 CC,全称是 Capture Compa
2026-05-26 23:06:51
461
原创 STM32-定时器定时中断&定时器外部时钟(十一)
main删除代码编译在这里面我们来初始化定时器。那怎么来初始化定时器呢?我们可以看一下 PPT 的这个图。这个是定时中断的整个框架结构哈。我们只需要把这里面的每个模块都打通,就可以让定时器工作了。那大体上的步骤就是,第一步 RCC 开启时钟啊,这个基本上每个代码都是第一步,不用多想。在这里打开时钟后定时器的基准时钟和整个外设的工作时钟就都会同时打开了。第二步呢,选择时基单元的时钟源。对于定时中断,我们就选择内部时钟源啊。第三步,配置时基单员,包括这里的预分频器,自动重装器,计数模式等等。这些参数用一个结构体
2026-05-13 23:17:14
849
原创 STM32-TIM定时中断(十)
第一部分我们主要讲的是定时器基本定时的功能,也就是定一个时间,然后让定时器每隔这个时间产生一个中断,来实现每隔一个固定时间执行一段程序的目的。比如你要做个时钟、秒表,或者使用一些程序算法的时候,都需要用到定时中断的这个功能。在第二部分我们主要讲的是定时器输出比较的功能。输出比较这个模块最常见的用途就是产生 PWM 波形,用于驱动电机等设备啊。在这个部分我们将会学习到使用 STM32 输出的 PWM 波形来驱动舵机和直流电电机的例子。在第三部分我们主要讲的是定时器输入捕获的功能。在这部分我们将会学习使用输入捕
2026-05-12 07:34:27
449
原创 STM32-对射式红外传感器计次&旋转编码器计次(九)
定时器也是, ADC 也是,串口也是,都是一个套路啊。那我们就 if 把这函数括起来,判断一下返回值是不是等于等于 set,如果是的话我们就可以执行中断程序了,最后中断程序结束后,一定要再调用一下清除中断标志位的函数,因为只要中断标志位置一了,程序就会跳到中断函数,如果你不清除中断标志位,那它就会一直申请中断,这样程序就会不断响应中断,执行中断函数,那程序就卡死在中断函数里了,所以我们每次中断程序结束后都应该清除一下中断标志位,我们复制一下EXTI_ClearITPendingBit放到这里,
2026-05-08 08:32:46
460
原创 STM32-EXIT外部中断(八)
中断系统是管理和执行中断的逻辑结构啊。外部中断是众多能产生中断的外设之一,所以本节我们就借助外部中断来学习一下中断系统,在以后学其他外设的时候,也是会经常和中断打交道的啊。那我们先来了解一下中断的概念啊。中断响应和事件响应。中断响应好理解啊,就是申请中断,让 CPU 执行中断函数。那事件响应是什么意思呢?这个其实是 STM32 对外部中断增加的一种额外的功能啊。当外部中断检测到引脚电平变化时,正常的流程是选择触发中断,但在 STM32 中也可以选择触发一个事件。如果选择触发事件,那外部中断的信号就不会通向
2026-04-26 23:08:29
482
原创 STM32-OLED显示屏(七)
最后是 OLED font .H 文件,这里存的是 OLED 的字库数据,因为这个 OLED 显示屏是不带字库的哈,想要显示字符图形,还得先定义字符的点阵数据,那这里就是这些字符的点阵数据啊,也就是字库, OLED 点 C 文件的显示函数会用到这些数据啊。当然字库也是不用我们修改的。另外还有对照法,这就是你找到一个没问题的程序,它的执行逻辑没问题,你感觉你自己写的逻辑也没问题,但是它的可以运行你的却不能运行,这时就可以对照一下哈,在它的程序逻辑上逐步替换成你的程序逻辑,这样就比较容易发现错误在什么地方啊。
2026-04-26 13:40:01
573
原创 STM32-按键控制LED&光敏传感器控制蜂鸣器(六)
第三个 GPIO_ Speed 的,这里的速度是 GPIO 的输出速度哈,在输入模式下这个参数其实是没用的,那我们还是填上 GPIO_ Speed 的 50 兆赫兹哈,这个也没啥影响。定义外面的是全局变量啊, 函数里面的是局部变量,两者的作用域不一样。我们可以在 LED 的驱动里再加一个函数啊, void LED1Turn,调用这个函数, LED1 的状态取反。那最后一个 GPIO_ ReadOutputData, 这个函数也是少了一个 bit 啊,意思也是一样,是用来读取整个输出寄存器的。
2026-04-25 11:40:58
508
原创 STM32-GPIO输入(五)
分别是光敏电阻传感器、热敏电阻传感器、对射式红外传感器、反射式红外传感器电阻会随外界的模拟量变化而变化。比如光线越强,光敏电阻的阻值就越小。温度越高,热敏电阻的阻值就越小。红外光线越强,红外接收管的阻值就越小。但是电阻的变化不容易直接被观察,所以我们通常将传感器元件与定值电阻进行串联分压,这样就可以得到模拟电压的输出了。对电路来说,检测电压就非常容易了。另外这个模块还可以通过电压比较器来对这个模拟电压进行二值化,这样就可以得到数字电压输出了。那我们看一下下面这个电路图,这个就是传感器模块的基本电路。我们先看
2026-04-21 23:06:23
606
原创 STM32-LED闪烁&LED流水灯&蜂鸣器(四)
首先是时钟,因为我们用的是 PB 口,所以这里改为 GPIO_ B。AIN 是模拟输入, In floating 是浮空输入, IPD 是下拉输入, IPU 是上拉输入, out_OD 是开漏输出, out_PP 是推挽输出, AF_OD 是复用开漏, AF_PP 是复用推挽。在这里我们可以看到 RCC 有很多的库函数,但实际上这里的大部分函数我们都不会用到,我们最常用的只有这三个函数, RCC_ AHB1 外设时钟控制, RCC_ APB2 外设时钟控制, RCC_ APB1 外设时钟控制。
2026-04-19 23:25:36
459
原创 STM32-GPIO输出(三)
下面这有一个框图,这就是 GPI O 的整体构造哈。其中左边的是 A P B 2外设总线,也就是这个 STM32 系统结构图的这个位置哈。在 STM32 中,所有的 GPI O 都是挂载在 A P B 二外设总线上的。其中 GPI O 外设的名称是按照 GPI O A、 GPI O B、 GPI O C 等等这样来命名的哈。每个 GPI O 外设总共有 16 个引脚,编号是从零到 15 那 GPIOA 的第 0 号引脚,我们一般把它称作 PA0。接着第 1 号就是 PA1,然后 PA2,以此类推啊,一直到
2026-04-19 11:17:17
569
原创 STM32-新建工程(二)
然后我们把结构体的每一个参数填上,复制粘贴结构体的名字,然后用点来引出结构体的参数,可以看到这个结构体有三个参数,分别是 GPIO 模式, GPIO 端口, GPIO 速度啊。而且这个操作方式也有个弊端,就是我们把除了PC 13之外的位都配置成了零,这样会影响到其他端口的原有配置,如果要做到只配置这个PC13而不影响其他位,那还需要 &=和|= 的操作,这个在51单片机的视频里我们也经常遇到,那就会更加麻烦。这里的文件都是 STM32 里最基本的文件,是不需要我们修改的,我们添加进来即可。
2026-04-14 22:08:36
432
原创 江科大51单片机笔记
1.单片机,英文Micro Controller Unit,简称MCU2.内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等系列电脑的常用硬件功能3.单片机的任务是信息采集 (依靠传感器)、处理(依靠CPU) 和硬件设备(例如电机,LED等) 的控制4.单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用,同时,学习使用单片机是了解计算机原理与结构的最佳选。
2026-04-11 12:38:43
364
原创 STM32-简介(一)
Keil5是给ARM系列的单片机编程的,学习51单片机用的是Keil5 C51,是给51系列的单片机编程的面包板跳线比较短,可以贴在面包板上插线,比较适合长时间插线的情况面包板飞线这种线比较长,也方便挪动,比较适合经常挪动的接线情况两排是杜邦线,分别是公对母和母对母的,可以用于插接一些电路模块STM32最小系统板,黑色的小芯片就是STM32,主要就是学习这个小芯片的LOED显示屏,用于显示参数和变量,这个显示屏是一个4引脚版本的,现在网上卖的有4引|脚和7引脚的,注意不要弄错了蓝色的元件是电位器。
2026-04-01 21:24:01
806
原创 51单片机入门-红外遥控(十七)
低电平触发,只要是低电平,中断一直处于触发状态,当中断函数结束之后 他会在次进入,直到变成高电平为止。先把定时器0换成定时器1:红外线用的是定时器0,会冲突。独立按键的电路p32,就可以按下那个键就可以触发中断。定时器每加1就是1微秒,10毫秒就是1万。红外解码我们需要下降延触发:配置为1。测试起始信号,再次按下按键也可以。配置下外部中断:验证一下。可以定义下宏定义:建码值。上面外部中断就测试好了。
2026-03-31 21:05:32
282
1
原创 51单片机入门-直流电机(十五)
电机的级性是反过来的,给1的时候电机转,需要把0和1换下位置。上面写的是在主函数中,占用主进程的,下面用定时器的方式实现。先亮度低到高,然后高到底:就实现了呼吸灯效果。比较值设置的越大,低电平的时间越长,会越亮。设置小一些,低电平的时间越短,就会变暗。用了定时器,主循环,就可以做些其他事情。让他转的快一些让他转2us停1us。亮度由低到高变化,变化比较快。下面用定时器,反转PWM。再加一层循环,就明显了。
2026-03-24 21:07:06
113
原创 51单片机入门-温度传感器DS18B20(十三)
现在按键按下不松手温度是不会变化的:现在是按键扫描,按键不松手里面一直在延迟了,主函数就不执行了,我们来改成定时器扫描。线下按住按键,加热温度传感器,温度也会变化。480us:非常小,不能用delay函数。上面原来写的T要换个比变量,否则会有影响。按下按键1:+1 按键2:-1。按键3:TL +1 按键4:-1。拔掉ds18b20:没响应:显示1。这样上电运行不会有延迟默认值。延迟:15-60 给70。函数4us,多加4us。第二个例子:温度报警。100:显示两位小数。单总线是不能被中断的。
2026-03-21 13:55:48
128
原创 51单片机入门-数据存储AT24C02(十二)
在加个delay:也不会影响,不会出现任何闪烁,因为扫描实在定时器里面的,不会影响我们的按键检测,他影响的是相应时间,相应是在主函数,一直按着他也在扫描,松手就变了。数码管里面也有delay可以进行修改定时器扫描数码管。主函数不用调,定时器会自动调用扫描显示在数码管上。分别运行:也可以读到,就实现掉电不丢失。每隔一秒取反一次,说明定时器没问题。这样写并不会影响主循环的执行。重启:按下按键4:读取。每隔20us检测一下。引入:AT24C02。
2026-03-18 21:30:26
215
原创 51单片机入门-蜂鸣器(十一)
这个数组太大了,编译报错需要存到Flash里:flash里面只能读不能写。f=1/T 500us 就是频率1000hz标准的提示声音。还是通过音符找索引:不方便可以写个获取索引的。改成延时500us:还需要ms*2。就可以实现按一下向100毫秒。64580就是中央c的频率。到了终止标志,停止响音。修改这个值频率加大了。休字符期间没有声音的。
2026-03-14 18:05:48
113
原创 51单片机入门-DS1302时钟(十)
DS1302_Time是有符号的,没有负数,不能用<0判断,需要改下,把unsigned去掉,有符号的是-128-127。| 0x01可定是读,给地址的时候可以给写的地址,就不需要定义那么多地址了。设置好时间,重新进来设置它显示上一次设置的位:想让他从头开始。extern可以不加,数组和函数默认会有,变量需要生明。这些地址是写入的地址,最低位是0,读出最低位肯定是1。每次读一个东西需要定义一个变量,优化下。不用delay也没关系。9之后直接变成16了。显示跟数组设置的一样。定义模式,显示和修改。
2026-03-08 17:26:12
155
后端java行情不行,真的要转行吗?
2023-02-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅