- 博客(98)
- 收藏
- 关注
原创 IO流中四类常用流
目录一、字节流二、字符流三、缓冲流四、转换流一、字节流字节流用于处理以字节为单位的二进制文件(如音乐、图片等),InputStream抽象类是所有输入字节流类的直接或间接父类,FileInputStream是其重要子类: FileInputStream常用构造方法: 1、FileInputStream(File file) :通过File对象创建FileInputStream对象。 2、FileInputStream(String name) :通过...
2021-05-03 17:06:00 700 1
原创 IO中File类
一、概念File类代表一个特定的文件或者目录,并提供了若干方法对该文件或目录进行操作。二、File类构造方法三、File类常用方法1、String getName():返回此对象表示的文件或目录最后一级文件夹名称2、String getParent():返回此File对象的父目录路径名;如果此路径名没有指定父目录,则返回 null3、File getParentFile():返回File对象所在的父目录File实例;如果File对象没有父目录,则返回 null4、
2021-05-03 11:10:39 238
原创 PWM输出实验
目录一、STM32 PWM工作过程二、PWM模式1 & PWM模式2三、STM32 PWM工作过程四、PWM输出库函数概述1、PWM输出库函数2、设置比较值函数3、使能输出比较预装载:4、使能自动重装载的预装载寄存器允许位:五、PWM输出配置步骤六、具体程序一、STM32 PWM工作过程通道1为例:CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。CCMR1: OC1M[2:0]位:对于PWM方式下,用于设置PWM模式
2021-02-26 03:43:54 811
原创 定时器中断
目录一、时钟选择二、内部时钟选择三、计数器模式1、向下计数模式(时钟分频因子=1)2、向上计数模式(时钟分频因子=1)3、中央对齐计数模式(时钟分频因子=1 ARR=6)四、相关寄存器1、计数器当前值寄存器CNT2、预分频寄存器TIMx_PSC3、自动重装载寄存器(TIMx_ARR)4、控制寄存器1(TIMx_CR1)5、DMA中断使能寄存器(TIMx_DIER)五、通用定时器常用寄存器和库函数1、常用库函数2、定时器使能函数:3、定时器中断.
2021-02-26 03:32:30 2503
原创 通用定时器基本原理
目录一、三种定时器区别二、通用定时器功能特点描述三、计数器模式四、通用定时器工作过程一、三种定时器区别 定时器种类 位数 计数器模式 产生DMA请求 捕获/比较通道 互补输出 特殊应用场景 高级定时器 (TIM1,TIM8) 16 向上,向下,向上/下 可
2021-02-26 03:15:16 1835
原创 窗口看门狗
目录一、 窗口看门狗概述二、常用寄存器和库函数描述1、控制寄存器WWDG_CR2、配置寄存器WWDG_CFR3、状态寄存器WWDG_SR三、窗口看门狗的一般配置步骤四、具体代码一、 窗口看门狗概述之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。示意图:框图:STM32F的窗口看门
2021-02-26 03:06:03 468
原创 独立看门狗
一、概念1、在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog)2、用来解决的问题:在启动正常运行的时候,系统不能复位。 在系统跑飞(程...
2021-02-21 23:27:48 521
原创 Mini STM32 外部中断实验
一、外部中断概述1、STM32的每个IO都可以作为外部中断输入。2、STM32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112),STM3
2021-02-21 19:36:16 234
原创 串行通信原理
一、通信接口的背景知识1、常见的串行通信接口二、STM32串口通信接口1、UART异步通信方式引脚2、UART异步通信方式特点3、串口通信过程:4、STM32串口异步通信需要定义的参数:...
2021-02-20 00:17:44 610 3
原创 STM32 NVIC 中断优先级管理
一、NVIC 中断优先级分组1、中断管理方法:对stm32分为四组,0~4组,同时每个中断设置一个抢占优先级和一个响应优先级2、区别:3、中断优先级函数:二、中断优先级设置1、中断设置相关寄存器2、MDK中NVIC寄存器结构体3、对于每个中断如何设置优先级:4、中断使能寄存组:ISER[8]5、中断失能寄存组:ICER[8]6、其他寄存组:7、中断参数初始化函数...
2021-02-19 23:38:05 556
原创 端口复用和重映射
一、端口复用功能 STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 复用的。也就是说,一个 GPIO如果可以复用为内置外设的功能引脚,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。 复用端口初始化有几个步骤: 1) GPIO 端口时钟使能。要使用到端口复用,当然要使能端口的时钟了。RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); 2) 复用的外设时钟使能。比如你要将端口 PA9,PA10 复用为串口.
2021-02-19 19:54:12 260 1
原创 STM32 时钟系统--RCC寄存器
一、时钟系统框图在 STM32 中,有五个时钟源,为 HSI、HSE、LSI、LSE、PLL。从时钟频率来分可以分为高速时钟源和低速时钟源,在这 5 个中 HIS,HSE 以及 PLL 是高速时钟,LSI 和 LSE 是低速时 钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中 HSE 和 LSE 是外部时钟源,其他的是内部时钟源。下面我们看看 STM32 的 5 个时 钟源,我们讲解顺序是按图中红圈标示的顺序: ①、HSI 是高速内部时钟,.
2021-02-18 17:10:45 2414
原创 Mini STM32按键输入实验
一、硬件设计本实验用到的硬件资源有: 1) 指示灯 DS0、DS1 2) 3 个按键:KEY0、KEY1 和 KEY_UP。 DS0、DS1 和 STM32 的连接在上一章已经介绍了,在 MiniSTM32 开发板上的按键 KEY0连接在 PC5 上、KEY1 连接在 PA15 上、WK_UP 连接在 PA0 上。如图 7.2.1 所示: 图 7.2.1 按键与 STM32 连接原理图 这里需要注意的是:KEY0 和 KEY1 是低电平有效的,而 WK_UP 是高电平有效的.
2021-02-17 23:42:34 1004
原创 IO 口的位操作实现
一、概念该部分代码在 sys.h 文件中,实现对 STM32 各个 IO 口的位操作,包括读入和输出。当然在这些函数调用之前,必须先进行 IO 口时钟的使能和 IO 口功能定义。此部分仅仅对 IO 口进 行输入输出读取和控制。 位带操作简单的说,就是把每个比特膨胀为一个 32 位的字,当访问这些字的时候就达到了 访问比特的目的,比如说 BSRR 寄存器有 32 个位,那么可以映射到 32 个地址上,我们去访问这32 个地址就达到访问 32 个比特的目的。这样我们往某个地址写 1 就达到往对应比特位写
2021-02-17 22:09:17 953
原创 GPIO工作方式
一、分类1、浮空:顾名思义就是浮在空中,上面用绳子一拉就上去了,下面用绳子一拉就沉下去了.2、开漏:就等于输出口接了个NPN三极管,并且只接了e,b.c极是开路的,你可以接一个电阻到3.3V,也可以接一个电阻到5V,这样,在输出1的时候,就可以是5V电压,也可以是3.3V电压了.但是不接电阻上拉的时候,这个输出高就不能实现了.3、推挽:就是有推有拉,任何时候IO口的电平都是确定的,不需要外接上拉或者下拉电阻.二、输入方法(1)GPIO_Mode_AIN模拟输入(2)GPIO_Mo...
2021-02-14 23:33:31 139
原创 Ministm32新建 MDK5 工程
步骤一:打开 MDK(以下将 MDK5 简称为 MDK)软件。然后点击 Project→New uVision Project 如图 3.2.1 所示步骤二:在桌面新建一个 TEST 的文件夹,然后在 TEST 文件夹里面新建 USER 文件夹,将工程名字设为 test,保存在这个 USER 文件夹里面,之后,弹出选择器件的对话框,如图 3.2.3 所示步骤三因为 ALIENTEK MiniSTM32 开发板所使用的 STM32 型号为 STM32F103RCT6,所以在这里
2021-02-08 00:21:10 348
原创 STM32 串口程序下载
步骤一:要在板子上设置一下,在板子上把 P4 端子的 RXD 和 PA9(STM32 的 TXD),TXD 和 PA10(STM32 的 RXD)通过跳线帽连接起来,这样我们就把 CH340G 和 MCU 的串口 1 连接 上了。为了让下下载完后可以按复位执行程序,我们建议大家把 BOOT1 和 BOOT0 都设置为 0。设置完成如图 4.2.1 所示:这里简单说明一下一键下载电路的原理,我们知道,STM32 串口下载的标准方法是两个步骤: 1, 把 B0 接 V3.3(保持 B1
2021-02-07 22:13:58 4293
原创 详述线程间协作
例如:上部分进程负责显示时间,下部分线程负责获取时间synchronized关键字只是起到了多个线程“串行”执行临界区中代码的作用,但是哪个线程先执行,哪个线程后执行依无法确定,Object类中的wait()、notify()和notifyAll()三个方法解决了线程间的协作问题,通过这三个方法的“合理”使用可以确定多线程中线程的先后执行顺序:1、wait():对象锁调用了wait()方法会使当前持有该对象锁的线程处于线程等待状态同时该线程释放对对象锁的控制权,直到在其他线程中该对象锁调用noti
2021-02-06 22:58:37 215
原创 线程间数据共享
目录一、并发运行二、串行运行三、多线程同步原理四、synchronized关键字五、死锁一、并发运行1、线程中并发指一个时间段中多个线程都处于已启动但没有运行结束的状态。2、多个线程之间默认并发运行,这种运行方式往往会出现交叉的情况。二、串行运行使原本并发运行的多个线程实现串行运行,即多线程间同步执行,需要通过对象锁机制来实现,synchronized就是一个利用锁实现线程同步的关键字。synchronized对象锁:该对象锁是Java中创建的一个对象.
2021-02-06 22:36:29 540
原创 总结线程常用方法
目录一、join方法二、interrupt方法三、currentThread方法四、isAlive方法五、setDaemon方法六、其它方法七、终止线程——无疾而终八、终止线程——暴毙身亡一、join方法join方法:执行该方法的线程进入阻塞状态,直到调用该方法的线程结束后再由阻塞转为就绪状态。注意:线程对象在调用join方法前必须先调用start方法,否则该线程永远不会进入执行状态。二、interrupt方法interrupt方法:结束线程
2021-02-05 23:56:44 1426
原创 进程与线程
目录一、进程的概念二、线程的概念三、进程与线程的关系四、创建进程(1)继承java.lang.Thread类,重写run方法 (2)实现java.lang.Runnable接口,实现run抽象方法五、线程生命周期一、进程的概念程序(Program)是为实现特定目标或解决特定问题而用计算机语言(比如Java语言)编写的命令序列的集合。进程(process)指一个程序的一次执行过程。二、线程的概念线程(thread)又称为轻量级进程,线程是一个程序中实现单一功能的.
2021-02-05 22:33:09 151
原创 详述java元注解
目录一、@Target二、@Retention三、@Documented四、@Inherited五、@Repeatable一、@Target用于指定被修饰的自定义注解只能用于修饰程序中哪些元素,该元注解有如下属性值:1、ElementType.ANNOTATION_TYPE:应用于其他注解的元注解2、ElementType.CONSTRUCTOR:应用于构造函数3、ElementType.FIELD:应用于全局属性4、ElementType.LOCAL_VARIABLE:
2021-02-01 22:54:30 139
原创 详述java自定义注解
目录一、自定义注解语法结构二、属性语法结构一、自定义注解语法结构二、属性语法结构示例:注意:(1)注解属性默认没有默认值,如果注解中定义了无默认值的注解属性,则使用该注解时必须指定值:无默认值如果注解value属性没有默认,并且使用时又没有设定具体值,则代码语法不通过。(2)如果注解属性名为value,使用该注解时可以直接赋值直接赋值{“deprecation”}(3)如果注解属性的数据类型为数组类型,赋多个值时必须使用{}括起来;但若只赋一个值,则
2021-02-01 22:04:42 78
原创 详述java内置注解
目录一、@Override二、@Deprecated注解三、@SuppressWarnings一、@Override@Override被用于标注方法,用于说明所标注的方法是重写父类的方法:为了支持@Override,需要将项目工程升级为1.6或其以上版本;如果升级后Java代码没问题,但是工程报错,可以通过如下操作解决:右键项目“Properties”——>“Project Facets”——>右边java项选择相应的版本就OK了。二、@Deprecated注解
2021-02-01 21:52:43 255 3
原创 java注解概念
一、注解概念(1)JDK5及其以后JDK版本开始支持Java注解;(2)Java注解(Annotation)也叫作元数据,以‘@注解名’在代码中存在,它是一种在源代码中标注的特殊标记,可以标注源代码中的类、属性、方法、参数等代码,主要用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。二、注解的分类Java注解按照是否含有参数分为三种:(1)不带参数语法结构为:@Annotation(2)带一个参数的注解语法结构为:@Annotation(参数)(3
2021-02-01 20:09:19 134
原创 详述Java反射
一、java反射的概念Java反射(Reflection)是一种新的操作类中成员变量、构造方法和普通方法的机制。为了实现对成员变量、构造方法和普通方法的操作,我们需要借助Java自身提供的java.lang包下的Class类和java.lang.reflect包下的反射API 。二、Class对象Class类是Java 反射机制的入口,封装了一个类或接口的运行时信息,通过调用Class类的方法可以获取这些信息。Class类的特点:(1)该类在java.lang包中;(2)该类.
2021-01-31 20:45:34 263
原创 Spring中几种构造方法实例化的方法
1、基本数据类型或String 使用value属性赋值<bean class="com.jd.vo.Student"> <constructor-arg value="12"></constructor-arg> <constructor-arg value="Jim"></constructor-arg></bean>2、类类型,则使用ref属性赋值<bean class="com.jd.vo.
2020-10-25 17:57:22 575
原创 如何使用MyBatis
一、准备阶段 a、下载MyBatis相应jar包:https://github.com/mybatis/mybatis-3/releases b、创建Java工程,导入MyBatis jar包(mybatis-3.4.4.jar)和数据库驱动包 c、创建user_info表并添加数据例:create table user_info( id char(36) primary key, user_name varchar(15) unique, passwor...
2020-09-27 18:52:04 139
原创 详述Servlet生命周期
一、什么是ServletServlet是服务器端的Java应用程序,可以生产动态Web页面。透过JSP执行过程可以知道JSP最终被编译成一个.class文件,查看该文件对应的Java类,发现该Java类继承自org.apache.jasper.runtime.HttpJspBase类,而HttpJspBase继承自HttpServlet类,由此可知JSP第一次运行时实质上是被JSP引擎翻译成了一个Servlet,然后再编译,最后再执行。自定义Servlet类继承HttpServlet抽象类,Http
2020-07-26 18:18:13 135
原创 详述session内置对象运行机制
session内置对象的概念session对象:Web应用中,会话指在一段时间内,一个用户通过浏览器与服务器之间进行的一系列的请求和响应的交互过程。在一个会话中,用户可以访问该Web应用系统中包括网页在内的多种资源。当用户(浏览器)向Web应用服务器发送第一次请求时,服务器会为该用户创建一个唯一标识的会话,会话一直延续到访问结束(浏览器关闭或用户长时间不访问Web应用)。JSP使用session对象表示会话,即将信息保存在session对象中,方便用户在这个会话中随时获取。浏览器关闭只是中.
2020-07-23 00:56:21 132
原创 详述重定向与请求转发两种方式区别区别
目录重定向(Redirect)请求转发(Forward)区别重定向(Redirect)重定向(Redirect):客户端浏览器向Web应用服务器端发送一个请求,Web服务器端使用HttpServletResponse的sendRedirect()方法将结果(结果中头信息内HTTP状态码为302,Location响应报头域中保存响应回来的地址)返回客户端浏览器;客户端浏览器收到服务器端结果后解析其头部信息,然后自动按照头部指定地址以GET方式再次向Web应用服务器端发请求,此时地址栏URL
2020-07-23 00:49:41 458
原创 修改JSP默认编码
创建JSP文件时,JSP默认编码为ISO-8859-1,如果JSP文件中包含了中文,则保存时由于根据ISO-8859-1字符集进行编码,此时出现如下对话框:将JSP文件中三处ISO-8859-1字符集改为UTF-8即可,但是下次创建JSP文件时依然需要手动进行修改,可以通过如下方式一劳永逸地解决该问题:1、点击“Window”菜单——>点击“Preferences”选项,出现下图:2、已上图所示进行如下操作 a、依次点击Web节点——>JSP Files节点;...
2020-07-23 00:45:12 640
原创 详述JSP执行过程
JSP的概念JSP全称Java Server Pages ,里面包含html标签、css样式、JavaScript脚本和Java代码。注意:<%=currentTime%>前面等号和前面%不能有空格。执行过程当用户通过浏览器访问Tomcat上的JSP页面时,Web应用服务器使用JSP引擎对该页面进行翻译(Java文件)、编译(.class文件)和执行,然后将执行结果(静态页面代码)返回给客户端浏览器,最后浏览器解释执行返回的结果呈现给用户,如下图所示:翻译阶段:当Web应用服务
2020-07-23 00:42:46 625
原创 HTML详述Tomcat中Tomcat目录结构
目录Tomcat的概念下载地址软件目录结构Tomcat的概念Tomcat是一个Apache软件基金会Jakarta项目中的核心项目;是一个免费的开放源代码的轻量级Web应用服务器;运行时占用资源小,支持负载均衡与邮件服务等开发应用系统常用功能。下载地址https://tomcat.apache.org/软件目录结构1、bin:存放了启动Tomcat软件的命令,这些命令可以在Windows和Linuxf操作系统上运行。2、conf:保存了配置Tomcat的配置文
2020-07-23 00:36:29 134
原创 详述jQuery事件绑定方式
一、bind()方法bind(type,[data],fn):为每个匹配元素的特定事件绑定对应的事件处理函数,各参数含义如下:1、type表示事件类型,多个事件类型使用空格分隔;2、data表示传递给绑定函数的额外数据对象,函数中使用event.data接收(了解);3、fn表示绑定的函数;例子:不同事件类型绑定不同事件函数,如下例子:<!DOCTYPE html><html> <head> <meta charset="U...
2020-07-22 15:10:36 126
原创 HTML中详述jQuery对象与DOM对象
目录jQuery对象jQuery对象转DOM对象DOM对象转jQuery对象jQuery对象jQuery对象:通过jQuery库自带的方法获取页面DOM元素的对象叫做jQuery对象,保存jQuery 对象的变量通常以$开头: var $userName = $("#user_name"); $userName.val(“Tom”);jQuery 对象是 jQuery 独有的,该对象无法使用 DOM ...
2020-07-22 14:34:31 86
原创 HTML中jQuery元素添加
目录jQuery元素添加方法一、attr()方法:直接使用jQuery语句二、在body中使用anload标签属性三、调用function匿名方法实现四、$(document)方法添加元素jQuery元素添加方法一、attr()方法:直接使用jQuery语句格式:attr()方法:attr(name|properties|key,value|key,fn):设置或返回被选元素的属性值。1、name:返回name属性的属性值:2、properties:使用JavaScr
2020-07-22 14:18:00 170
原创 HTML详述表单校验总结
一、文本框代码示例:<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input id="name" /> <script> document.getElementById("name").focus();//设置焦点
2020-07-20 21:16:37 160
原创 HTML中常用标签总结
行内元素行内元素:指不会自动换行,不满副标签。a标签格式:<a href ="网址" target="_self"> 内容 </ a>作用:为一对尖括号中的内容添加超链接,超链接指向输入的网址,方式为target所定义的形式。用法:a标签中,有href与target两项标签属性值,分别对应网址与弹出方式。其中,target分为原页面弹出_self与新页面弹出_blank,其中,默认为原页面弹出。img标签格式:<img src="图片存储位置" / &g
2020-07-20 20:41:22 145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人