粉丝228获赞1588

每天学一点技术,今日分享 m p l s。 的 标签转发原理,押战交换与弹出。今天我们来讨论 m p l s。 的 标签转发原理,特别是押战交换与弹出的过程。 m p l s。 多协议标签交换是一种高效的网络数据传输技术,它通过标签来转发数据包, 而不是传统的 ip 路由查找。那么 npls 的 标签转发具体是如何工作的呢? npls 的 标签转发过程主要包括三个操作,压占、 push、 交换 swap 和弹出 pop。 能详细解释一下这三个操作吗?当然,压占部署是在数据包进入 m p l s。 网络时,由入口路由器添加一个或多个标签交换。 swap 是 中间路由器根据标签转发表, 将入标签替换为出标签。弹出 pop 是 出口路由器移除标签,恢复原始数据包。

各位同学大家好,我是今天的主讲人。今天我们要一起学习的是数据结构中最基础也最核心的两种结构,站与队列。这节课的主题是站与队列、数据结构的进出艺术。我们今天的课程会按照这六个部分展开, 首先从生活中的规矩引入,让大家直观感受站和队列的本质。接着讲解站与队列的基础概念,然后拆解他们的核心基本操作,之后通过案例和实操演示, 看看他们在实际中能解决什么问题,再总结大家最容易踩坑的易错点。最后进行整体回顾并布置课后任务。首先进入第一部分,生活中的规矩。 其实站和队列一点都不抽象,他们就是对生活中两种最常见的进出规矩的抽象。第一种是先来后到,大家在食堂排队买饭的时候, 先来的人先打饭,后来的人只能排在队伍末尾等待,没有人能插队,这就是最典型的先来后到规则。第二种是后来居上,我们洗盘子的时候,洗好的盘子会一个个叠上去, 使用的时候却只能从最上面开始拿,最后洗好的那个盘子反而会最先被使用,这就是后来居上的体现。正是因为生活中存在这两种截然不同的进出规则,在代码世界里, 我们就专门设计了两种数据结构来对应处理,它们对应先来后到的是对列, q, 对 应后来居上的是占 stock。 这里大家要记住一个核心本质,占和对列都是受限的限性表,它们和普通的数组链表不一样, 普通宪信表可以在任意位置插入和删除元素,但站和队列只能在固定的位置进行操作,这也是它们最核心的特点。大家看屏幕上的示意图, 战士只有一个进出口的结构,遵循后进先出来否。队列是一头进一头出的结构,遵循先进先出否否。接下来进入第二部分基础概念,到底什么是站,什么是队列?先来看站,它的核心特性就是后进先出, 英文缩写, l i f o。 我 们用两个生活中的例子就能彻底理解。第一个是羽毛球筒,它只有一个开口,先进去的羽毛球会被压在最底下,最后放进去的那个才能最先被拿出来。第二个是死胡同,死胡同也只有一个进出口, 先进去的车必须等后面所有的车都出来了才能开出来,这完美体现了站的后进先出特性。了解了特性,我们在明确站里的两个关键概念,站顶和站顶。第一,站顶, 站中允许元素进出的那一端,所有的入站和出站操作都只能在站顶进行,它就相当于羽毛球桶拿取羽毛球的那个开口,是站操作的唯一位置。第二,站顶,站中固定不动的另一端,元素从站顶进入后,会逐渐向站顶堆积。 站顶是站中第一个元素存放的位置。现在我们来看站的入站、出站动图,大家重点关注 top 指征的变化。动图初始状态是一个空站, top 指征指向站底的下方,当我们依次执行两次迫使入站操作把元素一二压入站中时, top 指征会逐步上移,始终指向最新的站顶元素。 讲完战,我们来看队列。队列的核心特性是先进先出,英文缩写 f i f o。 最形象的例子就是隧道,隧道是一头进一头出的结构, 先进隧道的车辆一定会先驶出隧道,严格遵循先来后到的规则,这和队列的特性完全一致。队列里也有两个关键概念,队头和队尾。第一,队尾,队列中元素进入的一端, 新的元素永远只能从队尾加入,就像排队时,新来的人只能站在队伍末尾。第二,队头,队列中元素离开的一端,所有元素都只能从队头依次离开,这保证了队列先进先出的特性。现在看队列的入队出队动图,重点关注 front 和 rear 两个指征 出使队列为空。 front 对 头指征和 rear 对 尾指征都指向对头位置,依次入队元素五。其 时 reir 指尖不断后移,指向最新的队,为元素执行出队操作时, front 指尖后移对头的元素五倍弹出,此时队列中只剩下元素七。这个过程完美复刻了我们日常排队的规则,先进队的元素先出队。 接下来进入第三部分,核心知识点,拆解站和队列的基本操作。其实站和队列的核心操作非常简单,一共就四个动作,入站、出站、入队、出队、 入站。把新元素添加到站顶,站内元素数量增加,出站只能移除站顶元素,站内元素数量减少。入队把新元素添加到队尾,队列元素数量增加,出队只能移除对头元素,队列元素数量减少。 这里给大家强调站的一个铁律,站的所有操作仅限站顶点击撤销时永远只能撤销刚刚完成的那一步,不能跳过最近的操作去撤销更早的,这本质上就是站只能操作站顶元素的体现。队列的操作也有两个明确的要求,第一, 入队在队尾,新元素只能从队尾加入。第二,出队在对头,元素只能从对头离开,保证了队列的公平性和有序性。掌握站和队列操作的关键就是搞懂指尖的移动逻辑。对于站, 只需要关注 top 指阵,入站时 top 上移,出站时 top 下移, top 的 位置直接反映了站内元素的数量和当前站顶。对于队列要关注 front 和 rear 两个指阵,入队时只有 rear 指阵后移,出队时只有 front 指阵后移。 两个指尖的相对位置决定了对列的状态。学完了基础操作,大家肯定想知道站和对列到底能用来干什么?接下来进入第四部分案例与实操演示。站最核心的应用就是地规与函数调用,当我们编写地规函数时, 计算机底层就是用站来记录我从哪来,待会回哪去的。每调用一次函数,就把当前函数的上下文包括参数返回地址压入站中,等函数执行完毕,再从站中弹出上下文,回到原来的位置继续执行。 站还有两个非常常见的应用,第一个是括号匹配检查,我们写代码时,编辑器就是用站来检查括号是否匹配的,遇到左括号就入站,遇到右括号就弹出站顶的左括号进行匹配。如果匹配失败或者最后站不为空, 就说明括号有错误,大家看屏幕上的例子就能直观理解。第二个是浏览器的回退功能, 你每访问一个新页面,页面地址就会被压入站中,点击回退按钮时,站顶的地址被弹出, 浏览器就会跳转到上一个页面。队列的核心价值体现在系统调度上。服务器请求处理, 大家抢客抢票的时候,服务器会瞬间收到海量请求,如果同时处理肯定会崩溃,这时候服务器会把所有请求放进请求队列,按入队顺序逐个处理,避免系统崩溃。 cpu 任务处理, cpu 用队列来调度任务, 保证每个任务都能公平的被执行。打印机文件打印多个文件发送给打印机时,会先进入打印队列,按顺序依次打印,避免混乱 队列还有两个重要应用,第一个是消息队列,它能起到削峰填谷的作用,比如电商大促时订单量暴增,系统会先把订单存入消息队列,再慢慢处理,避免数据库被打垮。第二个是广度优先搜索 b、 f、 s 暗层,便利的刚好符合队列先进先出的特性。先把起始节点入队,然后依次喷出对头节点,把他的灵机节点入队,直到便利完所有节点战和队列虽然简单,但有几个非常容易踩的坑。接下来进入第五部分易错点总结避坑指南, 第一个坑是站一出,他指的是站满之后还继续执行入站操作导致的错误。最常见的站一出原因就是死循环地龟 地规函数没有写正确的终止条件,会不断调用,自己占空间被持续占用,最终导致程序崩溃。所以大家写地规时一定要先写终止条件。第二个坑是顺序对列的假溢出,当我们用数组实现顺序对列时,会出现一个问题, 当 rio 指征走到数组的末尾时,即使数组前面还有很多空位,也无法继续入对新元素,这就是假一出会造成严重的空间浪费。大家看屏幕上的示意图,队列里已经出对了 a、 b、 c 三个元素,前面有三个空位,但 rio 指征已经到了数组末尾,无法再入对新元素。 解决假溢出的方法就是使用循环队列,把数组的首尾相连,形成一个环形结构。当 rear 指针走到数组末尾时,会自动绕回数组开头,这样前面的空位就能被重新利用。 循环队列最关键的是判满,这里有一个经典的判满公式,大家一定要记住,括号 rear 加一扩回百分号 max size 等于等于 front。 循环队列是一种用空间换时间的经典设计思想。最后我们快速回顾一下今天的内容,并布置课后任务 栈式。后进先出的结构适合处理两类问题,第一是嵌套结构,比如递归函数调用。第二是回溯问题,比如撤销操作。括号匹配队列是先进先出的结构,适合处理两类问题,第一是缓冲,比如消息队列、服务器请求队列。 第二是调度,比如 cpu 任务调度、打印机调度。在后续的学习中,站和队列还会发挥重要作用,占用余数的深度优先、便利和图的深度优先搜索。队列用余数的广度优先、便利和图的广度优先搜索是我们必须掌握的基础。 这里给大家预热一下后续会用到的四个基本函数,或是括号入队,括号出队, pick 括号,获取对头元素 m t 括号判空,大家可以提前了解它们的用法。 今天的课后任务是用数组实现一个简单的循环队列要求实现入队、出队、盼空、盼满四个基本功能,重点运用我们今天讲的盼满公式,加深对循环队列的理解。以上就是今天微课的全部内容,谢谢大家!

单面积当中两种电频零和一啊,所以在内部存储的时候,运算全部是以二进制方式, 它是运算的过程当中全是以二进制形式在运算啊。单面存储数据的最小结构,寄存器是字节, 一个字节是八位啊,字节叫 bat 啊,把这句话记下来。单面积当中存储数据最小的结构是一个字节,也叫一个寄存器啊,一个寄存器 最小的一个结构就是一个字节,字节叫 bite, b、 y、 t、 e 啊,一个字节是八个位,一个字节是八位啊,啊,这写了字节的单词叫 bite, 位的单词叫 bit 啊, bit, bit 和 bite 呢?不一样的啊, bite 表示一个字节, bit 表示一个位, 最小的一个单元叫,最小的一个单元叫 bit 啊,但是最小的一个结构 是八个位,它在造芯片的时候,它一造最小就是一下就造八个出来啊,那八个里面一位一位的存数据可以存八个数据啊,它都是一个小格一个小格的,这么存的啊。 啊,这个必须要知道啊,那你看我的实心值的数,如果是零,我存在我的一个最小结构里面,存在我的一个 byte 里面,那就是全都是零啊, 你说那个这个这个这个,哎呀,零,哎,零不太好举例子,就一吧,要存一呢,我用仅用一个位得了呗。那这剩下七个多浪费啊。 那没办法啊,你一写就是一写就是这八个,一下就八个啊,你就一个,你就只有一个字,那他也一下会占用这这八个,剩下七个全填零,这七个位全填零啊, 那存二的时候,你看他在里面存的就是这样,零,零零幺零啊,这返回来了,我们要算了啊。零,你就往往回算呗,幺二四八呗。一这一位是幺,这位是二, 那二这位上有数就就是二,剩下都是零,那就不用乘了啊。不用乘了,那二,这就是二了啊。这一的这位是零,是没有数啊。那如果是三的话,就是零。幺幺,如果全部都写满了,八位全部写满, 全部写满的总和是两百五十五。两百五十五是基数啊。有的同学刚开始学的时候,我刚学的时候也是犯浑,哎。一个字节二百五十六吗?不是二的八次方吗?二的八次方二百五十六,二的八次方是二百五十六,但实际上他是从零开始算的。 零就代表一个数,零到二百五十五加起来一共是二百五十六个数,所以在一个字节当中 可以存储两百五十六种状态。不同的状态啊。 啊,数字呢,是从零到两百五十五之间,一共是两百五十六种状态。但是你说最大的数是存多少?全部存满就最大,最大它就是两百五十五个数。如果转换成十进之数的话,最大就是两百五十五。 那还有啊,这个 f, f, 这个一会再说吧。 f, f 是 十六尽值啊,那十六尽值的话,那四个一就是它的最大了嘛?四个一是最大最大满呢,叫 f 啊。 嗯,科学家们把四个二尽值数拼在一起来,表示一个十六尽值数的。 哎,所以你看这个,这是一个字节,它会分成左半部分和右半部分啊,我们也叫做,嗯,高四位和低四位。那高四位、低四位分别用两个十六经之书的字母来表示,这个就是 f, f, 这个也可以用十六根数表示,那四个零就是零,下面第四位是三,所以它就零三。十六根数就表示零三啊。 那其他这是零二、零一、零零。在我们写程序的时候,为了标明它是十六根数,我们在前端需要加一个特殊关键词叫零 x。 零 x 表示它是后面跟的是十有进数。比如零 x f f 这个数如果转换成十进之数,那它就等于两百五十五啊。哎,零 x 零二, 转换成十进之数就是二啊。

单面积当中两种电频零和一啊,所以在内部存储的时候,运算全部是以二进制方式, 它是运算的过程当中全是以二进制形式在运算啊。单面存储数据的最小结构,寄存器是字节, 一个字节是八位啊,字节叫 bat 啊,把这句话记下来。单面积当中存储数据最小的结构是一个字节,也叫一个寄存器啊,一个寄存器 最小的一个结构就是一个字节,字节叫 bite, b、 y、 t、 e 啊,一个字节是八个位,一个字节是八位啊,啊,这写了字节的单词叫 bite, 位的单词叫 bit 啊, bit, bit 和 bite 呢?不一样的啊, bite 表示一个字节, bit 表示一个位, 最小的一个单元叫,最小的一个单元叫 bit 啊,但是最小的一个结构 是八个位,它在造芯片的时候,它一造最小就是一下就造八个出来啊,那八个里面一位一位的存数据可以存八个数据啊,它都是一个小格一个小格的,这么存的啊。 啊,这个必须要知道啊,那你看我的实心值的数,如果是零,我存在我的一个最小结构里面,存在我的一个 byte 里面,那就是全都是零啊, 你说那个这个这个这个,哎呀,零,哎,零不太好举例子,就一吧,要存一呢,我用仅用一个位得了呗。那这剩下七个多浪费啊。 那没办法啊,你一写就是一写就是这八个,一下就八个啊,你就一个,你就只有一个字,那他也一下会占用这这八个,剩下七个全填零,这七个位全填零啊, 那存二的时候,你看他在里面存的就是这样,零,零零幺零啊,这返回来了,我们要算了啊。零,你就往往回算呗,幺二四八呗。一这一位是幺,这位是二, 那二这位上有数就就是二,剩下都是零,那就不用乘了啊。不用乘了,那二,这就是二了啊。这一的这位是零,是没有数啊。那如果是三的话,就是零。幺幺,如果全部都写满了,八位全部写满, 全部写满的总和是两百五十五。两百五十五是基数啊。有的同学刚开始学的时候,我刚学的时候也是犯浑,哎。一个字节二百五十六吗?不是二的八次方吗?二的八次方二百五十六,二的八次方是二百五十六,但实际上他是从零开始算的。 零就代表一个数,零到二百五十五加起来一共是二百五十六个数,所以在一个字节当中 可以存储两百五十六种状态。不同的状态啊。 啊,数字呢,是从零到两百五十五之间,一共是两百五十六种状态。但是你说最大的数是存多少?全部存满就最大,最大他就是两百五十五个数。如果转换成十进之数的话,最大就是两百五十五。 那还有啊,这个 f, f, 这个一会再说吧。 f, f 是 十六尽值啊,那十六尽值的话,那四个一就是它的最大了嘛?四个一是最大最大满呢,叫 f 啊。 嗯,科学家们把四个二尽值数拼在一起来,表示一个十六尽值数的。 哎,所以你看这个,这是一个字节,它会分成左半部分和右半部分啊,我们也叫做,嗯,高四位和低四位。那高四位、低四位分别用两个十六经之书的字母来表示,这个就是 f, f, 这个也可以用十六根数表示,那四个零就是零,下面第四位是三,所以它就零三。十六根数就表示零三啊。 那其他这是零二、零一、零零。在我们写程序的时候,为了标明它是十六根数,我们在前端需要加一个特殊关键词叫零 x。 零 x 表示它是后面跟的是十有进数。比如零 x f f 这个数如果转换成十进之数,那它就等于两百五十五啊。哎,零 x 零二, 转换成十进之数就是二啊。

五家单片机的堆站出站、入站是什么意思呢?我们一起来看一下啊。 堆站的话就是呃,单片机这个 room 里面划分的一个区域,就临时存储数据的,要比较临时出去 就叫做堆站。这个堆站呢,不用不用,我们手动去管,单面捷达自动会用,我举个例子啊,画个图,举个例子,比如说这个圆圈是 r m, 就是 数据传输器,然后在里面呢这么划分一个区域,现在转组这个数据的叫做堆站,在 r m 里面划分一个区域, 然后这个区域就叫做对战,这个命名人为对战,是这个意思啊,然后它有什么用呢?它主要有三个作用,第一个的话就是保存返回的地址, 就是比如说主函数正在跑,这个,呃,正在正在跑,然后呢突然调用一个底内延时函数,这个时候呢, c p u 法就执行一个底内,比如说 led 啊,闪烁一闪一灭, 他跑去执行滴泪了,那么这个时候等他返回来的时候,他怎么知道呃执行到哪一行呢?不会错乱,他因为他去执行这个自然数之前呢,已经把下一行将要执行的代码 这个地址保存到这个堆站里面去这个入站入站去保存数据了,然后执行完了之后呢, 他就会取出之前保存的地址,跳回到原来的位置继续跑,这样子的话这个程序就不会错乱,保证这个程序的稳定。 第二个保护寄存器,这什么意思呢?比如说我们站在嗯正常的跑代码,突然来一个这个中断,比如说定时器定时时间到了,然后触触发中断, 这个时候他反而去执行这个中断服务函数的,那么他进入中断的一瞬间呢?他把当前所有的寄存器的值全部保存到战区里面, 等这个终端服务执行完呢,他就把战区里面的数据逐个读出来,叫做出战还原,还原这个寄存器的状态 叫做保护寄存器。还有第三个作用就是临时保存变量, 比如说这个我们变异的时候啊,这个这个 c 点变异的时候,他会自动帮你把这个临时局部分量、局部分量还有中间运算结果保存到这个战局里面, 他是个临时区域,这是他的定义。什么是对战?然后他有什么作用? 然后什么是入站,什么是出站呢?其实我们写的比如止函数、延时止函数啊,什么按键止函数、 led 止函数都在用,背后他在自动的用这个出站,入站只是我们看不到而已。 入站就是传数据,把它传到站区里面,出站就是读取数据,他的规则的话呢,是先进后出,先传进去的数据, 读取的话是读取后面,先读取后面传进去的数据。为什么这样子呢?举个例子啊,比如说我们叠叠那个碗,叠那个盘子, 先放第一个、第二个、第三个、第五个、第六个,越放越高,那么我拿的时候肯定是从最上面开始拿,你不可能从中间或者从底下直接抽出来嘛?这样子一盘就就掉了, 拿的时候从最高的最上面的先拿走,叫做先进后出,就是这么来的。这就是关于这个堆站、入站、出站,他的这个作用和定义。

欢迎进入单片机 ai 智慧平台六周进阶教程介绍环节六周教学计划总览第一周,蜂鸣器,讲解基础控制原理。 第二周, led 指示灯讲解 i o 口输出控制,进行花样流水灯编程第三周,数码管显示,讲解静态动态扫描,进行多位数字驱动。第四周,步进电机, 讲解细分驱动原理和正反转与调速。第五周,串口通信,讲解 uart 数据收发与上位机交互。 第六周,按键输入,讲解消抖处理机制和外部中断应用。本课程共计六周,每周安排两次课,每次课包含两个标准学时,每个学时拆解为两个核心知识点精讲, 总计四十八讲。核心内容,蜂鸣器是一种将电信号转换为声音信号的电声器件,广泛应用于各类电子设备中,主要用于系统报警、操作提示音等场景。 什么是蜂鸣器?蜂鸣器发声原理与分类内置震荡电路,通直流电即可发声。有缘蜂鸣器特点,发声频率固定,不可调节。 无源蜂鸣器无内置震荡电路,需外部方波信号驱动。特点,频率可调,可演奏音乐。有源蜂鸣器有源底部通常有黑色密封胶,无源底部可见绿色 pcb 电路板。 单片机 i o 口输出电流通常仅十到二十毫安,无法直接驱动蜂鸣器发声,必须通过外部电路进行电流放大,利用三极管做开关, i o 口输出高电频时,三极管导通蜂鸣器得电工作, 低电频时截止停止发声。 led 灯的核心物理特性,单向导电性,电流只能从正极流向负极,反向截止 限流保护必须串联电阻,防止过流烧毁 led 芯片。 led 指示灯控制原理,电路驱动逻辑对比低电瓶驱动 i o 输出零时灯亮,利用单片机引角吸入电流能力强的特点,亮度更稳定。 高电瓶驱动 i o 输出一时灯亮,电流由引角向外流出,驱动能力较弱。 流水灯核心语法,移位操作,使用左移右移与暗位取反,实现 led 状态的循环切换。流程控制结合 f 循环实现单向流水,配合 ev 判断边界条件,可实现双向跑马灯。 数码管由七段 led i 港记与一个小数点 dp 封装而成,通过点亮不同段组合显示数字 共阴极。公共端 ggn d 对 应段输入高电频,点亮共阳极。公共端 g vcc 对 应段输入低电频,点亮共阳极。利用扣的关键字将断码表存入 room, 避免占用宝贵的 room 空间,实现快速缩影显示。 数码管动态扫描原理,多位数码管共断选引角,通过高频轮流切换未选引角实现点亮,利用人眼视觉暂流效应,在视觉上呈现出多位数字同时点亮的效果。 数码管消隐防鬼影技巧,在切换未选信号前,必须先关闭断选输出,如 p 零等于零 x 零零, 否则残留的断选信号会导致数字重叠,产生鬼影现象。步进电机的核心特性,开环精确定位,将电脉冲信号转化为精确角位仪的执行机构。 采用开环控制逻辑,无需传感器反馈即可实现高精度的位置控制。步进电机原理,驱动方案,电流放大,五幺单片机 i o 口输出电流较弱,无法直接驱动电机线圈, 需接入 u l n 二零零三达林顿管阵列进行电流放大,以提供足够驱动力。 三种驱动拍数特性,单拍线圈单次通电,粒距较小但功耗低,适合轻载。 双拍。两个线圈同时通电,粒距大,运行稳定但功耗较高。混合拍单双拍轮流通电,布局较小,粒距合适。 步进电机梯形加减速控制目的,防止电机启动停止时因惯性过大导致湿布或机械冲击,提升运行平滑度。 核心实现通过动态修改相邻节拍间的延时时间迭类,模拟加速、匀速减速的过程。 串行通信,单线传输成本低,距离远。并行通信,多线同时传输速度快,但线路多,成本高,抗干扰差。通信方式对比, ur 的 串口通信为异步全双工收发,互不干扰, 无需时钟同步。硬件交叉连接, tx d r x d 必须共地波特率一致, 收发约定同速率。按键工作原理,利用单片机内部上拉电阻,常态为高电瓶按键,按下时 i o 口接地电瓶变为低电瓶,来判断按键是否按下。 注意独立按键按下松开瞬间有五到二十毫秒的电瓶跳变,若不处理, cpu 会误判为多次按键触发。 解决方法,单片机对机械触点抖动检测,首先判断按键是否按下,延时十五毫秒,等待抖动结束,再次检测电瓶状态,接着执行按键对应的业务逻辑,等待松手后退出阻塞。 矩阵键盘极大节省 i o 资源,例如四 x 四键盘拥有十六个按键,但仅需占用四行加四列,等于八个 i o 口,相比独立按键节省百分之五十以上的资源。 矩阵键盘按键识别通用用逐行扫描法,一、依次拉低单行线。二、读取所有列线电瓶。三、检测低电频列定位交叉点。四、通过行列坐标映设计算出具体件值。 矩阵键盘逐行扫描算法,利用外部中断响应按键下降延或使用定时器状态机十毫秒,每次定时扫描可彻底解放 cpu, 提高工作效率。 ai 代码辅导答疑,告别全网盲搜,实时获得代码纠错与寄存器配置解答,提升编码效率。 ai 智慧平台赋能开发,基于 web cereal api, 通过网页直接连接硬件,摒弃繁杂的本地烧录软件 云端一键稍写实验动作,自动识别打分,生成个人专属学情报告,持续追踪学习进度。工具是桥梁,底层软硬结合的思维才是通向高级工程师的钥匙。欢迎使用 ai 智慧云平台。

兄弟们又学到了,这次这个问题有点深度,具体表现就是我一直玩 lvgl 之后发现运行一会就直接死机了,找了一上午总算是找到原因了,问题就出在操作系统这里,这个操作系统是之前写的, 之前运行起来没啥问题,这次用 m 七的内核,顺便使用了 f p u 和它自带的 lazy stacking 机制,简单来说就是切换任务的时候会根据是否使用了 f p u 来选择是否自动入站 f p u 的 寄存器,经过无数次的访真排查,我发现了问题就出现在这里,我在任务切换这里没有保存和恢复当前任务的 f p u 的 使用情况,导致只要有一个任务用了 f p u, 所有任务都会强制按照这个入站出站,有的任务在没有用负的时候入站,但是出站的时候就按照用 fpu 的 情况出站,就导致出站的数据不对,直接在出站的时候就挂了,这种情况也好改, 在切换任务的时候保存和恢复 r 十四寄存器就行,像这里就是储存上一个任务的 r 十四, 然后这里就是恢复上一个任务的。然后还有一个问题,就是为什么之前用 m 四的那盒没这个问题, 查了一下代码,之前没有用 lucy 入站这个机制,所有的入站出站都是默认按照储存 f p u 寄存器来的,也是躲开了一个大雷。

这是一个四十角的五一单片区,型号是 s t c 八九 c 五二二 c。 真正干活的是中间很小的一块芯片,叫做带 带,与周围引角通过很细的金线连在一起,它还可以长这样,只是换了个外壳,用法是一样的。 这款芯片有三十二个 i o, i o 就是 input output, 即可以作为输入,也可以作为输出。如果接一个 led, 控制 led 的 亮灭,这就是输出。如果接一个按键,按键可以改变这个角的电频,这就是输入 代。可以分这么几个区域,先说 r o m, 它是用来存程序的,你写好的程序最终会以二精致的形式存在这里。然后就是 cpu, 负责读取 r o m 里的程序并执行 cpu 工作的时候会产生一些临时数据, 存放这些临时数据的区域就是 r a m。 ram 比 r o m 小 很多,并且单片机断电后, ram 里的数据就没了, r o m 里的程序断电后是不会丢失的。剩下的这些统称外设,对于新手先了解 i o 就 行了。后边这几个可以先不管。 现在我们尝试让这款单片机干活,四十角是 vcc, 二十角是 gnd, 直接通电后,芯片是不会干活的。想让芯片干活,得让三十一角接高电瓶,然后在十八角和十九角之间接一个晶振,再各接一个电容到地, 最后还需要一个复位电路,具体长这样。现在这个状态就是单片机最小系统就可以正常跑程序了。清除了这些后,就可以动手实操了,你可以 diy 一个最小系统,或者直接买现成的,十块钱左右就能买到。 写程序要用到 q 这个软件,把程序翻译成 hex 文件,再用烧录软件把 hex 文件烧录到单片机里。在烧录前还需要一个下载器,这个也不贵,几块钱,下载器连接电脑与单片机 程序就能烧录进单片机里了。看到这里,相信你已经对单片机有个初步了解了,下期视频教你花样点灯,拜拜。

一口气带你认识电子工程领域的入门基石,五一单片机,他堪称嵌入式世界的启蒙导师。若将嵌入式产业比作科创沃土,五一单片机便是人人必备的开山斧, 精准扣开电子世界的大门,更是电子制作与入门研发的核心枢纽。无数电子爱好者的创意雏形、 学生课程设计及简易智能设备原型,都离不开它的支撑。追溯起源,早期电子控制依赖复杂笨重的分立原件,调试繁琐且稳定性差。直到二十世纪八十年代初, 英特尔推出 mcs 五十一系列单片机,首次将 cpu、 存储器、 i o 接口等核心功能集成于单块芯片,开启单片控制新时代, 让电子控制从复杂系统简化为一块芯片。搞定指甲盖大小的原件,即可实现灯光闪烁、电机转动、数据采集等基础功能。即便侵入式技术飞速迭代,五一单片机仍是全球电子入门教育的标配。其架构简洁清晰, 核心指令集仅一百一十一条,硬件资源布局规整, i o 口控制、定时器中断、串口通信等功能模块通俗易懂,既保留电子控制核心逻辑,又大幅降低入门门槛,零基础新手也能快速上手,实现简单控制功能。 从实验室研发到成为中小学电子课创课项目入门竞赛的常客,五一单片机早已超越普通电子原件, 成为嵌入式入门教育的不朽经典。他以简洁架构与稳定性能,承载着无数电子爱好者的科创初心,见证了一代又一代工程师的成长至今。

大家好,今天我们来介绍一个基于五幺单面机的电子秤设计,我们首先介绍一下各个模块,这个是五幺单面机,这是复位按键,这是金正,这个是 h x 七幺幺压力传感器,然后接的是秤架,这个秤架它是十千克的称重的, 所以如果超过十千克的话,这个蜂鸣器它就会报警。然后这个按键它是去皮功能,这个是蓝牙模块,这个是 lcd 幺零二用来显示的,这个是电源插头,这是电源的开关,我们可以打开电源开关, 现在显示屏显示的是欢迎界面,然后下面显示的是车子的质量。我们现在直接把手机的蓝牙给打开,找到蓝牙, 然后找到 j d y 杠三幺,现在蓝牙模块是闪烁的,我们点击配对,然后点击一二三四密码,输入一二三四,确定现在还闪烁的哈,但是我们要进入这个 app, 进入这个 app, 然后点击 j d y 杠三幺正在连接,连接成功,连接成功了之后,这个蓝牙模块它就不闪烁了,那我们现在来看一下。首先我们测一个这个打火机, 测的他的质量是差不多二十一克,二十克差不多二十克,我们现在拿下来,我们看到测的质量在显示屏上面会显示,同时也通过蓝牙发送到这个手机上。我们现在看一下去皮功能,我们先把这个盘子放上来, 盘子放上来之后,他显示测得的质量差不多十六克,这里也会显示,这里会显示,那么我们现在按这个去皮,长按哈长按一下好放手,好,现在就去皮,完成了,去皮之后,我们再现在把这个打火机放上来。 好,右侧的是二十克,那我们现在把打火机拿走,现在是零克,我们再把盘子拿走,盘子拿走之后再把盘子放上来,它是不显示重量的,因为它已经去皮了嘛, 这个就是电子秤的全部功能哈,如果有需要资料和实物的话,大家点赞收藏,然后扫这个公众号去获取哈,感谢大家的观看。

好,继续听啊,我给你们讲的这些呢,都是重点,关键点啊,不关键的不讲啊, 我们后面写程序的时候,我们需要熟练的把二斤之数转换成十六斤之数和二斤数转成十斤之数,这个要熟练转换 二进制、转十进制和转十六进制啊,这要熟练转换,那我们讲点技巧, 八进制不用管啊,八进制不用管啊。这张表格呢,你看它是二进制,十进制和十六进制都有,八进制也有啊,那八进制我们也不用管它啊,这两排不用管它, 十进至零一二三四五六七八九十十一、十二十三十四十五,一直到十五啊, 对应的二进之数啊,来,我们先要看二进之数。零,那就是就四个零一零零一二零零一零二三是零零幺幺。 这个数啊,他都是从右往左依次增大的啊。那咱们的实际指数呢?是最右边是个位吗? 再往左他是十个十百千二斤指数最右边的那个数啊,他最小,他的位权啊,位权最低。哎,所以我们你看,我们说三的时候,是从右边往左开始看啊,零零幺幺幺幺, 一上有数就是一二上,第二位上有数就是二,这两位数上没有,那就零,所以一加二就等于三。 这个四呢是零零,从左往右数是零幺零零,从右往左是零零幺零,那也是一二四八,四上有数。 第三个数一二四八。这么数啊,你从右往左就一二四八,一二四八,你先把这四个你得先记得滚瓜烂熟啊。一二四八,有一就加,就加那个一二四八就对的那个位置的数没一就不加。 五零幺零幺一二四八二的这位不加吗?一四有一加四得五六,中间两位二四七幺二四, 明白了吗?怎么加?先把这四个二进一数转换成十进一数啊,就先会这个怎么加?何俊峰,我问你这个怎么加?这个二进一数转换成十进一数, 嗯,四加八,四加八,对吧?四加八十二是吧?哎,对了啊,连何俊峰都学会了,那你们肯定都能学会啊,哈哈哈,何俊峰,我们最小年龄的啊, 那其他也是一样啊,零零零幺是吧?幺二四八就八一幺二四八幺幺加九啊。哎,这首先你把二进数得转成十进之数啊, 那十六进之数来看一下。十六进之数啊,一直到十这里 到到九这里吧。九零到九的十进之数和十六进之数,它们的字母是一样的,都是零到九 到十。十六进之数的十开始不一样了,十开始变成 a 了,所以这个 a、 b、 c、 d、 e、 f, 看到吗? a、 b、 c、 d、 e、 f。 我们需要快速的把二斤之数转换成十六斤之数啊,每四个二斤之数代表一个十六斤之数,快速转换啊。来,我给你们教这个技巧, a g 幺零幺零,这是一个特殊的字, 我们现在学,咱们学单面机,学 c 语言的时候,写程序的时候就是跟零一打交道了,那在计算机里面就是零一,你就记住幺零幺零幺零幺,开头紧接着是个零幺零幺零幺零啊,就是 a, 这个,这个要死记幺零幺零就是 a 啊,那这个呢?我们写程序的后面我们会经常用到,我,我想测一下这个程序好不好使,我会在单片机的某个引角,我让他输出一串方波来, 输方波的时候我就发,我就给那个引角发幺零幺零幺零,我连续给他发幺零幺零, 单片机那个引角上它就是高低高低高低电频就出来了,我试播机一打,哎,幺零幺零幺零有说明我的程序啊,在这个位置它是正常的啊,就这么去理解啊。

大家好,今天我们来介绍一个基于五幺单面机的智能垃圾桶设计,它是带语音播报,还有 wifi 控制的功能的。 我们首先介绍一下各个模块,这个是五幺单面机,然后这是复位按键,这个是金正,这个蜂鸣器和黄灯组成声光报警,表示垃圾满了。然后这个是语音播报模块,这里接的是小喇叭,这个是 wifi 模块, esp 八二六六。 然后这个是 u n n 二零零三,用来驱动这个步进电机啊,这个步进电机他用来关闭和打开垃圾桶,然后这两根线他接的是红外传感器,他感应到人,他就会打开垃圾桶, 如果过一会没有人了,他就关闭垃圾桶,然后这个他接的这一个红外感应,他是感应下面的垃圾的,如果垃圾满了,那就不打开垃圾桶了,就需要用这个手动,这个手动去打开了, 这是电源的插头,这是电源开关,我们打开电源开关啊,欢迎使用智能垃圾桶,打开之后他会欢迎一下,然后我们用手去感应一下,垃圾桶已打开,过一会他会自己把垃圾桶给垃圾桶已关闭, 垃圾桶已打开,嗯,把垃圾扔进去,垃圾桶已关闭,垃圾桶已打开,再扔一点,垃圾桶已关闭垃圾桶已打开,嗯,垃圾桶已满。如果朋友感应到这垃圾满了,然后他就 蜂鸣器报警,垃圾桶已关闭,然后这个指示灯他就会亮,垃圾桶已满。现在感应到他就不会去打开了, 现在感应到了下面有灯在,垃圾桶已满,他就不打开了。这个时候我们就要按这个按键去打开垃圾桶已打开。好,垃圾桶已关闭垃圾桶已打开垃圾桶已满好,我们现在把垃圾取出来,取出来一点 好,他又可以自己去关闭。打开垃圾桶已关闭垃圾桶已打开,我们现在来连一下 wifi, 垃圾桶已关闭,来,我们拿手机找到这个 wifi, 然后找到这个 wifi 云,输入密码,一二三四五六七八,然后连接,现在是连接成功,连接成功,进入这个 app, 点这里连接好,现在是连接成功,现在就可以用这个 app 打开。关闭了。垃圾桶已打开垃圾桶已关闭垃圾桶已打开 好,垃圾桶已关闭。同样的,如果是垃圾桶已打开,垃圾满的情况,这种垃圾已满的情况下, 垃圾桶已关闭。好,现在去感应它,垃圾桶不会打开。同样的,我们用这个 app 可以 控制它。打开。垃圾桶已打开垃圾桶已关闭垃圾垃圾桶已满 垃圾桶已关闭。这个就是智能垃圾桶的全部功能哈,如果有需要资料和食物的话,大家点赞收藏,然后扫这个公众号去获取哈,感谢大家的观看!