- 博客(241)
- 收藏
- 关注
原创 UCOIII时间片轮转调度
前提:时间片轮转法:主要用于分时系统中的进程调度。为了实现轮转调度,系统把所有就绪进程按先入先出的原则排成一个队列的队首进程,让它在CPU上运行一个时间片的时间。时间片是一个小的时间单位,通常为 10~100ms 数量级。当进程用完分给它的时间片后,系统的计时器发出时钟中断,调度程序便停止该进程的运行,把它放入就绪队列的末尾;然后,把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程,同样也让它运行一个时间片,如此往复。实现思想:时间片轮转算法的基本思想是,系统将所有的就绪进程按先来先服务算法的
2021-11-01 02:00:14
1402
原创 UCOSIII任务创建与删除
1.1、任务的创建UCOSIII 中要想使用任务,第一件事就是创建一个任务,创建任务使用函数 OSTaskCreate()void OSTaskCreate (OS_TCB *p_tcb, CPU_CHAR *p_name, OS_TASK_PTR p_task, void *p_arg, OS_
2021-10-21 02:34:33
829
原创 JavaScript期末复习
一、选择题1、下列关于鼠标事件描述有误的是( B )A、click表示鼠标单击B、onDblClick表示鼠标双击事件C、onMouseDown表示鼠标的按钮被按下D、onmousemove表示鼠标进入某个对象范围,并且移动ondblclick表示双击2、考察以下程序片段:var n = new Number(3456.0);alter(parseFloat(n));以下选项正确的是( C )A、输出34 B、输出56C、输出3456D、输出3456.0parseFloat(
2021-10-13 18:10:41
3768
原创 UCOSIII任务管理
UCOSIII下的SYSTEM文件夹1.1 delay.c文件夹中函数:delay.c文件是 ALIENTEK 编写的文件,主要是使用滴答定时器来完成高精度延时。在使用 UCOS 的时候还完成了针对 UCDOS 的相关配置,主要是滴答定时器作为 CUOS 系统时基的配置函数描述delay_osschedlock()任务调度器加锁,对UCOS中的对应函数做封装delay_osschedunlock()任务调度器解锁,对UCOS中的对应函数做封装delay_ostime
2021-10-10 00:12:00
1234
原创 RTOS系统
前后台系统:早期嵌入式开发没有嵌入式操作系统的概念,直接操作裸机,在裸机上写程序,比如用51单片机基本就没有操作系统的概念。通常把程序分为两部分:前台系统和后台系统简单的小系统通常是前后台系统,这样的程序包括一个死循环和若干个中断服务程序:应用程序是一个无限循环,循环中调用API函数完成所需的操作,这个大循环就叫做后台系统。中断服务程序用于处理系统的异步事件,也就是前台系统。前台是中断级,后台是任务级。RTOS系统:RTOS全称为:Real Time OS,就是实时操作系统,强调的是:实时性。实
2021-10-04 01:47:08
2422
原创 selenium模块的基本使用
selenium模块和爬虫的关联1、便捷的获取网站中动态加载的数据。2、便捷的实现模拟登录。selenium模块:1、基于浏览器自动化的一个模块。2、模拟人去操作浏览器,通过xpath或者标签定位到元素,通过相应的方法就能在文本框内输入字符,或者定位到按钮点击。3、不过selenium执行很慢,并且网页没加载完也可能执行下面的代码,会导致报错。4、selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题,selenium
2021-10-01 01:17:11
730
原创 腾讯云服务器简单部署flask
其实网上的这类教程很多,也包括了腾讯云自己的官方文档。我自己也只是记录一下部署的情况。废话不多说,开始吧!1、首先既然是部署flask,自然要创建好一个可以运行的 python-flask工程啦,在这里还是推荐大家用 企业版的pycharm,因为对于多类工程创建很方便在这里对于python-flask的讲解就不多说了。有兴趣的可以看看这位大佬的详细讲解,非常清楚!直接上链接https://blog.csdn.net/caidewei121/article/details/104511889?ut
2021-09-20 02:14:42
3194
2
原创 TCP/IP 协议
TCP/IP 协议TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议通信协议:计算机之间通信要共同遵守的原则称为通信协议网络协议的三大要素:语义:需要发出何种
2021-09-15 00:44:19
1561
原创 JavaScript基础
JavaScript的介绍JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。插一句题外话:JavaScript和Java 就是 老婆饼和老婆 的关系一样(两者没啥关系)什么是JavaScript原文链接:https://blog.csdn.net/fuzhongmi
2021-09-13 16:51:19
377
原创 python的flask框架
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具导入Flask类库from flask import Flask创建应用实例app = Flask(__name__)路由解析,通过用户访问的路径,匹配相应的函
2021-09-08 11:29:13
655
原创 数据库(MySQL)
数据库(DB ~ DataBase)概念:数据仓库、软件、安装在操作系统(Windows,Linux,mac,…)之上! SQL,可以存储大量的数据“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合(来源于百度百科!)作用:存储数据,管理数据数据库分类关系型数据库:(SQL ~ Structured Query Language)MySQL、Oracle、Sql Server、DB2、SQLlite通过表与表之
2021-09-07 10:02:15
263
原创 微信小程序二
学了一段时间微信小程序,但是没有实战,就不知道自己哪里没掌握,哪里的知识点不清楚。所以做一个豆瓣评分的小程序,试试~整体分析首先看页面,由几个板块构成:一个搜索框(也可以写成组件,因为后面还有搜索页面),电影板块、电视剧板块、综艺板块(但是这3个类似,所以可以写成一个组件,减少代码量和方便以后的维护)。顶部设置(豆瓣评分)关于渲染方面的细节,比如:颜色和字体大小等…有专门的UI师提供搜索框(searchbar,组件,方便调用)// components/searchbar/search
2021-08-23 23:57:31
517
原创 汇编LED驱动实验
跟着正点原子视频学万事都从点灯起!类似于stm32的启动文件:startup_stm32f10x_hd.s它的作用是:初始化堆栈指针 SP初始化程序计数器指针 PC设置堆、栈的大小设置异常向量表的入表地址配置外部 SRAM作为数据存储器(这个由用户配置,一般的开发板可没有外部 SRAM)设置 C库的分支入口 _main (最终用来调用 main函数)在3.5版的启动文件还调用了在 system_stm32f10x.c文件中的SystemInit()函数配置系统时钟汇编LED原理分析
2021-08-22 17:21:45
677
原创 微信小程序一
基础组件(常用)组件名说明view视图容器scroll-view可滚动视图容器swiper滑块视图容器JS的数据通过数据绑定可以在wxml上进行渲染JS里面的onload函数是页面刷新后加载数据的函数,一般在onload里面写初始化数据的部分。数据绑定:WXML中的动态数据均来自对应的Page的dataconst app = getApp()Page({ data: { userName: "你好", person: {
2021-08-17 16:57:41
378
2
原创 JavaWeb
基础概念web开发:web:页面的意思,例如:www.baidu.com静态web:html,css提供给所有人看的数据始终不会发生变化的动态web:淘宝,以及几乎所有的网站提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同技术栈:Servlet/JSP,ASP,PHP在Java中,动态web资源开发的技术统称为JavaWebweb应用程序web应用程序:可以提供浏览器访问的程序;a.html、b.html 等多个web
2021-08-16 17:51:14
3490
原创 Ubuntu自学笔记五
Ubuntu/Linux 文件权限文件权限是指不同的用户或用户组对某个文件拥有的权限,文件权限分为三种:r:读w:写x:可执行-rw-rw-r-- 就是文件权限,第一位表示文件类型,剩下的每三位表示一组权限。分别对应拥有者权限,拥有者所在组权限,其他用户权限。(第一组 rwx:用户,第二组 rwx:用户组内成员,第三组 rwx:其他成员)也可以使用二进制表示文件权限,三种权限就可以用3位二进制来表示,一种权限对应一个二进制位,如果该位为1就表示具备此权限,如果该位为0就表示没不具备此权限。r=
2021-08-16 01:51:50
144
原创 python爬虫基础
实战一:网页采集器UA:User-Agent(请求载体的身份标识)UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器说明请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是基于某一款浏览器的,则表示该请求为不正常的请求(爬虫),则服务器端就很有可能拒绝该次请求UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器导包import requestsif __name__ == "__main__":UA伪装:将对应的User-Ag
2021-08-05 19:29:25
8735
原创 python的requests模块
前戏:1、你是否在夜深人静的时候,想看一些会让你更睡不着的图片却苦于没有资源。。。2、你是否在节假日出行高峰的时候,想快速抢购火车票成功。。。3、你是否在网上购物的时候,想快速且精确的定位道口碑质量最好的商品。。。什么是爬虫通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。爬虫的价值实际应用就业爬虫究竟是否合法在法律中是不被禁止具有违法风险善意爬虫 恶意爬虫爬虫带来的风险可以体现在如下两个方面爬虫干扰了被访问网站的正常运营爬虫抓取了收到法律保护的特定类型
2021-08-05 17:28:40
146
原创 STM32ADC模数转换
参考正点原子ADCAnalog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。STM32F10x ADC特点12位逐次逼近型的模拟数字转换器。最多带3个ADC控制器。最多支持18个通道,可最多测量16个外部和2个内部信号源。支持单次和连续转换模式。转换结束,注入转换结束,和发生模拟看门狗事件时产生中断。通道0到通道n的自动扫描模式。
2021-07-11 10:40:46
1088
4
原创 Java集合
关于Java.util.Collection接口中常用的方法Collection中能存放什么元素没有使用“泛型”之前,Collection中可以存储Object的所有子类型使用“泛型之后”,Collection中只能存储某个具体的类型集合后期我们会学习“泛型”语法。目前先不用管。Collection中什么都能存,只要是Object的子类型就行。(集合中不能直接存储基本数据类型,也不能存java对象,只是存储Java对象的内存地址)Collection中的常用方法boolean add(Ob
2021-07-09 00:06:00
400
2
原创 STM32DMA
参考正点原子视频DMA简介DMA全称Direct Memory Access,即直接存储器访问DMA传输将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实现和完成的。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。作用:为CPU减负STM32最多有2个DMA控制器(DMA2仅存在大容量产品中),DMA1有7个通道。DMA2有5个通
2021-06-26 23:43:39
1253
原创 Ubuntu自学笔记四
Linux用户Linux是一个多用户操作系统,不同的用户拥有不同的权限。可以查看和操作不同的文件。Ubuntu有3个不同的用户:1.初次创建的用户2.root用户3.普通用户初次创建的用户权限比普通用户多,但是没有root用户多,初次创建的用户可以创建普通用户。Linux用户记录在 /etc/passwd 这个文件内sudo gedit /etc/passwd(以记事本的形式打开用户记录)Linux用户密码记录在 /etc/shadow 这个文件内sudo gedit /etc/shad
2021-06-24 15:27:19
281
原创 Ubuntu自学笔记三
Linux下常用的压缩格式Linux下常用的压缩扩展名有:.tar .tar.bz2 .tar.gzWindows下7ZIP软件的安装因为Linux下很多文件是 .bz2 .gz结尾的压缩文件,因此需要在Windows下安装7ZIP软件gzip压缩工具.gzip工具负责压缩和解压缩 .gz 格式的压缩包gzip xxx // 压缩gzip a.c // 对a.c文件进行压缩 a.c.gzgzip -d xxx.gz // 解压缩gzip -d a.c // 对压缩好的a.
2021-06-17 21:07:09
213
原创 python正则表达式
正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同;但不用担心,不被支持的语法通常是不常用的部分。如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。正则表达式的常用操作符( . ): 表示任何单个字符( [ ] ):字符集,对单个字符给出取值范围:[abc
2021-06-16 13:34:33
183
原创 Ubuntu自学笔记二
磁盘管理/dev/sd*文件,此类文件是磁盘设备文件,并不能直接访问磁盘,必须要将磁盘挂载到某一个目录下才可以访问。/dev/sdb和/dev/sdb1是U盘的设备文件(每个人的电脑U盘设备文件名在Ubuntu里可能会不一样)/dev/sdb表示U盘,/dev/sdb1表示U盘的第一个分区磁盘和目录的容量查询命令df:列出文件系统的整体磁盘使用量。主要查看个文件系统的使用量。Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。语法
2021-06-15 13:18:15
938
原创 STM32IIC通信
参考正点原子视频IIC两线式串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间,IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上IIC是半双工通信方式半双工:可以接收发送,但不能同时进行多主机I2C总线系统结构I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。I
2021-06-08 22:31:11
1104
1
原创 Ubuntu自学笔记一
在Ubuntu页面上,鼠标右键点击打开终端,注意不要登录访客用户模式,否则就会出现下面的情况在输入命令时,可以输入一个字符,然后按Tab键,可进行自动补全shell命令1.目录信息查看命令 ls(不包括隐含文件) ls test1/ 显示test1目录里面的文件 ls -a 显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出) ls -al 显示当前目录下的所有文件 ls -A 显示除隐藏文件“.”或“..”以外的所有文件列表 ls -C 多列显示输出结果。这是默
2021-06-08 13:20:46
421
原创 python基础十一
模块模块英文为Modules函数与模块的关系(一个模块可以包含N多个函数)在python中一个扩展名为.py的文件就是一个模块使用模块的好处:方便其他程序和脚本的导入并使用避免函数名和变量名冲突提高代码的可维护性提高代码的可重用性def fun(): passdef fun2(): passclass Student: native_place = '吉林' # 类属性 def eat(self, name, age):
2021-06-07 16:07:12
512
1
原创 Java目录拷贝
package com.blb.text7;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.util.Iterator;public class Demo11 { public static void main(String[] args) throws Exception {
2021-06-06 00:04:54
291
原创 Java贪吃蛇小游戏
在用Java做一个贪吃蛇小游戏之前,先要了解一下JFrameJFrame是指一个计算机语言-java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。构造方法JFrame():构造一个初始时不可见的新窗体。JFrame(GraphicsConfiguration gc):以屏幕设备的指定GraphicsConfiguration和空白标题创建一个 Frame。JFrame(String title):创建一个新的、初始不可见的、具有指定标题的
2021-06-04 13:43:57
426
原创 STM32SPI通信原理
参考正点原子视频SPI接口简介SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用于EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200SPI内部结构简明图SPI工作原理总结硬件上为4根线主机和从机都有一
2021-06-02 01:19:48
3058
原创 python类和对象
编程思想面向过程:事物比较简单,可以用线性的思维去解决面向对象:事物比较复杂,使用简单的线性思想无法解决共同点:面向过程和面向对象都是解决实际问题的一种思维方式;二者相辅相成,并不是对立的;解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统:具体到微观操作,仍然使用面向过程方式来处理类和对象类:多个类似事物组成的群体的统称。能够帮助我们快速理解和判断事物的性质数据类型:不同的数据类型属于不同的类;使用内置函数查看类型对象:100,99,520都是
2021-06-01 13:37:58
291
1
原创 python基础十
函数的创建和调用什么是函数:函数就是执行特定任和以完成特定功能的一段代码为什么需要函数复用代码隐藏实现细节提高可维护性提高可读性便于调试函数的创建:def 函数名([输入参数]): 函数体 [return ***]函数的参数传递函数调用的参数传递位置实参:根据形参对应的位置进行实参传递关键字实参:根据形参名称进行实参传递def calc(a, b): # a,b称为形式参数,简称形参,形参的位置是在函数的定义处 c =
2021-05-31 11:22:29
176
原创 STM32输入捕获
参考正点原子视频STM32PWM工作过程一句话总结工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMx_CCRx里面),完成一次捕获。步骤一:设置输入捕获滤波器以通道一为例:1)当滤波器连续采样到N次个有效电平时,认为一次有效的输入电平。2)该数字滤波器实际上是个事件计数器,它记录到N个事件后会产生一个输出的跳变。例如:当f(CK_INT) = 72MHz, CKD[1:0
2021-05-30 23:02:48
3152
3
原创 STM32PWM输出实验
参考正点原子视频STM32 PWM工作过程通道(1)为例CCR1:捕获比较(值)寄存器(x=1,2,3,4):设置比较值。CCMR:OC1M[2 : 0]位:对于PWM方式下,用于设置PWM模式1【110】或者PWM模式2【111】CCER:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平有效。CCER:CC1E位:输入/捕获1输出使能。0:关闭,1:打开。PWM模式1 & PWM模式2寄存器TIMx_CCMR1的OC1M[2:0]位来分析:PWM模式1或PWM模式
2021-05-29 01:46:39
1547
7
原创 JavaIO流
IO流的分类按照流的方向进行分类以内存作为参照物:输入流,输出流往内存中去,叫做输入(Input)。或者叫做读(Read)从内存中出来,叫做输出(Output)。或者叫做写(write)按照读取数据方式不同进行分类以读取字符的不同:字节流,字符流有的流是按照字节的方式读取数据,一次读取1个字节byte,等同于一次读取8个二进制位。这种流是万能流,什么类型的文件都可以读取。包括:文本文件,图片,声音文件,视频文件等.…有的流是按照字符的方式读取数据的,一次读取一个字符,这种流是
2021-05-27 00:10:47
357
原创 python基础九
字符串在python中字符串是基本数据类型,是一个不可变的字符序列字符串驻留机制仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符的地址赋给新创建的变量a = 'python'b = "python"c = """python"""print(id(a), a)print(id(b), b)print(id(c), c)# a,b,c的内存地址一样驻留机制的
2021-05-26 12:26:38
222
2
原创 STM32通用定时器基本原理
参考正点原子视频STM32定时器共有 8 个定时器,分为基本定时器,通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向上计数的定时器,只能定时,没有外部 IO。通用定时器 TIM2/3/4/5 是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,每个定时器有四个外部 IO。高级定时器 TIM1/8是一个 16 位的可以向上/下计数的定时器,可以定时,可以输出比较,可以输入捕捉,还可以有三相电机互补输出信号,每个定时器有 8 个外部 IO。
2021-05-25 21:41:58
2537
原创 STM32窗口看门狗
参考正点原子窗口看门狗之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定(X由预分频器和重装载值决定,最大值为0xFFF)。喂狗的时间不能过晚为什么需要看门狗独立看门狗:在0-重载值之间任意时间都可以喂狗如果程序跑飞后又跑回正常或者跑乱的程序正好执行了刷新看门狗这样独立看门狗是不能检查到并复位芯片的窗口看门狗:限制了喂狗时间如果程序跑飞
2021-05-24 23:36:52
589
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅