JAVA学习记录

2023-05-16

文章目录

  • 前言
  • Pta做题样例
    • 做题样例
  • 命名规范&代码风格
  • 基本数据类型
  • 基本语法
    • 类变量
    • 类函数
      • 关系运算
  • 浮点数(实型)
  • 数组
    • Java定义数组
    • Java程序遍历整个数组
    • 使用FOR-EACH循环输出整个数组
  • 循环
  • 使用对象
    • 字符类型
    • 包装类型
    • 包装类型的用处
    • Math类
      • 绝对值
      • 幂函数
      • 0~1之间的随机数
      • 四舍五入
  • 字符串(字符串本身是不可修改的)
    • 定义
    • 输入
    • 字符串排序
    • 字符串数组
    • 比较两个字符串
    • 得到字符串的子串
    • 寻找字符
    • 字符串的switch-case
    • 比较两个String
    • String的排序
    • 访问String里的字符
    • 得到字符串的子串
    • 寻找字符
  • 函数
    • 定义
    • 函数调用
    • 调用时给的值的类型与函数期望类型不符
    • 本地变量
    • 类与对象
    • 构造函数
  • 泛型容器类
    • 容器类有两个类型
    • 功能
    • 输出容器全部内容
    • 定义 toString() 方法
  • ArrayList 容器
    • 容器的引入
    • 构建一个储存字符串的容器
  • Set 集合容器
    • 集合的引入
    • 构建一个储存字符串的容器
  • 散列表(Hash)
    • 引入
    • 构建Hash表
    • 填入信息
    • 得到key对应的value
    • 判断是否存在这个key
    • Hash表中key的数量
    • 用for-each遍历所有的key和value
  • 异常
    • 关键字
    • 操作


前言

本篇分享:

学习JAVA时的笔记

环境介绍:

系统:Windows
IDE:Eclipse


Pta做题样例

做题样例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int a = in.nextInt();
            int b = in.nextInt();
            System.out.println(a + b);
        }
    }
}

命名规范&代码风格

  • 包名 – 所有字母小写
  • 类名、接口名 – 首字母大写
  • 常量名 – 所有字母大写,单词用’_'连接
  • 变量名、方法名 – 第二个单词开始首字母大写
  • 尽量使用英文定义标识符
  • 标识符不能是truefalsenull
  • 标识符第一个字符不能是数字
  • 使用驼峰命名法,即第一个单词小写,后面的单词首字母大写,例如:myVariableName
  • 使用有意义的名字,尽量不使用缩写或单个字母的名字,例如:使用studentName代替sn
  • 避免使用下划线作为变量名的一部分,除非它是一个常量,例如:MAX_VALUE
  • 使用空格来提高可读性,例如:在二元运算符两侧和逗号后面添加空格
  • 使用代码缩进来显示代码块,例如:在if语句或for循环中缩进

基本数据类型

类型booleanbyteshortintlongfloatdoublechar
内存分配字节1248482

float类型变量赋值时,数字末尾应该加上 fF 表示这是一个float类型的数值,而给double类型变量赋值时,可以加上 dD 表示这是一个double类型的数值,也可以不加,因为没有加字母的浮点数默认为double类型。

基本语法

  • 输出时不在""内的+表连接作用,输出数值不需要""
  • 定义常量在类型前面加final
  • 输出提示类语言(不换行):System.out.print("")
  • 读入需要构造Scanner:
import java.util.Scanner;
Scanner in = new Scanner(System.in);
  • 在读入字符串时,使用in.next()方法遇到空格会结束,使用in.nextLine()方法遇到回车会结束
  • public -> 公共的,在任意一个地方可以访问
  • private -> 私有的,只可以在文件内部访问
  • 未标明以上两种即friendly -> 可以在一个类里面访问
  • 不在同一个包的类需要用 import(例如import java.util.Scanner)。Java包内有util这个包,util内有Scanner这个类。

类变量

在类的属性中,含有static的变量表示该变量为类变量,不属于类里的任何一个对象,可以直接使用(类名称.变量名)调用。

类函数

static函数只能调用static函数,只能访问static成员变量。

关系运算

Java中关系判断(>、<、>=……)的结果为truefalse。Java中的true字面值不等于1false字面值也不等于0。在Java中,它们只能分配给声明为boolean的变量。在C语言中,为1或0。

数字/true/falsetrue/false之间不可比较大小,只能判断是否相等。

判断真假通常使用boolean,定义:boolean 变量名 = truefalseboolean的值只能是truefalse

浮点数(实型)

浮点运算是有误差的:1.0与十个0.1相加不相等。因此,判断两个浮点数是否相等通常采用:

Math.abs(f1-f2)<1e-6

其中1e-610-6次方,即求两数的差距是否小于一个比较小的数字。

数组

Java定义数组

int[] 数组名 = new int[大小]

在Java内,定义一个普通变量可以存放数据,是数据的“所有者”。而定义一个数组时(比如说int[] a = new int[10]),其中的数组名a是这个数组的“管理者”,a本身不可以存放数值。若定义(int[] b = a),即表示ba共同管理一个数组,都为a数组的管理者。因此,可以使用任意一个管理者对数组的值进行更改。

注意以下几点:

  1. 数组变量是数组的管理者而非数组本身。
  2. 数组必须创建出来然后交给数组变量来管理。
  3. 数组变量之间的赋值时管理权限的赋予。
  4. 数组变量之间的比较是判断是否管理同一个数组(两数组内容相同时也并非同一数组)。

Java程序遍历整个数组

for (i = 0; i < 数组名.length; i++)

length代表数组的元素数量。

使用FOR-EACH循环输出整个数组

for (类型 变量i : 数组名a) {
    // 对于数组a内的每一个元素依次拿出来作为i
    System.out.print(i);
}

Java中使用 new 创建的数组可以得到默认的0值,无需遍历赋初始值为0。

Java也可以像C语言一样直接初始化数组:

类型[] 数组名 = {1, 2, 3, ......};

循环

使用标号可以结束内循环且不执行外循环后面的语句,即结束内循环直接进行下次外循环:

******// 外循环
for() {
    // 内循环
    for() {	
        if() {
            // 结束内循环并执行下次外循环
            continue ******;
        }
    }
    System.out.print("Yes");	
}

其中,****** 为标号。

若在 for 内定义变量,则该变量为局部变量,离开 for 则不可以使用。例如:

for(int i = 1; i <= n; i++) {
    // ...
}

使用对象

字符类型

Java中字符类型 char 大致与C语言相同。

包装类型

除了 intchar 以外,Java中的包装类型就是把基本类型的名字的第一个字母大写。

boolean Boolean
char    Character
byte    Byte
short   Short
int     Integer
long    Long
float   Float
double  Double

包装类型的用处

  1. 获得该类型的最大、最小值:Integer.MAX_VALUEInteger.MIN_VALUE
  2. 判断这个字符是不是数字/小写字母/大写字母/大写字母或小写字母/字母或数字/空格:static boolean isDigit(char ch)static boolean isLetter(char ch)
  3. 把这个字符转换成大写/小写:static char toUpperCase(char ch)static char toLowerCase(char ch)

Math类

Math类是Java中的一个标准类,它提供了一些常用的数学方法,例如绝对值、幂函数、三角函数等。

绝对值

求一个数的绝对值可以使用Math类中的abs()方法,例如:

int a = -10;
int b = Math.abs(a); // b的值为10

幂函数

求一个数的n次幂可以使用Math类中的pow()方法,例如:

double a = 2;
double b = Math.pow(a, 3); // b的值为8

0~1之间的随机数

生成一个0~1之间的随机数可以使用Math类中的random()方法,例如:

double a = Math.random(); // a的值为一个0~1之间的随机数

四舍五入

对一个小数进行四舍五入可以使用Math类中的round()方法,例如:

double a = 3.6;
int b = Math.round(a); // b的值为4

需要注意的是,round()方法的返回值是一个整数,因此会对小数进行取整操作。如果要对小数保留一定的位数,可以使用DecimalFormat类。

字符串(字符串本身是不可修改的)

定义

使用以下语法定义一个字符串变量:

String 变量名 = new String("a string");

这将执行以下步骤:

  1. 创建一个 String 对象;
  2. 使用 “a string” 初始化该对象;
  3. 创建一个变量 s,用于管理该对象;
  4. 使变量 s 管理该对象。

String 是一个类,字符串变量是对象的管理者而不是所有者,类似于数组。使用 + 可以连接两个字符串。如果 + 的一侧是字符串,而另一侧不是,则该侧将被转换为字符串,然后再进行连接。

输入

使用以下语法读入一个字符串:

  • in.next():读入一个单词。单词的标志是空格(包括空格、制表符和换行符)。
  • in.nextLine():读入一整行。

字符串排序

  1. 将字符串转换为字符数组:
char[] 数组名 = 字符串.toCharArray();
  1. 使用选择排序、冒泡排序等算法对数组进行排序。
  2. 将排序后的数组重新转换为字符串:
String 字符串 = new String(数组名);

字符串数组

使用以下语法定义一个字符串数组:

String[] 字符串 = new String[长度];

比较两个字符串

  1. if (string == "bye")if (string1 == string2):这样的比较是比较两个变量是否引用同一个字符串对象,而不是比较字符串的内容是否相同。
  2. if (string.equals("bye")):比较字符串 string 与括号内的字符串内容是否相同,判断两个字符串的内容是否相同。

得到字符串的子串

  1. s.substring(n) 得到从n号位置到末尾的全部内容
  2. s.substring(b,e) 得到从b号位置到e号位置之前的内容(不含e号位)

寻找字符

  1. 得到c字符所在位置,-1表示不存在: s.indexOf('c')
  2. 从n号位置开始寻找c字符: s.indexOf('c',n)
  3. 找到字符串t所在位置: s.indexOf("t")
  4. 从右边开始找: s.lastIndexOf('c'), s.lastIndexOf('c',n), s.lastIndexOf("t")

字符串的switch-case

switch(s)
{
        case "this": ……;breakcase "that": ……;break;
}

比较两个String

  1. if(string == "bye") / if(string1 == string2): 这样的比较是比较是否为同一个字符串,两个长相一样的人不是同一个人
  2. if(string.equals("bye")): 比较字符串string与括号内字符串内容是否相同,判断是否长得一样

String的排序

  1. 先将字符串转换为字符数组: char [] 数组名= 字符串.toCharArray();
  2. 运用选择、冒泡排序法等对数组进行排序
  3. 将排序后的数组重新转换为字符串: String 字符串 = new String(数组名)

访问String里的字符

使用 s.charAt(index) 函数,其中:

  1. 返回 index 位置上的单个字符
  2. 第一个字符的 index 是 0,和数组一样
  3. 字符串不能使用 for-each 循环来遍历
  4. 索引范围:0 到 s.length() - 1

得到字符串的子串

使用 s.substring(n) 函数,其中:

  1. 返回从 n 号位置到末尾的全部内容
  2. 使用 s.substring(b, e) 返回从 b 号位置到 e 号位置之前的内容(不含 e 号位)

寻找字符

使用以下函数来寻找字符:

  1. 使用 s.indexOf('c') 找到 c 字符所在位置,如果不存在则返回 -1。
  2. 使用 s.indexOf('c', n)n 号位置开始寻找 c 字符。
  3. 使用 s.indexOf("t") 找到字符串 "t" 所在位置。
  4. 使用 s.lastIndexOf('c') 从右边开始找到 c 字符所在位置,s.lastIndexOf('c', n) 从右边开始从第 n 号位置往左查找,s.lastIndexOf("t") 找到字符串 "t" 最后出现的位置。

函数

定义

public static 返回类型 函数名(形参) {
    函数主体
}

函数调用

和C语言相同。

调用时给的值的类型与函数期望类型不符

  1. 当函数期望参数类型比调用函数时给的值的类型宽的时候,编译器能悄悄替你把类型转换好。
  2. 当函数期望参数类型比调用函数时给的值的类型窄的时候,需要写强制类型转换。
  3. 当函数期望参数类型与调用函数时给的值的类型不可相互转换的时候,编译器报错。

本地变量

本地变量的生命周期和作用域都在声明它的花括号内,即块(block)内。

类与对象

1.类是一种面向对象编程(OOP)的概念,包含属性和方法(或称为动作),用来描述某种事物或概念。 2.属于该类的对象具有该类的属性和方法,即可以通过对象来访问类的属性和方法。 3.创建对象的过程称为实例化,使用关键字new,例如:ClassName obj = new ClassName();,其中ClassName为类名,obj为对象名。 4.类是一个模板,对象是基于类创建出来的实例。 5.类定义了对象中所具有的属性,这些属性称作成员变量或实例变量。 6.类中的方法可以访问对象的成员变量,也可以对成员变量进行操作,每个对象都有自己的成员变量。

构造函数

1.与类名字相同的函数为构造函数,在使用new关键字实例化对象时自动调用该函数,用于初始化对象的属性。 2.一个类可以有多个构造函数,只要它们的参数列表不同,这被称为构造函数的重载(overloading)。 3.构造函数没有返回类型,包括void,因为其返回的是新创建的对象的引用。 4.使用this()关键字可以调用同一个类中的其他构造函数,但必须在构造函数内部的第一条语句中使用,例如this(param1, param2),其中param1param2为其他构造函数的参数。

类类似于C语言中的结构体,但是它不仅可以包含数据成员,还可以包含成员方法。对象则是使用类模板创建出来的具体实例。

泛型容器类

容器类有两个类型

  1. 容器类型,如:ArrayList
  2. 元素类型,如:String

功能

  1. add(element):添加元素
  2. size():获取元素数量
  3. get(index):获取指定索引处的元素
  4. remove(index):移除指定索引处的元素

输出容器全部内容

使用 System.out.println(container),Java 会默认调用容器类中的 toString() 方法来输出容器中的全部元素。

定义 toString() 方法

可以在容器类中定义 toString() 方法,以实现自定义的输出格式。例如:

public String toString() {
    return String.format("%02d:%02d:%02d", hour, minute, second);
}

这里的 hour、minute、second 是容器类中的属性,这个方法返回一个字符串,以表达容器类中的对象按照指定格式输出的结果。

ArrayList 容器

容器的引入

import java.util.ArrayList;

构建一个储存字符串的容器

private ArrayList<String> 名称 = new ArrayList<String>();

注:ArrayList<String> 表示字符串类型的数组列表。

Set 集合容器

集合的引入

import java.util.HashSet;
  1. 集合就是数学中的集合的概念,所有的元素都具有唯一的值,元素在其中没有顺序。
  2. 没有重复的元素。

构建一个储存字符串的容器

HashSet<String> 名称 = new HashSet<String>();

散列表(Hash)

引入

import java.util.HashMap;

1.所有东西都是以一对值放进去的,一个为key(键),一个为value(值) 2.取值需要对应的键 3.key的类型不可以是基本类型

构建Hash表

private HashMap<key类型, value类型> 名称 = new HashMap<key类型, value类型>();

填入信息

名称.put(key, value)

得到key对应的value

名称.get(key)

判断是否存在这个key

名称.containsKey(key)

存在即为true不存在即为flase

Hash表中key的数量

名称.keySet().size();

keySet()是Hash表中所有key的集合

用for-each遍历所有的key和value

for(key类型 变量1Hash表名称.keySet())
{
        value类型 变量2=Hash表名称.get(变量1);
        System.out.println(变量2);
}

异常

关键字

try catch

try {
    // 可能会产生异常的代码
} catch (异常类型 变量e) {
    // 处理异常的代码
}

操作

System.out.println(e.getMessage()); // 输出异常对象里的一个数值
System.out.println(e); // 输出异常类的名字
e.printStackTrace(); // 输出异常在哪发生以及调用轨迹
throw e; // 抛出异常
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA学习记录 的相关文章

  • 深入剖析Android音频之AudioTrack

    播放声音能够用MediaPlayer和AudioTrack xff0c 两者都提供了java API供应用开发人员使用 尽管都能够播放声音 但两者还是有非常大的差别的 当中最大的差别是MediaPlayer能够播放多种格式的声音文件 比如M
  • 树莓派4 运行 Tensorflow Lite

    树莓派4 运行 Tensorflow Lite 1 更新树莓派 span class token function sudo span apt update 2 下载安装脚本 span class token function git sp
  • 操作系统进程进行系统调用详细过程

    翻阅很多资料 xff0c 综合了各处所述进程在进行系统调用之后的状态会如何的解答 xff0c 以下是我个人理解 xff0c 欢迎各位读者纠错 PS 特别感谢以下这个帖子 xff0c 看完他们的讨论我才茅塞顿开 xff0c 非常感谢 xff0
  • 解决Ubuntu 找不到ARM64 的源的问题(转)

    Ubuntu 安装了NVIDIA的驱动还有DriveWokrs之后 xff0c 好像把系统添加了arm64的架构 xff0c 因此 xff0c 在源更新的时候 xff0c 也会更新arm64相关的源 xff0c 但是问题在于 xff0c 用
  • asp.net 实现打开文件所在的文件夹, 本地可以打开,发布后点击按钮没有反应的解决办法

    此类情况大概是安全范畴的问题 确定上传文件夹的共享 xff0c iis 以及电脑帐户 xff0c 以及aspnet 等是否有对应的相关权限 1 确认ASPNET 账户属于管理员级别 2 在 服务 里面找到 IIS Admin xff0c 双
  • numpy 和 tensor 的区别

    关系 xff1a 两者共享内存 xff0c 转换方便 xff0c 没有额外的开销 区别 xff1a 1 数据类型上面的区别 xff1a numpy 默认类型是 float64 int32 tensor 默认类型是float32 int64
  • 关于docker无法apt-get update的问题

    在看这篇文章https www jianshu com p 21d66ca6115e 有一个部分是 但是发现自己的 Node 没有ping命令 想着去apt get update 但是出现如下错误 只要在命令签名加上 sudo 就行
  • ubuntu下安装zip unzip

    安装命令 apt get install zip unzip 执行命令常见错误 xff1a 1 unable to locate package 解决办法 xff1a 执行sudo apt get update命令后再执行安装命令就可以了
  • 平衡小车卡尔曼滤波算法

    最近研究STM32的自平衡小车 xff0c 发现有两座必过的大山 xff0c 一为卡尔曼滤波 xff0c 二为PID算法 网上看了很多关于卡尔曼滤波的代码 xff0c 感觉写得真不咋地 一怒之下 xff0c 自己重写 xff0c 不废话 x
  • FreeRTOS学习-前言与FreeRTOS发行版

    1 前言 因为工作的需要 xff0c 学习FreeRTOS已经有一段时间了 接下来一段时间会定期更新本人学习FreeRTOS的系列笔记 系列笔记主要参考了官方的说明手册和FreeRTOS的源代码 其主要思想是先了解FreeRTOS的对外接口
  • FreeRTOS学习-内存管理

    1 动态内存分配与FreeRTOS 从v9 0 0后 xff0c FreeRTOS开始支持内核对象的静态分配方式 xff0c 因此 xff0c 内存管理库可以被裁剪 但在大多数嵌入式应用中 xff0c 堆的使用还是非常常见的 因此 xff0
  • FreeRTOS学习-任务管理(Task管理)(1)

    1 简介 任务管理 xff08 或称进程管理 xff09 是所有操作系统内核的最基本组成模块之一 xff0c FreeRTOS也不例外 想要了解一个操作系统 xff0c 不得不理解其任务管理的设计和实现 任务管理的介绍由两篇文章组成 xff
  • Java基础之Java枚举

    絮叨 昨天刚好有遇到一个枚举的小问题 xff0c 然后发现自己并不是那么熟悉它 xff0c 然后在开发中 xff0c 枚举用的特别多 xff0c 所以有了今天的文章 什么是枚举 Java中的枚举是一种类型 xff0c 顾名思义 xff1a
  • C++ STL 移动一个vector的元素到另一个vector

    1 背景 有的时候 xff0c 我们需要提取某个现有的vector中的元素到另一个vector中 xff0c 或者对多维的vector进行纬度的转换 在这种场景下 xff0c 往往原始的vector中的数据可能并不需要了 xff0c 为了节
  • Qt/C++ 临时屏蔽控件信号(signal)的实用方法

    1 背景 在使用Qt的控件时 xff0c 我们大概率会使用Qt的信号与槽 xff08 signal slot xff09 的机制来实现自己的UI交互逻辑 由于Qt内置控件的信号种类是有限的 xff0c 我们常常会遇到如下窘境 xff1a 以
  • FreeRTOS学习-队列管理

    1 简介 在FreeRTOS中 xff0c 提供了多种任务间通讯的机制 xff0c 包括消息队列 信号量和互斥锁 事件组 任务通知 xff0c 他们的总体特征如下图所示 xff1a 从图中可以看出 xff0c 消息队列 信号量和互斥锁 事件
  • Qt/C++ 如何删除QListWidget的指定项

    1 简介 QListWidget是Qt中 xff0c 用于展示列表类型数据的常用控件 它提供了一个类似于QListView的列表视图 xff0c 但是具有用于添加和删除项的接口 QListWidget使用一个内部模型来管理列表中的每个QLi
  • C++ std::result_of/std::invoke_result的简明指南

    1 简介 在C 43 43 中 xff0c 有时我们需要获取函数或可调用对象的返回值类型 xff0c 以便进行后续的操作 xff0c 在泛型编程中很常用 xff0c 特别是当不同的参数集的结果类型不同时 在早期的C 43 43 版本中 xf
  • FreeRTOS学习-任务通知(Task Notification)

    1 简介 任务通知本质上就是一种进程间通信机制 之前的文章介绍的消息队列 事件组 信号量等都是一种间接的通信方式 xff0c 而任务通知则是更加直接的方式 xff0c 允许两个任务 xff08 或中断和任务 xff09 之间直接通信 2 任
  • 异常行为分析模型设计

    本文针对异常访问现状及问题进行简要描述 xff0c 在此基础上提出基于一元线性回归的最小二乘法异常访问分析模型 xff0c 通过该模型解决了异常访问中时间与访问间相关性问题 异常访问是指网络行为偏离正常范围的访问情况 异常访问包含多种场景

随机推荐

  • 无人机PX4学习(1)

    内容源自 xff1a PX4飞控用户手册 链接 xff1a https docs px4 io master en Basic concepts Drone an unmanned 34 robotic 34 vehicle that ca
  • 无人机PX4学习(2)

    内容源自 xff1a PX4飞控用户手册 链接 xff1a https docs px4 io master en getting started flight controller selection html Flight Contro
  • 无人机PX4学习(3)

    内容源自 xff1a PX4飞控用户手册 链接 xff1a PX4 Flight Modes Overview PX4 User Guide Flight Mode Section RC或GCS上可以切换飞行模式 xff0c 但有些模式有限
  • 两篇论文入坑AIOps异常检测

    AIOps简介 以下部分内容来源于清华大学裴丹教授发表在 中国计算机学会通讯 第13卷第12期的专栏 基于机器学习的智能运维 我们都知道 xff0c 当代社会生活中的大型软硬件系统为了确保能够安全 可靠地运行 xff0c 需要有专业的运维人
  • python代码,两个4*4旋转矩阵之间的位姿变化,相对旋转矩阵

    python代码 xff0c 两个4 4旋转矩阵之间的位姿变化 xff0c 也就是求两个旋转矩阵之间的相对旋转矩阵 import numpy as np def get transform matrix rot mat1 rot mat2
  • crazyS中给firefly飞机添加两个相机

    firefly飞机中原本只有一个相机 xff0c 由于项目需要一个飞机去识别前方两架飞机 xff0c 因此需要增加一个相机 在rotors descriptioin gt urdf gt mav with vi sensor中可以看到此处
  • gitee(码云)和gitHub的区别

    1 gitee与gitHub概念 xff1f Gitee xff08 码云 xff09 是开源中国社区推出的代码托管协作开发平台 xff0c 支持Git和SVN xff0c 提供免费的私有仓库托管 Gitee专为开发者提供稳定 高效 安全的
  • 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    郭孟琦 43 原创作品转载请注明出处 43 Linux内核分析 MOOC课程http mooc study 163 com course USTC 1000029000 首先我选择的系统调用是122号系统调用 uname 简单的介绍一下un
  • 局域网共享文件夹加密(100%成功版本)

    文章目录 一 创建新用户1 右键此电脑选择管理2 点击本地用户和组3 点击用户A 右键空白区域选择创建新用户B 设置用户名和密码C 取消勾选用户下次登录时须更改密码D 勾选用户不能更改密码和密码永不过期 二 创建共享文件夹1 创建一个新文件
  • STM32PWM--基于HAL库(第十三届蓝桥杯嵌入式模拟题)

    文章目录 前言一 CubeMX配置 第十三届模拟题完整版 二 代码相关定义 声明1 函数声明2 宏定义3 变量定义 三 主要函数1 按键扫描2 配置模式3 LCD显示4 频率检测 TIM2输入捕获中断函数 5 PWM输出 TIM3 6 Ma
  • STM32综合-基于HAL库(第十二届蓝桥杯嵌入式省赛)

    文章目录 前言一 CubeMX配置 第十二届省赛完整版 二 代码相关定义 声明1 函数声明2 宏定义3 变量定义 三 主要函数1 按键扫描2 串口接收中断 定时器中断 接收 3 数据解析4 判定数据正误5 数据更新6 结算7 Main函数
  • STM32RTC秒中断--基于HAL库(一文看懂如何配置并使用)

    文章目录 前言一 CubeMX配置 RTC相关 1 使能RTC xff1a 2 进制配置 xff1a 3 初始时间配置 xff1a 4 日期配置 5 闹钟配置 二 代码1 获取时间2 设置闹钟3 闹钟中断函数 三 实验结果总结 前言 相关说
  • STM32LCD--基于HAL库(选中高亮?一文看懂如何玩转高亮显示)

    文章目录 前言一 LCD上的坐标这个坐标是怎么确定的 xff1f X轴Y轴 二 高亮显示类型三 部分真题要求解析四 如何高亮显示选中数据五 代码分析总结 前言 相关说明 xff1a 开发板 xff1a CT117E M4 STM32G431
  • STM32MP157实现串口接收数据上云-MP157串口测试

    文章目录 前言一 需要软件二 minicom配置三 功能选择四 发送数据结语 前言 本篇分享 xff1a 这次将会用几篇博客分享STM32MP157实现串口接收数据上云的一个基础功能 xff0c 实现STM32MP157的串口在接收到数据时
  • STM32MP157实现串口接收数据上云-云数据库存储多设备数据&界面显示实现

    文章目录 前言一 软件安装二 代码改进1 串口接收2 JSON数据解析 三 云产品流转1 作用2 自定义产品功能 amp 添加设备3 创建数据传输规则 四 MYSQL操作五 NODE RED操作1 总体思路2 安装节点3 节点配置4 页面布
  • TX2

    目录 1 Jetson TX2简介2 使用前准备2 1显示2 2控制2 3电源2 4开机2 5系统2 6使用图形界面2 7系统更新 xff0c 安装模块3 对外接口 xff1a 4 软件包配置JetPack4 1使用JetPack 5 TX
  • Linux应用编程-音频应用编程-语音转文字项目

    文章目录 前言Linux语音识别alsa lib简介 xff1a 安装alsa lib库 xff1a libcurl库简介 xff1a 安装libcurl库 xff1a API调用录音相关概念样本长度 xff08 Sample xff09
  • STM32MP157-QT-串口调试助手设计

    文章目录 前言STM32MP157串口调试助手widget uipro文件widget h头文件槽函数成员声明 widget cpp头文件扫描串口并添加到下拉列表串口配置参数获取配置参数 打开 关闭串口读取数据信号读数据函数代码 发送数据清
  • Linux-VIM使用

    文章目录 前言VIM使用1 切换模式2 跳转 1 跳转到指定行 2 跳转到首行 3 跳转到末行 3 自动格式化程序4 大括号对应5 删除 xff08 1 xff09 删除一个单词 xff08 2 xff09 删除光标位置至行尾 xff08
  • JAVA学习记录

    文章目录 前言Pta做题样例做题样例 命名规范 amp 代码风格基本数据类型基本语法类变量类函数关系运算 浮点数 xff08 实型 xff09 数组Java定义数组Java程序遍历整个数组使用FOR EACH循环输出整个数组 循环使用对象字