C++随笔 起因是群里同学问的代码执行结果,直接把图放上来:一个是j的输出值,一个是k的输出值。答案是0和0;开始还觉得挺简单的,但是如果让我答还不一定能答对。函数里局部变量j的值赋值为全局j的值,而全局变量j没有赋值,默认初值为0;而判断语句判断为真,执行局部变量k的赋值,if语句没有加上花括号{},局部变量k有效范围就是这一句话,如果在if中加上花括号,输出k值,可以看到k值为1。if执行结束后k值被释放,再输出k值的时候,就为全局变量k的值了,所以输出为1....
LCD仿真卡在delay_ms问题 STM32学习时间不长,今天LCD屏幕到了,要把之前的程序改到现在的开发板上。在LCD_Init()函数执行卡住,仿真调试后找到是卡在了delay_ms()里,开始我还以为是代码有问题,重新添加了例程的代码,无果。后来仔细查看代码才发现,delay_init()函数被我放到了LCD_Init()的后面,而LCD初始化使用到了延时函数,调整后解决。虽然是一个小的问题,自己解决后也会很开心。而且也...
409. 最长回文串 题目要求以及示例:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。解题思路:A-a之间共包含了58...
836. 矩形重叠 题目要求以及示例:矩形以列表 [x1, y1, x2, y2] 的形式表示,其中 (x1, y1) 为左下角的坐标,(x2, y2) 是右上角的坐标。如果相交的面积为正,则称两矩形重叠。需要明确的是,只在角或边接触的两个矩形不构成重叠。给出两个矩形,判断它们是否重叠并返回结果。示例 1:输入:rec1 = [0,0,2,2], rec2 = [1,1,3,3]输出:tr...
1160. 拼写单词 题目要求以及示例:给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。假如你可以用chars中的『字母』(字符)拼写出 words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表words中你掌握的所有单词的 长度之和。示例 1:输入:words ...
面试题 01.06. 字符串压缩 题目要求以及示例:字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。示例1:输入:"aabcccccaaa"输出:"a2b1c5a3"示例2:输入:"abbccd"输出:"abbccd"...
169.多数元素 题目要求以及示例:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr...
695. 岛屿的最大面积 题目要求以及示例:给定一个包含了一些 0 和 1的非空二维数组grid, 一个岛屿是由四个方向 (水平或垂直) 的1(代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,...
最长上升子序列 leetcode题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。思路如下:遍历nums数组,分别找到以nums[i](nums.size()>i>=0)为结尾的最长上升子序列,可以将每个数值存储到数组中,数组中最大...
ESP8266三种工作模式 三种工作模式即STA、AP、STA+AP;对于前两种都比较好理解,主要是第三种的用途。今天看到,积累一下。STA模式(Station):工作在STA模式下的8266就像是一个接收机一样,它可以接收来自无线路由器发出的信号,实现了8266通过接收路由器的信号而能够连接互联网,如果把8266安装在硬件设备上,就可以实现硬件设备的远程控制。可以理解为此时8266是主动去连接别人,即此时的8266...
SPI实验 一、简介 关于SPI的特征: 关于4根线中除了数据线与时钟线的片选信号,从选择脚管理: 4根线中的时钟信号:SPI_CR的CPOL和CPHA位确定了数据在第几个边沿以及是上边沿还是下边沿触发,并且将数据进行锁存。下面举个例子来帮助理解: 配置时钟信号与极性的目的就是与从机的时钟与极性相严格匹配。之后就是传输数据的格式...
RS485实验 一、简介485本质上也是一种串口,与RS232相同,不过是对于电压、阻抗的定义有区别,造成的应用场景也不同。RS232是早期出现的接口电路,其应用范围最广,但是RS232接口有哪些缺陷呢? 之后出现了485接口: 485接口对RS232的缺点进行了优化,它所具备的特点为: 485的结构图如下,描述了将微控制器中的电平信号转换为485的电...
STM32中IIC实验 一、简介在之前学习的时候也接触过IIC这个词。不过一直没有深入学习与理解。首先,I2C的简介如下:要了解的一些知识:①:空闲状态:②③:开始信号与停止信号:④:应答信号⑤:数据有效性如何判断当前传输的数据是否有效,以及判断数据有效性的规定如下:⑥:数据的传送二、实验本次要操作EEPROM(24C02),24C02的原理图如下:...
STM32DAC转换 一、简介类似于ADC模数转换,DAC有许多相似的地方。DAC模块的主要特点如下: 需要注意的几点是:PA4、PA5需要设置为模拟输入,而不是模拟输出,否则将不能产生正确电压。采用哪种对齐方式就写到相应寄存器中:DAC触发的具体描述:硬件连接如下:具体的设置步骤:...
STM32内部温度传感器实验 由于本次实验基于ADC转换实验,所以有很多东西在ADC的基础上实现。内部温度传感器一、概念上次见过温度传感器在通道16的图:关于内部温度传感器的描述:内部温度传感器的使用事项:第二项就是关于如何使用模数转换测量当前温度值的,内部温度感应器肯定测量得到电压值,将电压的连续量转换获得离散量。再通过电压与温度之间固定的关系,得到...
STM32ADC转换 ADC模数转换一、概述ADC翻译过来是模数转换,意思就是将外部世界采集到的模拟量的数据信息通过ADC变为计算机可以识别的数字信号。STM32的ADC具有以下特点: STM32最多所带的3个ADC控制器的ADC通道与引脚对应关系:注:有PF引脚的为144引脚的芯片(21个),如果小于144位,如64位、100位的只有16个外部通道(21个-5个PF引脚); 通道分...
待机唤醒实验 待机唤醒实验一、概念待机唤醒可以很容易从字面意思理解,嵌入式设备可用资源较少,所以合理控制功耗也是衡量性能的一个指标STM32的低功耗模式可以分为一下三种: 最后两条,在运行模式下,就是指没有采用低功耗模式的情况下,如何降低功耗。Stm32三种低功耗模式对应需要的设置以及中断唤醒方式如下,本次实验使用WKUP(固定是PA0)唤醒待机模式的STM32:二 、待机...
RTC时钟 RTC实时时钟一、概念后备区域是指STM32待机的时候还可以保证时钟运行,时间准确。RTC所采用的时钟源:一般使用比较准确的外部时钟源RTC工作原理图: 从上图可以将RTC划分为两部分:后备寄存器就是BKP备份寄存器: RTC相关的寄存器::RTC控制寄存器高位:用来使能或者禁止溢出、秒、闹钟中断。:RTC控制寄存...
USMART组件 USMART调试组件一、原理首先,啥是USMART啊?简单来说就是通过串口与开发板进行交互的工具。使用USMART的目的是减少使用J-LINK调试或者修改代码输入参数再进行下载等操作,通过串口传递参数,从而简化程序修改过程以及减少FLASH损耗。USMART调试过程如下:USMART具有的特点: USMART文件组如下: 二、实验实验...
定时器输入捕获实验 定时器输入捕获实验概述这个实验终于用到的是最后一个部分:捕获部分:每次捕获过程是如何实现的?整体过程是上面这个图,可以划分为四个部分,下面按照四个部分分别研究。步骤一:输入捕获滤波器设置了采样次数,在捕获时过滤抖动。 步骤二:捕获上升沿或是下降沿步骤三:一般情况就将IC1映射至通道1;IC2映射到通道2.通道四:分...