- 博客(78)
- 收藏
- 关注
原创 使用HAL库实现0.96寸OLED的显示
OLED的实现需要包括oled.c,oled.h,oledfont.h文件,我们可以在淘宝卖oled模块的商家详情页中获取例程和这三个文件,其中很多都是标准库实现的,我们可以自己移植到项目中使用HAL库实现。在oled.c中修改OLED的初始化,直接调用MX_GPIO_Init()函数,并且包含头文件#include "gpio.h"最后如果还是发现有报错可以根据提示进行修改,完成!
2024-08-24 16:40:01
474
原创 关于在一个stm32项目中同时实现多个模块
经常在写完一个按键点亮led或beep,写完串口通信,oled显示后无法再实现前面的蜂鸣器响起效果,最后发现是因为同时在while()循环中实现了其他模块的代码,使得虽然编译无错误但是无法出现结果,待解决...
2024-08-24 15:54:49
345
2
原创 使用HAL库实现按键控制LED和蜂鸣器
下载STM32CubeMX实现项目的初始配置(寄存器操作),下载keil对程序进行编译烧写。最后可以在自己的开发板上试试啦!
2024-08-24 15:49:30
324
1
原创 STM32F103C8T6单片机原理图设计(PCB板)
对比过一些原理图,我发现除了特定协议的引脚功能,只要功能正确,可以自己选择连接对应的引脚。BH1750光照度传感器:GND-GND;SDA-SDA(PB6/PB7)WIFI(ESP8266)模块:GND-GND;RX-TX(PA2/PA3)0.96OLED模块:GND-GND;SDA-SDA(PA5/PA7)USB转TTL模块:GND-GND;RX-TX(PA9/PA10)至此完成了智能家居的原理图,这是我想尝试的第一个嵌入式项目!LED/BEEP模块:PA6/PA4。按键模块:PB0/PB1。
2024-08-16 22:44:25
1037
原创 vscode远程登录ubuntu linux报错,一直输入密码问题
通通运行一遍后,再次打开vscode连接,发现连接成功。删除日志文件,特别是在。
2024-06-03 21:04:43
614
原创 C++聊天服务器数据库创建
create database chat:创建一个数据库chat。表User包含:用户id、用户名、用户密码、当前登录状态。表OfflineMessage包含:用户id、离线消息。表GroupUser包含:组id、组员id、组内角色。表AllGroup包含:组id、组名称、组功能描述。show databases:展示所有的数据库。表Friend包含:用户id、好友id。use chat:使用数据库。
2024-05-08 23:13:46
241
原创 基于muduo网络库开发服务器程序完整代码
3.明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数。4.在当前服务器类的构造函数当中,注册处理连接的回调函数和处理读写事件的回调函数。5.设置合适的服务端线程数量,muduo库会自己分配I/O线程和worker线程。2. 创建EventLoop事件循环对象的指针。实现VS Code远程连接Ubuntu虚拟机进行编译。1.组合TcpServer对象。退出服务器端:Ctrl + ]
2024-04-28 23:50:21
385
原创 Ubuntu Linux下安装Muduo网络库最新详细步骤
此处是引用其他博主链接:https://pan.baidu.com/s/1Rqrnz8NY6UOiFemYQv-63Q 提取码:8nio。进入muduo库的解压目录里打开终端 Open in Terminal。下载完成后找到压缩包,右键点击选择Extract to... 解压缩。修改CMakeLists.txt文件。到此muduo网络库安装成功!其中报错是因为权限不够。Esc:返回正常模式。
2024-04-10 21:02:52
863
原创 在Ubuntu Linux中安装boost库详细步骤
在安装目录中找到压缩包,右键点击压缩包,点击Extract to...解压缩至选择的目录。下载boost的最新版安装包。
2024-04-09 23:55:06
1103
1
原创 三行命令解决Ubuntu Linux联网问题
但是我的 $ ls /sys/class/net 命令无法显示无线网络接口,那么没有无线网卡?但是我的apt update 命令依然错误,待解决。
2024-04-09 00:29:30
621
原创 翻转二叉树(C++解法)
给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。
2023-11-07 15:32:28
483
原创 相同的树(C++解法)
给你两棵二叉树的根节点p和q,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
2023-11-07 14:42:58
354
原创 分隔节点(C++解法)
给你一个链表的头节点head和一个特定值x,请你对链表进行分隔,使得所有x的节点都出现在x的节点之前。你应当两个分区中每个节点的初始相对位置。:[1,2]
2023-11-04 20:13:56
170
原创 删除排序链表中的重复节点II(C++解法)
给定一个已排序的链表的头head删除原始链表中所有重复数字的节点,只留下不同的数字。返回已排序的链表。
2023-11-01 23:19:04
181
原创 反转链表II(C++解法)
给你单链表的头指针head和两个整数left和right,其中。请你反转从位置left到位置right的链表节点,返回。[5]
2023-10-31 23:40:05
240
原创 随机链表的复制(C++解法)
给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的。深拷贝应该正好由n个节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。。例如,如果原链表中有X和Y两个节点,其中。那么在复制链表中对应的两个节点x和y,同样有。返回复制链表的头节点。用一个由n个节点组成的链表来表示输入/输出中的链表。
2023-10-31 00:20:12
290
原创 两数之和(C++解法)
给你两个的链表,表示两个非负的整数。它们每位数字都是按照的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。[7,0,8][0]
2023-10-29 15:26:25
848
原创 环形链表(C++解法)
给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。
2023-10-28 20:05:12
836
原创 逆波兰表达式求值(C++解法)
给你一个字符串数组tokens,表示一个根据表示的算术表达式。请你计算该表达式。返回一个表示表达式值的整数。'+''-''*''/'9该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 96该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 622该算式转化为常见的中缀算术表达式为:= 17 + 5= 22。
2023-10-28 14:35:08
2438
原创 最小栈(C++解法)
设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。实现MinStackMinStack()void pop()int top()--> 返回 -3.--> 返回 0.--> 返回 -2.
2023-10-27 22:09:14
479
原创 简化路径(C++解法)
给你一个字符串path,表示指向某一文件或目录的 Unix 风格(以'/'开头),请你将其转化为更加简洁的规范路径。在 Unix 风格的文件系统中,一个点()表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。任意多个连续的斜杠(即,'//')都被视为单个斜杠'/'。对于此问题,任何其他格式的点(例如,'...')均被视为文件/目录名称。请注意,返回的'/''/''/''.''..'返回简化后得到的。"/home"
2023-10-27 00:03:27
613
原创 用最少数量的箭引爆气球(C++解法)
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组points,其中表示水平直径在xstart和xend之间的气球。你不知道气球的确切 y 坐标。一支弓箭可以沿着 x 轴从不同点地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为startend, 且满足end,则该气球会被。可以射出的弓箭的数量。弓箭一旦被射出之后,可以无限地前进。给你一个数组points返回引爆所有气球所必须射出的弓箭数。
2023-10-24 14:55:20
289
原创 插入区间(C++解法)
给你一个按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。这是因为新的区间 [4,8] 与 [3,5],[6,7],[8,10] 重叠。
2023-10-24 11:56:46
391
原创 合并区间(C++解法)
以数组intervals表示若干个区间的集合,其中单个区间为。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].[[1,5]]区间 [1,4] 和 [4,5] 可被视为重叠区间。
2023-10-23 15:04:30
469
原创 汇总区间(C++解法)
给定一个的整数数组nums。返回的区间范围列表。也就是说,nums的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于nums的数字x。列表中的每个区间范围[a,b]"a->b"a!
2023-10-22 12:00:10
1153
原创 最长连续序列(C++解法)
给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。4最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。9。
2023-10-22 11:12:05
578
原创 存在重复元素(C++解法)
给你一个整数数组nums和一个整数k,判断数组中是否存在两个i和j,满足且。如果存在,返回true;否则,返回false。
2023-10-21 16:47:46
410
原创 两数之和(C++解法)
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。[0,1]因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。[1,2][0,1]
2023-10-20 15:54:16
549
原创 有效的字母异位词(C++解法)
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。
2023-10-19 20:30:55
235
原创 单词规律(C++解法)
给定一种规律pattern和一个字符串s,判断s是否遵循相同的规律。这里的指完全匹配,例如,pattern里的每个字母和字符串s中的每个非空单词之间存在着双向连接的对应规律。
2023-10-19 20:10:58
251
原创 同构字符串(C++解法)
给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以按某种映射关系替换得到t,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
2023-10-18 16:31:59
305
空空如也
基于kotlin泛型的协变与逆变现问题
2024-06-05
vscode中使用cmake编写服务器build错误
2024-06-03
vscode 远程登录ubuntu时发生错误
2024-06-03
请问怎么调用这个高阶函数?
2024-05-23
请问可以怎么调用这个内联扩展函数
2024-05-23
自己定义的头文件编译器找不到路径
2024-05-11
Math.pow()显示使用错误
2024-05-01
判断是否为环形链表问题
2023-10-28
倒序合并数组的输出问题
2023-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人