【单片机笔记】基于STM32的8通道的开源无线遥控器手柄

2023-11-20

MARS STM32遥控器v1.0

MARS STM32遥控器v1.0.................. 1

1.遥控器简介........................... 1

2.硬件详解............................. 8

2.1MCU主控部分..................... 8

2.2电源部分........................ 9

2.3摇杆、段位、拨轮通道部分....... 10

2.4五项按键....................... 11

2.5蜂鸣器和LED................... 11

2.6板载重力传感器MPU6050......... 12

2.7无线接口....................... 12

2.8外部FLASH..................... 13

2.10屏幕.......................... 13

3.电气特性............................ 13

4.功能描述............................ 14

4.1按键描述....................... 14

4.2主界面......................... 14

4.3定时器......................... 14

4.4调整摇杆....................... 14

4.5菜单........................... 14

4.5.1舵量显示子菜单.............. 15

4.5.2系统设置子菜单.............. 15

4.5.3无线参数子菜单.............. 15

4.5.4无线对频子菜单.............. 15

4.5.5版本信息子菜单.............. 15

4.5.6恢复出厂子菜单.............. 16

4.5.7固件升级子菜单.............. 16

5.关于二次开发........................ 16

6.联系我们............................ 18

 

 

 

 

 

                                             

 

1.遥控器简介

 


火星科技基于ARM Cotex-M3内核72M主频的STM32F103C8T6自主设计的一款10通道遥控器,其外形参考XBOX游戏手柄外观结构设计,小巧精致。外围硬件主要有白色OLED、高频头接口(可以适应对应接口的多种无线模块)、五项按键(抛去传统的轻触按键)、蜂鸣器、MPU6050陀螺仪重力传感器、RGB全彩LED指示灯、档位开关、拨轮、USB、W25QXX外部Flash芯片、RTC实时时钟、摇杆、两路串口预留、电源管理等等。

图1-1正面实物图

图1-2背面实物图

图1-3系统框图

 

图1-4原理图

图1-5 PCB尺寸及元件位置图正面

图1-6 PCB尺寸及元件位置图背面

MARS-STM32遥控器元件清单

Comment

Description

_Value

_Degree

Designator

Footprint

Pins

Quantity

LibRef

Message

CAPN

瓷片电容

0.1uF

>10V

C2, C4, C6, C7, C8, C10, C12, C13, C14, C15, C16, C17, C19, C20, C21

FY-0603_C

2

15

CAPN

 

CAPN

瓷片电容

12pF

>10V

C9, C11

FY-0603_C

2

2

CAPN

 

CAPN

瓷片电容

2.2nF

>10V

C5

FY-0603_C

2

1

CAPN

 

Inductor

电感

10uH

 

L1

FY-0603_L

2

1

Inductor

电感可以用0-10R电阻替代

LED_R

LED_R

 

 

D2

FY-0603_LED_R

2

1

LED_R

 

RES

电阻

1.5K

5%

R8, R9

FY-0603_R

2

2

RES

 

RES

电阻

100K

1%

R24, R25

FY-0603_R

2

2

RES

 

RES

电阻

100R

5%

R3

FY-0603_R

2

1

RES

 

RES

电阻

10K

1%

R4, R5, R10, R11, R12, R13

FY-0603_R

2

6

RES

 

RES

电阻

10K

5%

R6, R15, R18, R19, R21

FY-0603_R

2

5

RES

 

RES

电阻

10R

1%

R32, R33

FY-0603_R

2

2

RES

 

RES

电阻

1K

5%

R7

FY-0603_R

2

1

RES

 

RES

电阻

1M

5%

R20

FY-0603_R

2

1

RES

 

RES

电阻

22K

1%

R22, R23

FY-0603_R

2

2

RES

 

RES

电阻

22R

5%

R14, R16

FY-0603_R

2

2

RES

 

RES

电阻

24K

1%

R28, R29

FY-0603_R

2

2

RES

 

RES

电阻

4.7K

5%

R1, R2, R17

FY-0603_R

2

3

RES

 

RES

电阻

51K

1%

R26, R27

FY-0603_R

2

2

RES

 

RES

电阻

9.1K

1%

R30, R31

FY-0603_R

2

2

RES

 

CAPN

瓷片电容

10uF

>10V

C18

FY-0805_C

2

1

CAPN

 

CAPN

瓷片电容

47uF

>10V

C1, C3

FY-1206_C

2

2

CAPN

使用10UF 0805电容可以替代

BELL

蜂鸣器

3V

9mm

LS1

FY-BELL_9MM

2

1

BELL

 

CR1220

电子座

3V

CR1220

BT1

FY-CR1220

2

1

CR1220

 

1N4148

二极管

 

 

D4, D5

FY-D_MELF_1206

2

2

DIODE

 

H4X1

H4X1

 

 

P4

FY-H1.25-1X4A

4

1

H4X1

 

H4X1

H4X1

 

 

P3, P5

FY-H1.25-1X4W

4

2

H4X1

 

JOYSTICK

摇杆

 

 

R34, R35

FY-JOYSTICK

6

2

JOYSTICK

 

KEY6-5-10*10

KEY6-5-10*10

 

 

KEY1, KEY2

FY-KEY5-SMD-10*10*9

6

2

KEY6-5-10*10

 

LED_RGB[5050]-4

LED

 

 

D3

FY-LED_RGB[5050]-4

4

1

LED_RGB[5050]-4

 

STM32F103C8T6

单片机

 

 

U5

FY-LQFP-48

48

1

STM32F103C8T6

 

NRF24L01_MODULE

射频模块

 

 

U7

FY-NRF24L01_MODULE1

8

1

NRF24L01_MODULE

 

OLED_MODULE

OLED_IIC模块

 

 

P2

FY-OLED_IIC

4

1

OLED_IIC

 

PH2X1

PH2X1

 

 

PH1

FY-PH2.0_2AW

2

1

PH2X1

 

POT

电位器

10K

20%

RP1, RP2

FY-POT-BKP2

3

2

POT

 

MPU6050

陀螺仪芯片

 

 

U3

FY-QFN24 4*4

24

1

MPU6050

 

SS14

二极管

 

 

D1

FY-SMA

2

1

DIODE

使用0-10R电阻可以替代

W25X16

存储芯片

 

 

U6

FY-SO-8W_5*5

8

1

W25Q16BV

 

HT7133

电源芯片

 

 

U1

FY-SOT89M

3

1

HT7133

电源芯片二选一,优先选择662K

ME6206A33M3G

电源芯片

 

 

U2

FY-SOT-23-3

3

1

ME6206A33M3G

SS8050

三极管

1.5A

 

Q1

FY-SOT-23-3

3

1

SS8050

 

LTC4054

充电芯片

 

 

U4

FY-SOT-23-5

5

1

LTC4054

 

SW_2

SW_2

 

 

S1, S3

FY-SW-SMD6

6

2

SW_2

 

SW3-8

SW3-8

 

 

S2

FY-SW-SMD8

8

1

SW3-8

 

USB_MICRO

USB_MICRO

 

 

P1

FY-USB_MIC_V2

5

1

USB_MICRO

 

XTAL

晶振体

8M

20ppm

Y1

FY-XTAL_CT3P

2

1

XTAL

 

XTAL

晶振体

32.768K

 

Y2

FY-XTAL_YZ2*6

2

1

XTAL

 

 

图1-7 主界面

图1-8 主菜单

图1-9 舵量显示

图1-10设置界面1

图1-11 设置界面2

图1-12 版本信息和无线参数

图1-13 恢复出厂和无线配对

 

2.硬件详解

图2-1 STM32F103C8T6最小系统

主控使用的是性价比非常高的32位的STM32F103C8T6,具有 20KB SRAM、64KB FLASH、7 个定时器、7 通道 DMA 控制器、2 个 SPI、2 个 IIC、3 个串口、1 个 USB 全速接口、1 个 CAN 接口、2 个 12 位 ADC、以及 35 个通用 IO 口等。该芯片外设丰富、功能强大,也是最常见的芯片之一。在这么多外设里面遥控器主要用到了有Flash编程、DMA、SPI、IIC、串口、USB、ADC、通用IO、定时器等。其中ADC主要用来采集摇杆、段位、拨轮的通道数据和电池电压;串口用到了串口3和串口1,分别预留出来了端子可以扩展应用;IIC是用软件模拟IIC,主要用来驱动OLED和MPU6050,SPI是用来驱动无线模块和外部Flash芯片。

主晶振采用的是小体积的8MHz的村田3脚贴片晶振,内部自带有20pF电容,通过单片机倍频到72MHz作为主时钟。RTC晶振使用的是圆柱2脚32.768KHz的直插晶振。

2.2电源部分

2.1MCU主控部分

图2-1 STM32F103C8T6最小系统

主控使用的是性价比非常高的32位的STM32F103C8T6,具有 20KB SRAM、64KB FLASH、7 个定时器、7 通道 DMA 控制器、2 个 SPI、2 个 IIC、3 个串口、1 个 USB 全速接口、1 个 CAN 接口、2 个 12 位 ADC、以及 35 个通用 IO 口等。该芯片外设丰富、功能强大,也是最常见的芯片之一。在这么多外设里面遥控器主要用到了有Flash编程、DMA、SPI、IIC、串口、USB、ADC、通用IO、定时器等。其中ADC主要用来采集摇杆、段位、拨轮的通道数据和电池电压;串口用到了串口3和串口1,分别预留出来了端子可以扩展应用;IIC是用软件模拟IIC,主要用来驱动OLED和MPU6050,SPI是用来驱动无线模块和外部Flash芯片。

主晶振采用的是小体积的8MHz的村田3脚贴片晶振,内部自带有20pF电容,通过单片机倍频到72MHz作为主时钟。RTC晶振使用的是圆柱2脚32.768KHz的直插晶振。

2.2电源部分

图2-2 充电和稳压

电源部分主要就是充电和稳压,充电采用了一颗锂电池充电管理芯片通过Micro USB接口进行充电,这样充电可以更好的保护电池,D2可以显示电池充电状态,充电中D2亮,充满D2熄灭。稳压部分可以选用两种IC进行稳压,第一种是ME6206A33M3G,这个可以提供200mA的电流,但是承受电压范围比较小在6.5V以下;HT7133可以提供100mA以上的电流,但是支持更高的电压承受范围;在使用时因为电池使用的是1S的锂电池,所以建议用前者。USB和单片机连接,可以支持USB的VCP、HID、U盘等各种功能,目前程序v1.0是作为虚拟串口(VCP)使用。

2.3摇杆、段位、拨轮通道部分

图2-3-1 摇杆

图2-3-2 段位开关和拨轮

摇杆采用的是左手油门,也就是常说的美国手。左边摇杆上下不自动回中,适合做油门使用,右边摇杆前后左右自动回中。段位开关是两段+三段的形式,其中两段采用的是读取IO电平实现的,三段采用的是读取ADC值后量化整定实现的。拨轮有左右两个,分别接在了MCU的ADC口。

2.4五项按键

图2-4 AD按键

按键使用的是五项按键,可以左右前后拨动和下按,首先这个按键相当于5个独立的轻触按键,一个五向按键代替传统的5个轻触按键,优点当然有很多啦,体积小,操作更方便等,最主要的还是PCB的布局。两个五项按键都是用的ADC的方式,每个按键对应一路ADC,所以10个按键只需要两个IO就可以了,大大节省了MCU的IO资源。

2.5蜂鸣器和LED

  

图2-5-1LED                           图2-5-2 蜂鸣器

蜂鸣器使用的是9mm的小封装有源蜂鸣器,主要作用是来报警提示和操作提示。LED使用的是内置IC的RGB全彩单总线灯珠,一方面可以操作的信息更多,一方面接口简单。

2.6板载重力传感器MPU6050

图2-7 MPU6050传感器

为了增加更多的扩展功能,遥控器上贴有一颗MPU6050六轴传感器,这也是一颗非常常见的传感器,在遥控器v1.0版本还没有用到,此功能还有待后期加入,当然也可以进行二次开发。

2.7无线接口

图2-8无线接口

无线接口采用4*2的母座,对应NRF24L01无线模块。程序v1.0版本的无线驱动也是对应的这个模块,后期可以加入更多的无线模块以适应不同的应用和场合。

2.8外部FLASH

图2-9 外部FLASH

遥控器板载了一颗W25Q64的8M Byte FLASH存储器,其SPI通信与无线接口共用,主要功能也是为后期扩展用,可以用来做USB IAP和存储字库等。程序v1.0暂时还没有用到。

2.10屏幕

图2-10 OLED接口

屏幕采用的是OLED白色128*64的IIC接口点阵屏幕,其大小、分辨率对于遥控器来说也相对合适。主要用来显示遥控器的信息和提供人机界面辅助按键进行操控。

3.电气特性

  • 工作电压:3.7 - 4.2V
  • 供电方式:1S 3.7V锂电池供电
  • 无线通信:NRF24L01(后期会更新不同的RF)
  • 通信距离:根据不同RF功率和特性决定
  • 充    电:Micro USB 5V 600mA

 

4.功能描述

4.1按键描述

五项按键有顾名思义有五个键值,分别是上、下、左、右和按下。我们将其简洁命名为U、D、L、R、P。左、右按键分别简洁命名为K1和K2。那么左、右边的上、下、左、右、按下分别对应K1-U、K1-D、K1-L、K1-R、K1-P和K2-U、K2-D、K2-L、K2-R、K2-P。下文将所有的按键操作以此为准。

4.2主界面

主界面主要是主要信息的显示,分别有信号强度、所使用的无线模组、遥控器电量、接收机电压、设备电压、进入菜单图标、定时器1(左)、定时器2(右)、调整摇杆零偏锁定图标、10通道数据。界面目前支持简体中文、英文两种显示模式。10通道数据支持模拟+数字、数字和模拟量三种显示模式。主界面默认没有指向哪一个选项,通过K1-U、K1-D、K1-L、K1-R或K2-U、K2-D、K2-L、K2-R可以切换到菜单图标、定时器1图标、定时器2图标和摇杆零偏调整锁定/上锁图标。

4.3定时器

主界面有两路定时器,作用是用来计时,其中第一组定时器默认是停止状态,即开机不会自动运行,可以通过手动来启动、暂停、清零;第二组定时器操作上和第一组一样,唯一的区别是上电会自动运行。启动、暂停的操作是界面图标切换到对应的定时器,短按K1-P或K2-P;清理操作界面图标切换到对应的定时器,长按K1-P或K2-P。

4.4调整摇杆

主界面可以直观的看到摇杆的四通道数据,因其摇杆的出厂精度等各种因素,需要手动矫正,此时可以解锁调整摇杆偏移后通过左右的按键将摇杆数据矫正。其中解锁是在屏幕移动到“锁定”图标上按K1-P或K2-P,解锁后图标“锁定”变为图标“开锁”;上锁是在调节零偏状态(此时锁图标为开锁状态)按K1-P或K2-P,上锁后图标“开锁”变为图标“锁定”;在调节过程,K1-L、K1-R调节的是YAW,K1-U、K1-D调节的是THR,K2-L、K2-R调节的是ROL、K2-U、K2-D调节的是PIT。

4.5菜单

进入菜单的方式有两种,在默认没有指向菜单选项或者指向菜单图标选项情况下,按下K1-P或者K2-P即可进入到菜单内部。主菜单共有8项选择可以根据选择进入,切换子菜单选项的方式为按下K1-U、K1-D、K1-L、K1-R或K2-U、K2-D、K2-L、K2-R,进入到子菜单的的方式为按下K1-P或K2-P。子菜单有分别对应舵量显示、系统设置、无线参数、无线对频、版本信息、恢复出厂、固件升级、返回主页。在默认情况下2.5s没有按键操作会自动返回到主界面。

4.5.1舵量显示子菜单

舵量显示主要用来测试10通道遥控数据,分别是摇杆4通道、段位2通道和拨轮2通道。在此界面有两个选项分别对应显示模式(左)和返回(右),在显示模式图标下可以按K1-P或K2-P来切换不同的三种显示模式,注意这里的显示模式更改后并不会保存,也就是主界面的显示模式并不会更改,如需更改主界面的显示模式,需要在设置子菜单里面进行修改(详细操作请看系统设置子菜单)。在返回图标下按下K1-P或K2-P可以返回到主菜单。

4.5.2系统设置子菜单

进入到系统子菜单后,会有多项设置项,目前支持的有语言、显示、日期、时间、报警、信号强度、遥控电压、接收机电压、设备电压、返回。此界面因为设置项多和屏幕小的问题共分成了三页进行显示,可以按下K1-U、K1-D、K1-L、K1-R或K2-U、K2-D、K2-L、K2-R来切换不同的设置项。需要对某一项设置更改只需要切换到对应的图片按下K1-P或K2-P键即可进入,在进入设置之后同样可以按下K1-U、K1-D、K1-L、K1-R或K2-U、K2-D、K2-L、K2-R来对应设置,设置完毕后按下K1-P或K2-P即可保存设置。其中报警设置项为报警的总开关,即报警开关打开的情况下才会根据报警内容进行报警,报警是通过蜂鸣器和RGB-LED进行提示。如果在2.5s内没有按键操作并且没有进入任何一设置项,系统设置子菜单会自动返回到主菜单界面。

4.5.3无线参数子菜单

进入到无线参数子菜单后,用户可以直观的看到当前使用的模组类型、通信地址、通信频率、信号强度。其中信号强度有tx_rssi和rx_rssi,tx_rssi是发送到下属接收机的信号强度,rx_rssi是接收到接收机数据的信号强度。在此菜单如需返回上一层只需按下K1-P或K2-P键即可。

4.5.4无线对频子菜单

进入到无线对频子菜单后,可以根据用户的选择执行对频和取消操作。

4.5.5版本信息子菜单

进入到该界面后,用户可以观察到系统的程序版本、CPU使用率和作者信息。在此菜单如需返回上一层只需按下K1-P或K2-P键即可。

4.5.6恢复出厂子菜单

进入到该界面后,可以根据用户的选择执行恢复出厂和取消操作。恢复出厂会清除所有的零偏矫正数据、设置项数据、无线模组数据等。

4.5.7固件升级子菜单

进入到该界面后,可以根据用户的选择执行固件升级和取消操作。目前固件升级的功能还没有开发完善,只是预留做后期扩展。

5.关于二次开发

图5-1工程目录

遥控器程序使用的是ST官方3.5的标准库,工程建立使用的是Keil5。源码主要包含有STM32的标准库函数、自行编写的底层硬件二次封装函数、UCOSII、USB等等,并没有用到UI,只是简单做了一个界面。USB目前作为虚拟串口使用,可以根据需求修改描述符作为不同的设备。遥控器所有动作和工作都是基于操作系统的任务形式执行,UCOSII用到了一些系统的资源,如信号量、消息队列、软件定时器等等。移植、修改、二次开发都相对简单。

至于无线模组、目前调试好的有市面上最常见的NRF24L01模块,可以选择PCB天线、PA大功率版本的,根据具体需求自行选择。无线部分有做上层处理,也就是支持不同类型的无线模组、具体的实现方式是通过函数指针自动选择、开发者只需要把无线模组底层调试好,移植到工程目录,通过上层的硬件选择代码添加上就可以了。

 

图5-2 部分源码1

图5-3 部分源码2

6.联系我们

技术支持:13027717881(手机微信同号)

技术交流群:733945348(完整源码工程文件在群里可以下载)

By Urien 2019年8月11日 15:56:12

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【单片机笔记】基于STM32的8通道的开源无线遥控器手柄 的相关文章

  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • EventHandler 应该始终用于事件吗?

    我一直在愉快地使用自定义委托类型和通用编写事件Action委托类型 没有真正考虑我在做什么 我有一些很好的扩展助手Action and EventHandler这使我倾向于使用那些预定义的委托类型而不是我自己的委托类型 但除此之外 除了惯例
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 如何使用 C# 以编程方式编辑 Power BI Desktop 文档参数或数据源?

    我有一个在 Power BI Desktop 中内置的报告模板 并保存为 pbix 或 pbit 文件 该模板使用DirectQuery SQL数据库作为数据源 而服务器地址和数据库名称被提取到参数中 还有一个参数包含一个ReportId
  • libtool 在 Ubuntu 13.04 上构建 thrift 0.9.1 时出错

    在 Ubuntu 13 04 上构建 thrift 0 9 1 支持 C C java C perl python 时出现此错误 configure 不带任何选项运行 make 不带任何选项运行 Making all in test mak
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • 为什么 C# 中同一类型的隐式和显式运算符不能共存? [复制]

    这个问题在这里已经有答案了 为什么同一类中两个相同类型的运算符 显式和隐式 不能共存 假设我有以下内容 public class Fahrenheit public float Degrees get set public Fahrenhe
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • PrivateObject 找不到属性

    我的结构基本上如下所示 abstract class A protected string Identificator get set private void DoSomething DoSomethingSpecific protect
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • 在 C 语言中替换宏内的宏

    我正在尝试使代码部分可重用 我下面的评论片段没有达到我想要的效果 define NAME ABC define LOG SIZE NAME LEN 我想LOG SIZE决心ABC LEN 我尝试过使用 但没能让它发挥作用 LOG SIZE在
  • 如何使用 C# 查询远程 MS ACCESS .mdb 数据库

    我正在尝试使用 C 查询 mote MS ACCESS 数据库 mdb 文件 将文件复制到本地计算机时可以成功查询它 我只想远程放置文件 所以我的客户端程序不包含原始数据 static string m path http www xyz
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • 运行 xunit 测试时无法将输出打印到控制台窗口

    public class test2InAnotherProject private readonly ITestOutputHelper output public test2InAnotherProject ITestOutputHel
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它

随机推荐

  • P1433 吃奶酪 题解(勿抄袭)

    P1433 吃奶酪 题目描述 房间里放着 n 块奶酪 一只小老鼠要把它们都吃掉 问至少要跑多少距离 老鼠一开始在 0 0 点处 输入格式 第一行一个正整数 n 接下来每行 2 个实数 表示第i块奶酪的坐标 两点之间的距离公式为 输出格式 一
  • map获取最大值value和其对应的key

    public String getMaxStr Map
  • 光盘 显示0字符 无法读取文件的修复方法!!

    光盘 显示0字符 无法读取文件的修复方法 问题现象 光盘在运行中强制退出 再次重新读入时 无法读出其中内容 右键 gt 属性 可以看到可用空间和已用空间均为0 出错原因分析 光盘强制退出 未在光盘的引导区写入终止符 导致光盘损坏 解决方案
  • unity网络资源导入

    1 找到需要导入的文件 这里导入fbx格式 2 打开unity界面 在Asset目录下创建文件夹FBX 将需要导入的fbx预制体或整个文件夹拖入创建的FBX文件夹下 3 选中需要的fbx预制体并拖至场景中 4 双击定位到当前物体 5 找到需
  • WINDOWS TE开发指南

    下载 gt 操作系统 gt Linux gt Tiny6410 WindowsCE开发指南 div class download l fl div class download top div class download top wrap
  • 实现Tomcat——实现javax.servlet.Servlet接口

    0 环境配置 这里使用IntelliJ IDEA Maven WebApp项目 不过这里我们不会使用 启动Tomcat服务器 本文的目的就是使用Socket实现一个服务器 此服务器是一个Servlet容器 我们需要遵循Servlet接口规范
  • 简单实现链表增删改查

    学习目标 简单实现链表增删改查 学习内容 外部类和内部类 封装方法 其他类使用内部类私有方法 递归算法 代码块 class test public static void main String args Nodelianbiao nlb
  • js下载流文件

    const request new XMLHttpRequest const resourceUrl hostUrl request open POST resourceUrl true request setRequestHeader A
  • rabbitmq消费者启动报队列未找到

    使用的是spring rabbitmq 启动tomcate报错 消费这队列找不到 如果队列不存在消费者会自动创建的 Caused by org springframework amqp AmqpIllegalStateException F
  • 阿里云无影云电脑怎么买?阿里无影云电脑教程

    可以理解成一台普通的远程连接的电脑不能用于建站之类 纯粹处理办公文档一类 阿里云无影云电脑怎么买 云电脑无影在哪里买 阿里云无影云电脑已经底调上线 可以在阿里云官方云小站购买 目前 阿里云无影云电脑针对新用户有优惠活动 mini版无影云电脑
  • 性能测试流程

    性能测试流程 1 性能测试需求分析 2 性能测试计划和方案 3 性能测试用例编写 4 性能测试执行 编写 录制脚本 搭建场景 运行脚本 系统性能调优 5 性能测试报告总结 流程拆分 一 性能测试需求分析 1 1 熟悉被测系统 熟悉被测系统的
  • 在JDK17尝鲜Flink1.17

    在JDK17尝鲜Flink1 17 前言 还没玩明白老版本 Flink1 17就来了 总还是要向前看的 根据官网文档 https nightlies apache org flink flink docs release 1 17 docs
  • 【攻防世界】三 --- php_rce

    题目 php rce 一 writeup 主页中提示使用了ThinkPHP V5 在github中搜一下ThinkPHP V5的相关漏洞 可以找到一些 由于我们不知其具体的版本 随便找一个执行一下 这里选择第一个 会显出了root
  • 前端学习教程:快速入门前端图表插件ECharts

    前言 在前端项目开发中 有很多地方会遇到绘制图表的需求 一般的图表可以通过canvas来绘制 但是遇到复杂一点的图表怎么办呢 不要慌 在下今天就给大家推荐一个前端大佬们用的非常火的图表插件 ECharts ECharts特性简介 EChar
  • mysql不是内部或外部命令,也不是可运行的程序 或批处理文件。

    安装Mysql后 当我们在window r中输入cmd中敲入mysql时会出现 Mysql 不是内部或外部命令 也不是可运行的程序或其处理文件 打开我的电脑在我的电脑右键中选择属性 然后单击选择高级系统设置 在系统属性的 高级 中选择环境变
  • 域名及真实IP-信息收集

    顶级域名 a 国际域名 常用的是 com net org 推荐大家用 com 示范 taobao com dangdang com b 国家域名 中国国家域名 cn 美国国家域名 us 考虑政策原因 cn域名请个人网站谨慎使用 企业网站可以
  • Photoshop、Illustrator、Sketch哪个更好

    以前在交流组经常能看到大家争论哪个设计软件好 到底是你的吗 Illustrator好还是我的CorelDRAW或者他的Photoshop强大 但是跟着UI流行的设计 Sketch软件也加入了争论 让我们和你分享一下这篇文章 让我们来看看平面
  • 怎么检查代码完好?

    怎么检查代码完好 一 前言 在提交代码前 不论是提交到 SVN 还是 Git 仓库 我们都必须保证提交的代码是正确无误 那么咱们怎么才能确保资金调的代码是正确无误的呢 二 问题 1 maven 项目中提交代码前 怎么保证代码正确无误 2 W
  • 树莓派内核开发准备(内核源码获取、启动过程、源码目录树)

    目录 1 交叉编译工具的安装 2 内核源码获取 3 嵌入式设备带操作系统的启动过程扫盲 4 Linux内核源码树扫盲 1 内核源码简介 2 Linux内核源代码目录树结构 tree指令查看 内核源码目录树 1 交叉编译工具的安装 参照我之前
  • 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄

    MARS STM32遥控器v1 0 MARS STM32遥控器v1 0 1 1 遥控器简介 1 2 硬件详解 8 2 1MCU主控部分 8 2 2电源部分 9 2 3摇杆 段位 拨轮通道部分 10 2 4五项按键 11 2 5蜂鸣器和LED