自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 问答 (2)
  • 收藏
  • 关注

原创 HAL库—点亮LED(STM32F103ZET6)

选择对应引脚PE5、PB5(正点原子led连接在PE5,PB5上不同芯片led连接引脚均有不同)3、设置模式为低电平输出(战舰开发板LED上为上拉电阻),推挽输出模式,低速。基于stm32CubeMx选择对应芯片——stm32f103t6。时钟频率为72MHz。

2023-03-06 22:10:21 437 1

原创 ST-Link的LED指示灯说明

自ST-LINK/V2以来的所有ST-LINK板都实现了一个标有“COM”的LED(无论是在外壳上还是在PCB上)。,有常亮、常灭、闪烁等,两个LED同时亮呈现橙色。建立PC与ST-LINK之间的通信(枚举结束)。ST-Link和目标芯片通信失败。数据在目标和PC之间交换。USB与PC正在枚举。

2022-11-18 21:00:17 4971

原创 STM32C8T6 流水灯的实现(库函数版)

led负极-->GNDled正极-->PA0~PA7。

2022-09-01 19:49:37 1127

原创 Altium Designer常用快捷键

3D视图和2D试图之间切换。输出PCB中所有网络的布线长度报告。取消高光,取消测量数据。左键对正在布的线完成自动布线连接。可以把选中所有的元件,翻转过来。这样可以在上下层切换,方便布线,调整印丝层。其中 Clearance。是设置最小安全线间距,覆铜时候间距。切换,达到快速切换上下层。......

2022-08-31 22:45:05 9006

原创 学习笔记——STM32C8T6如何配置普通IO口

这些引脚只有重定义功能后才能作为普通的IO口使用,所以我们需要对这些引脚进行配置的时候开启AFIO复用时钟。5个引脚全为普通引脚,但不能再用JTAG和SWD仿真器调试,只能用st-link调试。即能用PB3,PB4,PA15做普通IO,PA13和PA14用于SWD调试。PB4可为普通IO口,JTAG和SWD正常使用,但JTAG没有复位。步骤一:时钟配置时同时开启AFIO复用时钟。步骤二:重映射(共三种方式)

2022-08-21 17:22:31 5196

原创 C语言sizeof函数解析

在 Pascal 语言中,sizeof() 是一种内存容量度量函数,功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。在Pascal 语言与C语言中,对 sizeof() 的处理都是在编译阶段进行。...

2022-08-17 17:05:45 3662

原创 学习笔记——STM32中什么是预分频

在STM32的定时器中,预分频器(Prescaler-PSC)用来将定时器时钟源进行分频输出。预分频器的值由寄存器TIMx_PSC设定,是一个16位正整数值。

2022-07-13 23:09:15 4041

原创 VCC、VDD、VEE、VSS的区别

电路设计以及PCB制作中,经常碰见电源符号:VCC、 VDD、VEE、VSS,他们具有什么样的关系那?一、解释VCC:C=circuit 表示电路的意思, 即接入电路的电压VDD:D=device 表示器件的意思, 即器件内部的工作电压;VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压二、说明1、对于数字电路来说,VCC是电路的供电电压,VDD是芯片的工作电压(通常Vcc>Vdd),VSS是接地点。2、有些IC既有VDD引脚又有VCC引脚,说.

2022-05-31 14:03:16 1429

原创 学习笔记——STM32中断线映射是什么?

GPIOx.0映射到EXTI0GPIOx.1映射到EXTI1…GPIOx.15映射到EXTI15外部中断常用库函数①void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); //设置IO口与中断线的映射关系 exp: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);②void EXTI_Init(EXTI...

2022-04-28 16:51:14 906

原创 逻辑运算中的短路计算

短路运算的符号: || && ! 或与非短路运算的原理:当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;短路运算的规则:&& 找假,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为false,则返回第一个值(不是被强制转换后的值),否则返回第二个值|| 找真,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为true,则返回第一个值(不是被强制转换后的值)

2022-04-28 16:48:54 1835

原创 Java 利用Set特性去除重复元素(哈希算法)

对任意一组输入数据进行计算,得到一个固定长度的输出摘要。 哈希算法最重要的特点就是: 相同的输入一定得到相同的输出; 不同的输入大概率得到不同的输出。

2022-04-08 23:20:13 2780

原创 Java Math.round()的用法

ath.round() 函数返回一个数字四舍五入后最接近的整数。语法Math.round(x) 返回值给定数字的值四舍五入到最接近的整数。描述如果参数的小数部分大于 0.5,则舍入到相邻的绝对值更大的整数。 如果参数的小数部分小于 0.5,则舍入到相邻的绝对值更小的整数。如果参数的小数部分恰好等于0.5,则舍入到相邻的在正无穷(+∞)方向上的整数。注意,与很多其他语言中的round()函数不同,Math.round()并不总是舍入到远离0的方向(尤其是在负数的小数部分恰好等于0.5

2022-04-08 13:37:20 3593 1

原创 ​用 1080p 的显示器放 4K 视频,图片有意义吗?

根据最新的 Steam 平台玩家设备统计数据,目前使用 4K 显示器的玩家不足 2%,分辨率高于 1080P 的玩家数量不足 10 %这是通常对设备要求比较高的游戏玩家们的数据,扩大范围到普通个人用户,4K显示器占比应该只低不高。但是如果你经常看电影的话(播放本地片源),会发现很多片源都提供4K分辨率,4K 片源往往会比 1080P 片源体积大出 4-10 倍不等。因为物理分辨率受限,所以在 1080P 的屏幕上播放 4K 片源最终输出的分辨率肯定还是 1080P 的。但是!

2022-04-03 15:18:10 4436

原创 Java 蓝桥杯找数字类型题解决方案

在蓝桥杯前几题中,常常会遇到判断输入的字符串有多少个想要求的数字,例如判断1至8888中有多少个2,有多少个7,有多少个17等等,最后有可能会要求把他们相加起来,对于这类型的问题,我有如下几种方法。1:若是只要求求数字出现的个数,我们可以用“水仙花数”方法,可见我这篇文章,就是用取模的方法取得各个位置上的数值进行判断,但是过于繁琐,也很容易出错。水仙花数https://blog.csdn.net/Obito_TXP/article/details/120081139?ops_request_misc=%

2022-04-03 14:20:50 390

原创 Java LinkedList

链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修

2022-04-02 14:22:21 134

原创 Java ArrayList的用法

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下:import java.util.ArrayList; // 引入 ArrayList 类ArrayList<E> objectName =new ArrayList<>();  /

2022-04-02 13:36:49 1486

原创 Java for each语句的用法

for each 循环语句的语法格式如下:for(类型 变量名:集合) { 语句块;}其中,“类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。每执行一次循环语句,循环变量就读取集合中的一个元素,其执行流程如图 1 所示。例 1假设有一个数组,采用 for 语句遍历数组的方式如下:// 声明并初始化数组int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };System.out.

2022-04-01 23:28:16 328

原创 Java 数据结构

Java 数据结构Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:枚举(Enumeration) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(Hashtable) 属性(Properties)枚举(Enumeration)枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续

2022-04-01 22:25:46 104

原创 连呼吸机都能搭起来,还有什么树莓派做不了?

随着新冠疫情蔓延,呼吸机成为了全球极度短缺的医疗器械。之前就有报道,戴森、特斯拉等科技公司均跨界造起呼吸机。另一家让人意想不到的科技公司,其实也参与到了这场临时救援行动中,那就是树莓派。疫情中的树莓派大家都知道手机、电脑里会有芯片,但我们不时会忘了,生活里其它电子设备其实也需要用计算芯片,从家用电器冰箱、洗衣机到像呼吸机这种医疗设备都需要芯片。呼吸机厂商快速生产的障碍是芯片产能跟不上。上个月,英特尔在成都的生产线就收到了一个紧急订单,需在四天内生产 2.5 万

2022-03-31 21:46:29 538

原创 Java Scanner是否需要关闭

在idea中,尝试过不关闭Scanner,程序照样运行,可能对是否关闭资源占用要求不严,但是在vscode中,如果不关闭,就会出现以下错误凡是属于IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉.就好像你接水完了要关水龙头一样.很多下载软件或者视频软件如果你不彻底关,都会自己上传下载从而占用资源,你就会觉得卡,这一个道理.关闭的方法也很简单,添加Scanner变量名+.close();...

2022-03-31 17:06:20 2383

原创 将平板作为自己电脑的第二屏幕的方法

当使用电脑办公或者娱乐时,需要不停的切换页面,十分的让人抓狂😭,又不愿意画大价钱专门去买一块拓展屏幕,因为对于学生来说还是太贵了。。。。。

2022-03-30 22:46:07 24995 10

原创 学习笔记——STM32中APB1和APB2的区别

STM32 APB1和APB2的区别主要是三点,分别是所对接的端口不通、工作速度状态不同、以及外设不同,具体区别如下如下: APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM。 APB2负责AD,I/O,高级TIM,串口1。...

2022-03-27 12:50:54 5524

原创 Java LinkedList

链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修

2022-03-13 21:33:30 130

原创 Python 利用百度智能云进行短语音识别

# -*- coding: utf-8 -*-"""Created on Sat Dec 4 16:52:28 2021@author: Tu Xiaopeng"""from aip import AipSpeech""" 你的 APPID AK SK """APP_ID = 'XXX' #个人的接口信息API_KEY = 'XXX'SECRET_KEY = 'XXX'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)# 读取文.

2021-12-04 17:40:30 2867

原创 Python 运用pyaudio库去做一个固定采样率音频录制器

首先要去下载一个对应的pyaudio库的whl文件,目前最新版本是cp38的那个,如果版本太低是用不了的,下载好后在编译环境下的控制台输入pip install +whl文件路径+XXX.whl+回车# -*- coding: utf-8 -*-"""Spyder EditorThis is a temporary script file."""import pyaudioimport waveCHUNK=256#设置底缓存块的大小为256FORMAT=pyaudio.paInt.

2021-12-04 13:40:32 3215

原创 Java 用short函数排序数组大小

public class MyDemo { public static void main(String[] args) { System.out.println("请输入数字:"); Scanner a=new Scanner(System.in); String str=a.next().toString(); String[]score=str.split(","); int [] b=new int[score.

2021-10-31 18:03:40 315

原创 Java super关键字详解

由于子类不能继承父类的构造方法,因此,如果要调用父类的构造方法,可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。super 关键字的功能:在子类的构造方法中显式的调用父类构造方法 访问父类的成员方法和变量。super调用父类构造方法super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下:super(parameter-list);其中,parameter-list 指定了父类构造方法中的所有参数。super( ) 必须是在

2021-10-13 21:56:01 333

原创 Java 利用swing写一个空窗口

第一步:建一个便于个人管理与识别的包代码:package my;import javax.swing.*;public class MyDemo{ public static void main(String[] args) { JFrame frame=new JFrame("Swing example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.set.

2021-10-10 11:00:45 246

原创 单片机 单片机sfr和sbit关键字

bit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。sfr用于将一个单片机的特殊功能寄存器(special function register)赋值给一个变量,这样在后面的程序中就可以中这个变量指引(refer to)该寄存器。sbit与sfr用法类似,只是sbit是位操作,用于将某个sfr中具体位赋值给一个变量,这样后面程序就可用通过该变量为该位清0或置1。STC该系列单片机的特殊功能寄存器布局如下:看.

2021-09-29 18:50:28 1357

原创 单片机 0xff是什么意思

0x是16进制的前缀。单片机中对寄存器或IO口操作都是用十六位进制表示,比如oxaa,代表二进制的1010(a) 1010(a)。在书写时0x代表十六位进制。16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……。扩展资料在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数

2021-09-28 22:35:27 13333 2

原创 单片机 什么是单片机?

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。中文名:单片机外文名:Microcon...

2021-09-28 21:57:21 4699

原创 Java 堆栈详解

1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static final)。6. 非RAM存储:硬盘等永久存储空间栈,堆和常量池,对于栈和常量池中的对象可以共享,对于堆中的对象不

2021-09-26 20:33:52 2968

原创 进制转换:二进制、八进制、十六进制、十进制之间的转换

将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。所谓“权”,也即“位权”。假设当前数字是 N 进制,那么:对于整数部分,从右往左看,第 i 位的位权等于Ni-1 对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。1) 整数部分例如,将八进制数字53627 转换成十进制:53627 =5×84+ ...

2021-09-22 19:15:35 1410

原创 C语言#define的用法,C语言宏定义

#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。我们先通过一个例子来看一下 #define 的用法:#include <stdio.h>#define N 100int main(){ int sum = 20 + N; printf("%d\n", sum); return 0;}运行结果:120注意第 6 行代码int su

2021-09-22 19:11:21 1897

原创 C语言预处理命令是什么?

已经多次使用过#include命令。使用库函数之前,应该用#include引入对应的头文件。这种以#号开头的命令称为预处理命令。C语言源文件要经过编译、链接才能生成可执行程序:1) 编译(Compile)会将源文件(.c文件)转换为目标文件。对于 VC/VS,目标文件后缀为.obj;对于GCC,目标文件后缀为.o。编译是针对单个源文件的,一次编译操作只能编译一个源文件,如果程序中有多个源文件,就需要多次编译操作。2) 链接(Link)是针对多个文件的,它会将编译生成的多个目标文件以及系统中的库、

2021-09-22 19:06:34 289

原创 C语言指针是什么?1分钟彻底理解C语言指针的概念

计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节,char 占用 1 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。下图是 4G 内存中每个字节的编号(以十六进制表示):我们将内存中字节的编号称为地址(Address)或指针(Pointer)。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的内存为 4GB,最小的地址为 0,最大的地址.

2021-09-22 19:03:21 104

原创 C语言结构体详解,C语言struct用法详解

它是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组};结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(

2021-09-22 19:01:03 815

原创 Java Collections类:sort()升序排序、reverse()降序排序、copy()复制、fill()填充

Collections 类提供了许多操作集合的静态方法,借助这些静态方法可以实现集合元素的排序、填充和复制等操作。下面介绍 Collections 类中操作集合的常用方法。正向排序使用 Collections 类的静态方法 sort() 可以对集合中的元素进行升序排序。这要求列表中的所有元素都必须实现 Comparable 接口,而且所有元素都必须是使用指定比较器可相互比较的。sort() 方法主要有如下两种重载形式。void sort(List list):根据元素的自然顺序对集合中的元素进

2021-09-22 18:53:42 10903 1

原创 C语言求自然底数e,求自然对数的底e

自然底数 e=2.718281828…,e 的计算公式如下:e=1+1/1!+1/2!+1/3!+…要求当最后一项的值小于 10-10时结束。算法思想使用循环实现累加求和,并在求和后计算下一项所对应的阶乘。① 用循环语句 while 进行循环控制。判断条件为 1/n>10-10;条件成立则执行 ②,条件不成立执行 ⑤;② 计算求和 e+=1/n;③ i 自增 1;④ 计算下一项所对应的阶乘:n=i*n;⑤ 结束循环,打印输出结果。程序代码#include <st.

2021-09-22 16:47:09 3657 1

原创 C语言汉诺塔问题,用C语言实现汉诺塔

汉诺塔问题是指:一块板上有三根针 A、B、C。A 针上套有 64 个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这 64 个圆盘从 A 针移动到 C 针上,每次只能移动一个圆盘,移动过程可以借助 B 针。但在任何时候,任何针上的圆盘都必须保持大盘在下,小盘在上。从键盘输入需移动的圆盘个数,给出移动的过程。算法思想对于汉诺塔问题,当只移动一个圆盘时,直接将圆盘从 A 针移动到 C 针。若移动的圆盘为 n(n>1),则分成几步走:把 (n-1) 个圆盘从 A 针移动到 B 针(借助 C

2021-09-21 22:29:48 168

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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