- 博客(139)
- 资源 (10)
- 收藏
- 关注
原创 ssh: connect to host xxx.xx.xx.xx port 22: Connection refused原因以及解决方案
调查发现从电脑b ping 电脑a这条路是通的,而且从电脑a scp 到电脑b也是可行的,因此原因出在电脑a上面。起因是我用电脑a通过ssh连到了电脑b,在电脑b上打算用scp把文件拷贝过来,结果报了这么个错误。发现还是不行,后来发现电脑a上没装ssh服务器——sshd,原来如此,那就简单了。在电脑a上,我先是开了端口22。
2024-07-12 16:19:22
993
1
原创 STM32驱动带编码器的直流减速电机
而没有编码器接口的单片机如51单片机,可以通过外部中断读取,比如把编码器A相输出接到单片机的外部中断输入口,这样就可通过跳变沿触发中断,然后在对应的外部中断服务函数里面,通过B相的电平来确定正反转。不同电机对 PWM 频率的响应不同,较高的频率可以使电机运行更加平滑,但过高的频率可能导致驱动器的效率降低。根据弗莱明左手定则,在磁场中的电流承受洛伦兹力,力的方向与电流方向和磁场方向成垂直。TB6612是可以一次控制两个电机的(A和B),AB的接线是一样的,这边为了方便,只针对一个电机。
2024-06-11 21:31:39
13822
5
原创 Keil出现警告:warning: #223-D: function “XXX“ declared implicitly
这个警告表明编译器在函数使用之前没有找到函数的显式声明或定义。这通常发生在函数被使用之前没有在当前文件中进行声明或定义,或者头文件未正确包含。如果两个.h文件,比如pwm.h和timer.h文件都包括相同的宏,就会产生冲突,出现上述问题。如果说,头文件里我也定义了,在调用该函数的源文件中我也引了相关的头文件,还是报错怎么办?解决办法很简单,把其中一个.h文件的宏换掉就可以了,比如换成。这时候你需要检查一下是否使用下面的宏。
2024-04-25 14:25:03
4987
原创 STM32F407串口助手无法识别到串口
我用的芯片板是 STM32F407VGT6,在连接上数据线后发现串口助手识别不到芯片板的串口,串口驱动我也安装了,试了好几次插拔,发现都不行。后来找到了原因,因为之前一直用的正点原子的板子,默认数据线是支持串口的,后来发现现在买的这块。连上usb转ttl模块后,我们可以在设备管理器中查看,发现已经连接上了(COM5)。usb转ttl模块和芯片板上的RX、TX要交叉连接,即模块的RX接芯片板的TX,模块的TX接芯片板的RX。,如果想实现串口功能的话,需要用到下图中打勾的四个引脚。
2024-04-25 11:01:56
4266
2
原创 Zotero不小心把分类删除怎么办?
如果不小心把Zotero中的条目删除了,是可以在回收站中找到的,但是如果把一个大分类删除了,那么就很难找回来了。我们需要定位到\Zotero\zotero_data这个目录(和安装有关),然后根据上述的方法进行操作。如果删除了也不必担心,可以查看Zotero官网给出的解决办法。3.重启Zotero,发现已经还原回去了。2.按照上述修改文件后缀。1.关闭Zotero。
2024-02-19 16:02:27
5113
8
原创 ubuntu22.04 无法打开谷歌浏览器(报错其他计算机 (money-Latitude-E5430-non-vPro) 的另一个 Google Chrome 进程 (7578) 好像正在使用此个)
用新电脑装的ubuntu22.04,一开始是搜狗拼音无法使用,修改好了之后发现谷歌浏览器直接就打不开了。重启了几次都没效果,一直转圈但是加载不出来。网上搜了之后发现是之前安装过谷歌浏览器,卸载了,但是数据还在本地放着,导致新旧数据的冲突,把数据删除就好了。等待更新完成,发现火狐可以使用了,但是谷歌还是原来的问题,在终端执行后。
2023-11-28 19:53:43
3797
2
原创 理解线程池源码 【C++】面试高频考点
线程池的原理就是管理一个任务队列和一个工作线程队列。工作线程不断的从任务队列取任务,然后执行。如果没有任务就等待新任务的到来。添加新任务的时候先添加到任务队列,然后通知任意(条件变量notify_one/notify_all)一个线程有新的任务来了。:线程池有效地管理线程的创建、销毁和重用,避免了频繁创建和销毁线程的开销,节省了系统资源。:线程创建和销毁是开销较大的操作。线程池在初始化时创建一组线程,并将它们保持在就绪状态,从而在需要时可以快速执行任务,而不必每次都重新创建线程。
2023-10-12 15:35:48
677
原创 fastboot device后出现 no permissions (user in plugdev group; are your udev rules wrong?);see xxx
用fastboot失败,线路和接受设备都是没有问题的,原因出在 linux 识别不了fastboot设备。查看目录下是否有51-android.rules这个文件,没有的话是需要创建的。这时候输入 fastboot devices 还是会报错的,需要做两件事。但是如果使用 sudo 却是可以识别的到,问题在于 plugdev。接下来我们需要在 51-android.rules 修改。那么我的是 vid=22b8, pid=2e81。首先输入下面命令进入到 rules.d 目录。在该文件里输入下面内容。
2023-08-31 09:55:08
1467
原创 Linux 下 Mysql 的使用(Ubuntu20.04)
当连接到MySQL服务器时,默认情况下可能没有选择任何数据库。为了执行针对特定数据库的SQL查询(例如SELECT、INSERT、UPDATE、DELETE等),需要先告诉MySQL想要操作哪个数据库。初次登录可以使用root账户,然后在root账户中创建新用户,再使用上面的命令登录。如果要查看更多的Mysql的选项列表,可以输入。连接服务器时,需要提供用户名和密码。USE 数据库名;
2023-08-25 15:57:39
1136
原创 设计模式——单例模式(懒汉和饿汉)
"懒汉"模式虽然有优点,但是每次调用GetInstance()静态方法时,必须判断NULL == m_instance,使程序相对开销增大。因为Singleton模式可以保证为一个类只生成唯一的实例对象,所以这些情况,Singleton模式就派上用场了。单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。一个类只能有一个实例在生活中是很常见的,比如打印机程序,政府部门。
2023-08-09 10:48:47
1567
3
原创 剑指 Offer 第二版
递归的实现方式调用函数栈,遍历N个节点,因此栈的大小至少为N,那么空间复杂度为:O(N)。看到这题,因为是从尾到头打印输出,首先想到的方式就是递归。因为要遍历N个节点,因此时间复杂度为:O(N);
2023-07-31 19:13:34
207
原创 C++ 左值右值以及std::move函数解释
比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了,通过std::move,可以避免不必要的拷贝操作。,在C++语言中,二者是有区别的,左值是指表达式可以被取址的值,即表达式返回的是一个可以在内存中存储的位置;std::move 将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝所以可以提高利用效率,改善性能;为什么要使用 std::move?
2023-07-24 14:03:15
313
原创 terminal 终端Ctrl+Shfit+E键与搜狗输入法冲突Linux
下载完搜狗输入法后,发现Ctrl+Shfit+E不能在终端分屏了,原因是和搜狗的快捷键冲突了,把搜狗的禁用了或者换成其它快捷键即可。界面右上角打开搜狗拼音,点击属性设置。把勾去掉或者换其它快捷键。
2023-07-06 19:22:46
852
原创 CMake 的简单使用
CMake 允许为项目增加编译选项,从而可以根据用户的环境和需求选择最合适的编译方案。例如,可以将 mathlib 库设为一个可选的库。
2023-07-06 15:17:25
373
原创 用CMake下的find_package()函数链接库
第一步工作完成了,也就是说libadd的库已经做好了,接下来在任意地方新建一个test文件夹,创建一个main.cpp用于调用libadd。Cmake 会在以下的路径中寻找Config.cmake或Find.cmake文件。再新建一个CMakeLists.txt 文件,我们要在生存可执行文件的同时链接到Add的库。再新建一个FindAdd.cmake文件,用于找到Add的库,需要把头文件和库的地址都给出。接下来把头文件和库安装到一个自定义文件夹中,这边装在install里面。首先我们创建一个文件夹。
2023-06-25 16:13:27
914
原创 Github拉取老版本或releases稳定版本的仓库
开发有时候需要稳定的版本而不是正在开发的版本,releases 是发行的较为稳定的版本。如果下载的生活不希望带任何git的东西,可以把仓库的 zip 包下载下来。进入到这个 doctest 目录里面,发现我们已经处于 dev 分支下了,说明已经把该分支拉下来了。随便进入一个仓库,查看分支信息。随便选择一个稳定版本。
2023-06-20 19:26:48
5886
1
原创 在VSCode中使用LaTex+(grammarly语法检测,chatgpt翻译,Sumatra PDF 轻量级pdf阅读器)
整个文章分为以下几个内容,打 * 的是必须要安装的。
2023-06-07 22:24:06
16257
7
原创 Ubuntu高效工具——autojump、terminator(快捷键失灵问题)
Ubuntu高效工具——autojump、terminator(快捷键失灵问题)
2023-05-10 19:33:01
1129
1
原创 Ubuntu20.04 不能访问磁盘? 挂载/添加磁盘
一般设备刚拿回来的是不会全部挂载的,也就是说,一部分硬盘(机械硬盘)是需要我们自己挂载的,不然我们是无法访问该盘,也就无法用它存东西。
2023-05-08 15:16:53
13718
1
原创 用python实现PID控制器 (PyCharm)
在具体实现的时候,当前误差需要知道系统的输出和目标值,因此误差作为参数传入。dt是系统的步长,即调节周期,也将其作为参数传入。PID的三个参数一般是我们自己设计的,而且一般是固定的,所以最好在初始化的时候设置一下。需要注意的是,这只是一种基本的调参顺序,实际情况可能因为不同系统的特点而有所不同。为了适应某些变参数算法(al,bp),设计一个函数仅用来改变三个参数。控制器和传递函数设计好之后,我们只需要建立一个主函数去调用它即可。被控对象一般是用传递函数表示的,这边可以用欧拉公式实现。
2023-03-16 17:52:30
4359
原创 PackagesNotFoundError: The following packages are not available from current channels: - gym 解决办法
在pycharm 中安装一个软件包遇到这样的问题按照它给的说法,去命令行安装,也是一样的结果。
2023-03-14 16:43:30
837
1
原创 快速安装TensorFlow2.0(windows,CPU,PyCharm,2023)
TensorFlow2.0安装和基本使用(windows11,CPU,PyCharm,2023)
2023-03-14 15:34:44
2183
2
俄罗斯方块小游戏c++
2023-03-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人