- 博客(58)
- 收藏
- 关注
原创 蓝桥杯嵌入式第15届真题-个人理解+解析
因为最近蓝桥杯快要开始了,我舍不得米白费了,所以就认真刷刷模拟题,但是我感觉真题会更好,所以就看了一下上届的真题。不过它是真的长,我看着就头晕,但是还是把几个模块认真分析了一下就还是很容易写的。#分析的话,频率超限和频率突变,这位博主就写的很好,所以我就直接使用他的来了,很清晰,所以这里更多的是以我的视角一起来分析一下想法。题目的话,就不截取了。
2025-04-04 22:45:33
702
原创 蓝桥杯嵌入式第15届省赛真题---按键状态机
###写这个的原因是因为,看了某个博主,他说他使用按键状态机来实现按键检测的。所以今天我们也来试一试按键检测。
2025-03-11 22:08:57
466
原创 对于4t测评---采集显示与通讯
#这道题困了我很久,因为串口接收一直就是出些小bug。题目:硬件平台CT117E/蓝桥杯嵌入式竞赛实训平台困难程度困难题干正文微控制器:STM32G4系列ARM Cortex M4微控制器硬件平台:CT117E-M4嵌入式竞赛实训平台模拟量输出常见于光照度、温度、压力等传感器,这些传感器能够将物理量转换为连续变化的电信号(电压或电流),微控制器通过AD转换单元,将模拟量转换为数字量,并通过计算获得传感器真实数据。增加AT指令查询、设置功能。(1)微控制器编程基础。
2025-03-06 15:32:40
1275
原创 页,页框,页表的关系
我们可以看到上面的那个图,我们以为可以使用的内存大小 是那么多个页,但实际上,很小一个。通过 老大---操作系统不停地操作 才让我们误以为可以使用的内存大小很大。##学习于王道考研 以及 里昂学长这两位up主。根据自己感觉画出的,哪里错误请指出。
2024-11-08 16:29:48
720
原创 STM32的隐藏定时器---DWT
DWT可以实现延时功能,因为它有一个32的计数器CYCCNT,这是一个向上计数的计数器,当它溢出时会自动清零并重新开始向上计数,它的频率就是内核的主频。因为我们的使用的是72MHZ的频率。2.接下来的switch()中的 判断中的逻辑, 第一次的统计并不准确;1.对于 getDWTCountDx() 这个函数只是我们用来计算时间, 并且它的最大测量时间是 59秒。超过59秒的不能使用这个函数了。(只有 Coretx-M3以及以上的系列的芯片才有这个外设。好了,以上就是在cubemx的所有需要更改的配置。
2024-10-30 22:08:28
1172
2
原创 STM32的按键中断读取和串口中断读取
HAL_GetTick() --- >使用 hal库里给Delay()函数中使用到的函数。我们可以看到这个弱函数,这个就是我们需要的。//是保持上次的取值。本人为了适应自己的板子配置,会有些许地方进行了改动,因为没有那么多米去购买材料来焊接老师给的图,所以使用野火指南者来平替。HAL_UART_Transmit() 改成为 HAL_UART_Transmit_IT()。同时,我们的WS_Debug()这个函数 是自定义的 串口通信函数。因为中断传输,所以是不需要阻塞处理的,所以将后面的那个1 给去掉。
2024-10-30 21:39:15
446
原创 关于STM32型号按键读取的不同思想
想要读取的那一位,我们设置为0 .其他的都为1 , 这个寄存器是32位的,所以高16位,我们都给1。如果想多读连续几位, 比如说读5位,那么按键范围就是 sw1- sw5 ---- 0xffe0 低16位 也就是 这个---1110 0000。4.这里的判断是 以io的值进行判断 , 请看到我的注释处 罗列出来的二进制,可以看到 键值与0的位置相对应。1.GPIOx 是 你按键所在的GPIO, 我这里的按键1 是在 PA0 所以我给的是 GPIOA。今天,我将使用寄存器的角度 来分析读取。
2024-10-29 21:55:17
722
原创 使用matplotlab绘制多条形图
这里 是进行条形图的绘制 plt.bar(x,y,width= , label= ) width 是设置条形图的粗细, label 是写标签,为了区别。#设置显示中文 和 负号。
2024-09-05 15:50:37
468
原创 matplotlib黑马程序的一个小训练解析
year也是一个数组 ,并且要和list(x)的一一对应,并且_year在这个传参是标签,就是把list(x)里的数,用_year里的字符串给一一覆盖了。##关于matplotlib的中文显示,我是从另一个blog中获取。rotation是角度 你可以自己定义它的角度。list(x) 是这里只能用数组。
2024-09-05 09:38:00
330
原创 汉诺塔的最简单讲解
在棍子1处,按照栈的顺序,取栈顶的碟盘和其相邻的碟盘 将相对小的碟盘移动到棍子2处,相对大的碟盘移动到3处。好,此时 棍子1处的新的栈顶碟盘相对于棍子三处的碟盘是不是 又变成相对大的碟盘了。欸,我们既然使用了递归,就要有将问题不断细化的思想,将问题分为若干个小问题,把小问题解决了,这个问题不就也解决了吗。这个时候,(棍子1处)一个碟盘,它就是最大的碟盘,那么,我们直接移动到(棍子3处)目的地。这个时候,(棍子1处)最小的碟盘先移动到棍子2处,我只有两个碟盘,那。1.先将最小的碟盘从棍子2处移动到棍子1处。
2024-09-03 15:33:08
262
原创 C++中的类的创建以及模板类的使用template class
对于C语言来说,我们通常使用结构体(structure)以及函数(functions) 对一个事物的属性以及它可以完成的功能进行分组,从而实现编程中的sea language。那么C++,作为C的plus版本,面向对象的它,照样可以实现此编程方法。同时还更加高效,我们只需要一个class 便可以完成所有操作。
2024-08-18 23:13:25
856
原创 什么是内联函数?
对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编译器需要重新更换一次所有的代码,否则将会继续使用旧的函数。是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。,在调用函数之前需要对函数进行定义。如果已定义的函数多于一行,编译器会忽略 inline 限定符。如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字。在类定义中的定义的函数都是内联函数,即使没有使用。##学习C++时有感而发。
2024-07-05 10:00:04
137
原创 蓝牙小车的具体实现
举一个例子:比如说我的占空比为50%,那么在这个一个PWM的周期内,电机处于高电平的时间是只有周期的一半,低电平默认为0,那么我们计算等效电压—( T(on) * 5v + T(off) * 0v ) / Ts = 等效电压V 所以50%占空比可以等效为2.5v电压。2.USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可以自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。
2024-05-09 23:43:34
794
原创 STM32的外设总了解
3.RCC—复位和时钟控制 这个外设十分重要,因为其他的外设再上电的情况下默认是没有时钟的,那么不给时钟的情况下,操作其他外设是无效的,外设不会工作,因此我们需要RCC来配置相应外设的时钟—使能其时钟。7.TIM—定时器(十分重要,因为是经常使用,功能最大的外设)—用处:生成PWM波形,测频率,配置成专用编码器接口。15.RTC—实时时钟(原理是时间戳秒数的总数来计算—年,月,日,时,分,秒),可以做车载时钟。16.PWR—电源控制(三种模式:1.睡眠模式,2.停止模式,3.待机模式)
2024-04-30 14:40:12
1327
原创 flutter类的细节
{% p center h3,1.第一种:继承—class Man extengds Person 对于它而言便是Person里面的方法以及属性都需要实现, 而第二种便是:多态—class Man implements Person,对于它来说是来实现接口的,若各位学有余力可以去自学一下"设计模式"这门课,废话不多说,我们来具体看看它的具体代码实现%}这里便是多态的实现,我创建了一个接口,所以便用了implement的方法来实现函数的创建。
2024-04-23 10:41:05
676
3
原创 刷题时碰到的一个简单的接收问题
这一道题可以先用暴力dfs解出范例,然后再用记忆化搜索进行进一步优化,最后可以使用正序dp或者倒序dp进行进一步优化。给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。就是使用eval()函数,这个函数具体就是把接收的数据转换为相应的正确类型,很方便。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。我们从这个根为5的递归搜索数的最小子叶0,1进行模拟。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。解释:你将从下标为 1 的台阶开始。
2024-04-08 10:53:38
211
原创 ACWing: 1049 大盗阿福
阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。第二行是 N个被空格分开的正整数,表示每一家店铺中的现金数量。作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?这条街上一共有 N家店铺,每家店中都有一些现金。接下来的每组数据,第一行是一个整数 N。#记忆化数组优化暴力bfs。
2024-04-05 22:02:17
323
原创 栈(顺序栈)实现Language C
define MAXSIZE 10 //这里我就定义它有10个连续空间//静态数组存放栈的元素int top;//栈顶指针--->一直指向栈顶}SqStack;//声明一个栈//初始化栈s.top = -1;//将栈的指针设为空补充一个小知识:如果我们使用---整型来定义数据结构的指针时,我们会使用 -1 来表示它此时指向为空,就相当于我们利用指针类型来定义的 中的NULL,空指针一样。-2可以表示为该空间暂时空闲。其实我们也可将 s.top = 0;
2024-03-01 19:37:13
555
原创 c语言链表实现
(图片截取至王道数据结构)线性表的链式结构称为线性链表。逻辑结构---是由结点以及结点的指针指向下一个结点相连接在一起的。物理结构---是不相邻的结点分别占据随机的存储空间(人为分配好的,并非是野指针),并且结点占据一部分空间,指针占据另一部分的空间。头指针指向第一个结点(也就是我们找到了第一个结点,便可以获得整个链表)#include //我们后面要动态分配内存//结点要存放的数据//结点的指针,用来指向下一个结点。
2024-02-27 19:39:51
317
原创 MCU独立按键单控LED实现
轻触按键:相当于是一种电子开关,按下开头接通,松开时开头断开,实现原理是通过轻触按键内部的金属弹片受力弹动来实现接通和断开。注意:GND为负极,按下按键时相当于连通负极,传到给寄存器时反馈为0V,低电平。松开独立按键则为高电平---5V。K1对应的是P3_1 K2对应的是P3_0 注意一下。//P3为独立按键处所控制的寄存器if(P3_1==0) //当k1按键被按下时if(P3_1==1) // 当k1按键被松开时以上便是我们这篇文章所要用到的基本原理。
2024-02-25 17:24:25
1075
原创 初识51单片机
单片机,英文名,Micro Controller Unit,简称MCU(tips:有人会简称它为CPU,但不是如此,CPU其实被集成在MCU中)。内部集成了CPU,RAM,ROM,定时器,中断系统,通讯接口等一系列电脑的常用硬件功能。单片机的任务时信息采集(依靠传感器),处理(依靠CPU)和硬件设备(例如电机,LED等)的控制。单片机跟计算机相比,单片机是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。
2024-02-24 09:30:00
2647
原创 回调函数(Language C)
通俗的来讲,它是一个函数指针变量(注意:它不是指针函数,它们是不同的一个概念)函数指针---指针存储着一个函数的地址指针函数---该函数的返回值是指针类型为何要使用函数指针?其实在企业级项目开发中,开发为了避免代码壅余,以及封装细节,多重调用,日常维护中减轻运维的所需要的时间金钱成本;从而大量的使用回调函数作为别的函数的参数---怎么创建出这个神奇的回调函数呢?也就是我们说的函数指针。怎么创建函数指针&如何使用?首先,我们需要知道,指针存储地址时,往往获取变量的首地址。那么该如何获得函数的首地址呢。
2024-02-23 00:08:08
419
原创 套接字与套接字编程
Socket 是一套用于不同主机之间通信的API,工作在TCP/IP协议栈之上(传输层)。socket在牛津字典里译为---插座,插孔。我们称呼的时候叫它套接字,但是去理解它的时候可以以这个插座,插孔来思考。比如说,将小明的主机,比作电冰箱,而服务器主机比作插座;那么电冰箱要同电就需要插头(socket)将插座之间连接在一起,那么它们是不是就是实现了通电,类比的想,socket就是相当于小明的主机和服务器之间的那个socket,通过socket进行数据传输,这里的数据就相当于插座提供电---提供服务。
2024-02-22 17:58:30
307
原创 蓝桥杯每日一题(python)
#斐波那契数列的应用 --- 题目题目:如果数组 A = (a0, a1, · · · , an−1) 满足以下条件,就说它是一个斐波那契数组:1. n ≥ 2;2. a0 = a1;3. 对于所有的 i(i ≥ 2),都满足 ai = ai−1 + ai−2。现在,给出一个数组 A ,你可以执行任意次修改,每次修改将数组中的某个位置的元素修改为一个大于 0 的整数。请问最少修改几个元素之后,数组 A 会变成一个斐波那契数组。
2024-02-14 21:01:46
3628
原创 蓝桥杯每日一题之内存问题
结果的表示方式为:aGBbMBcKBdB,其中 a、b、c、d 为统计的结果,GB、MB、KB、B 为单位。题目中的数据很规整,和上述给出的例子类似,除了类型后面有一个空格,以及定义数组时 new 后面的一个空格之外,不会出现多余的空格。占用空间为 10 Byte。String:字符串变量,占用空间和字符串长度有关,设字符串长度为 L,则字符串占用 L Byte 的内存空间,如果字符串长度为 0 则占用 0 Byte 的内存空间。long:长整型变量,一个 long 型变量占用 8 Byte 的内存空间。
2024-02-11 13:10:51
1352
原创 蓝桥杯每日一练(python)B组
给定 n, m ,问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x = n mod y。对于第一个数的取模为1,n % i = i - 1 (这是不同数取模的结果) 当 n % i!思路:由于取模运算是取两个数相除的余数,而且在python中 % 与 mod函数 他们输出的结果是相同的。由题目可知,一共有m个数,若是取模时,假设我现在取k个数,前k个数有。k个不同的模,当我们取到第k+1个数时,它应该会有k+1个不同的模给到我们,否则它就有相同的模出现。
2024-02-09 15:14:45
1048
原创 线性表的顺序结构—顺序表
/头文件//宏定义#define OK 1 //成功的标志#define ERROR //失败的标志//取一些别名// 这里按照你以后想要传入的数据类型为主 这里我用int//函数的类型,以及返回值的类型 状态#inlucde 这里引用该头文件是为了下面的内存动态分配而引用内置函数所准备的。// 基地址 指针是特殊的数组int length;//数组长度}Sqlist;Sqlist L;int k, l;OutPut(&L);OutPut(&L);
2024-02-08 21:24:33
937
原创 浮点数的绝对值
对于这到题最关键的其实就是绝对值函数---abs()题目描述:输入一个浮点数,输出这个浮点数的绝对值。##dotcpp刷题遇到的。知道这个就可以开始做题了。
2024-02-04 21:54:57
595
原创 2024日常训练
可能方案一,方案二形式不同,其实思想一样的,都是判断一次分母是否为0,不是0的时候执行下列命令(都是执行一次)这里就相当于 int() --- 这个整型类型转化函数 ,然后我传入的一些变量通过这个映射,返回相应的值。对于map()函数 map是python内置函数,会根据提供的函数对指定的序列做映射。题解:这里主要考察我们对那个python中的格式化替代。3.一个非常小的细节就是,需要判断分母是否为0。二是:"{:.9f}".format(num)一是:"%.9f".%(n)第二题:计算分数的浮点数值。
2024-02-04 21:22:31
229
原创 c语言实现greedy snake(贪吃蛇)
include //与绘图文件有关#include //两个都需要#define SNAKE_NUM 500 //宏定义 规定好蛇的最大节数,以防溢出enum DIR //枚举初始化方向UP,DOWN,LEFT,RIGHT,我们在第四行引入的头文件是为了产生一个生成随机数的种子(所以我们引入了该头文件)5函数名称: rand函数原型: int rand(void);函数功能: 产生0到32767间的随机整数(0到0x7fff之间)
2024-02-02 17:17:21
1134
原创 大一期末作业之素数
一个大于1的正整数,假如除了1和它本身以外,不能被其他正整数整除,就叫素数。如2,3,5,7,11,13,17......素数【质数】的性质【1】质数p的约数只有两个:1和P。3.在对该变量进行从(2,根号num+1)进行遍历,进行整除,如果找到一个因子,那么,这个数就是非素数,加入到列表中。一个大于1的正整数,假如除了1和它本身以外,不能被其他正整数整除,就叫素数。如2,3,5,7,11,13,17...3.在对该变量进行从(2,根号num+1)进行遍历,进行整除,如果找到一个因子。最末尾的数可以改变。
2024-01-20 09:30:00
481
原创 c语言的练习---BCD解密
初看这道题的时候,可能很多人就想选择放弃,但这道题实在不是考察我们对于编码的能力;而是我们的数学能力。就拿它的输入样例---18,来举例。我们来看---在十进制中,是18D,而我们用二进制来描述18的时候是---00010010B而那个用十六进制来写的话是---0X12---在这里的x来提示这里是十六进制。那么我们接着来看,0001可以写作---1 而0010可以写作---2,将它们两个拼接在一起便就是十六进制的12X,此处的X所指代的是十六进制。
2023-12-24 09:00:00
788
原创 c语言的初始学习(练习)
因为python的数据结构理解的不是很清楚,而网络上的python数据结构课的讲解少之又少,所以只好通过c语言的学习,来间接学习一些相关内容,可能blog的更新不频繁,还有会出现杂乱的现象,恳亲各位的谅解。这就是用c语言倒序输出的步骤,但有小伙伴就会问:“为什么我们不能直接用那个"%d%d%d",后面间三个变量倒过来,就好了呢。也就是说,当我们的使用案例出现末尾是0的情况,那么我们这个操作就失效了,相反这个操作,就是使用相加合并,反而就避免了这个情况的出现。那么我们先看看这个题目吧,这是初始语法的应用。
2023-12-23 09:15:00
598
原创 python蓝桥杯的回形取数
根据题目描述可以知道,我们传入的是一个矩阵。在这里我们使用列表来实现矩阵。#来源于蓝桥杯的训练。那么,我们直接看代码。
2023-12-17 13:00:51
1240
1
原创 python实现最小二叉堆---最小堆结构
insert(key)方法直接加入到列表末尾,无法保持“堆”次序,虽然对其他路径的次序没有影响,但对于其到根的路径可能破坏次序。在我们学习最小二叉堆代码实现之前,我们需要去了解一下,什么是最小二叉堆(也有最大二叉堆,也叫最大堆)。delMIn()方法---移走整个堆中最小的key:根节点heaplist[1]对于这个问题,我们得先知道“优先队列和二叉堆”它们之间的关系。我们学会了插入节点,那么相同的删除节点,也是轻而易举。那么,我们开始一步步的最小二叉堆的代码实现吧。逻辑结构上是为二叉树,但是实际实现是。
2023-12-17 00:16:54
798
1
python数据结构的无序表完整补充
2023-11-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人