自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 建立STM32F407的RTThreadNano的HAL库工程

建立STM32F407的RTThreadNano的HAL库工程

2022-11-26 23:37:20 354 1

原创 matplotlib报错“Matplotlib is currently using agg”“No module named tkinter“(windows)

代码】matplotlib报错“Matplotlib is currently using agg”"No module named tkinter"(windows)

2022-08-16 15:25:56 564

原创 Windows UDP 广播(Cmake Project)

Windows UDP 广播(Cmake Project)

2022-07-06 18:50:47 792 1

原创 MSVC编译-C2065未声明的标识符C3536初始化之前无法使用C2059语法错误C2062意外的类型C2664无法从X转换为X

MSVC编译-C2065未声明的标识符C3536初始化之前无法使用C2059语法错误C2062意外的类型C2664无法从X转换为X使用的是VScode,可以看到同一工程里面不同文件的行尾序列(LF/CRLF:换行/回车换行)、文件编码均不一样。如图所示,更改所有文件行尾序列为 CRLF,注意保存文件。重新编译成功,生成 dll 和 lib,正常使用。...

2022-06-30 19:38:45 1047

原创 STM32HAL库串口1同时收发卡死 半双工

解决STM32使用HAL库时串口1同时收发卡死的问题。

2022-06-09 16:54:47 1835 3

原创 CMake Error:Found unsuitable Qt version “5.14.2“ from D:\, this code requires Qt 4.x

使用 Cmake 编译安装 VTK-7.1.1 时抛出错误:意为 QT 版本不合适,因为我使用的是 QT5 ,因此,在 Cmake 里面找到版本控制,将之修改便可。 CMake Error at D:/Cmake/share/cmake-3.23/Modules/FindQt4.cmake:1314 (message): Found unsuitable Qt version "5.14.2" from D:/QT5/5.14.2/mingw73_64/bin/qmake.exe, this

2022-05-21 17:37:17 910

原创 QT线程处理视频并播放(keyword:线程、QLabel、QTimer、Opencv)

1 使用 QTimer 和 std::thread 在QlLabel中播放视频1.1 以下为实验代码,若有纰漏敬请谅解!2 前提2.1 在QT UI 界面中建立两个 QLabel 控件。3 工程3.1 mainwindow.cpp#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new U

2022-04-16 23:20:41 3986

原创 NVIDIA Control Panel 闪退(英伟达控制面板闪退)

1. 在"开始”或应用列表界面打开应用设置。2. 点击重置。3. 再次打开,会有一个用户协议,同意即可。

2022-03-19 16:49:34 2531 1

原创 树莓派卸载QT(树莓派无法卸载QT)

1. 困境很多人建议使用 MaintenanceTool 这个QT自带的工具卸载,但我在整个系统中搜索不到它。也有建议通过删除库的方式来卸载,但这种方式只是删除了库文件。2. 方法(因系统版本而异)打开以下文件夹/usr/share/applications点击上图的工具(Add/Remove Software)。到以下界面,搜索 “QT”。找到和QT相关的组件取消勾选,点击应用即可。删除完成,可以看到此处没有了QT相关的应用。...

2022-03-13 17:55:17 1332

原创 ERROR:ASSERT: “uint(i) < uint(size())“

ERROR:ASSERT: “uint(i) < uint(size())”1. 源码 QByteArray message[1024]; uint16_t DATA[512]; /* * 在 message 使用之前我调用了 message->clear(); ,并重新载入了值。 */ for(int i = 0; i < 1024; i ++) { c

2022-03-10 16:19:19 5175 2

原创 查看Linux源码的网站

1. lxr.linux.no链接: link.1. 选择版本2. 进入搜索

2022-02-14 12:48:44 562

原创 Error:..\FreeRTOS\portable\RVDS\ARM_CM3\port.c

解决:查看 FreeRTOSConfig.h 文件中配置的宏 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY ,即系统可管理最高中断优先级。查看你配置的串口中断优先级是否比该宏定义的优先级低,如果不是,则要修改。例如若此时我将串口1(或串口2)的抢占优先级更改为 2(1~4均可)都会产生如上警告。// 文件 main.c NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); // 中断组 4/

2022-02-03 00:35:50 4051

原创 Error:..\FreeRTOS\queue.c,1088

1. 在一次 FreeRTOS 项目中,STM32串口输出了如下错误:2. 排查后发现我在一个任务里面添加了新的函数,但是其被分配的任务堆栈很小(32),于是我猜测可能是堆栈溢出,遂修改堆栈大小为 128,问题成功解决。修改前修改后...

2022-02-03 00:25:08 4494

原创 -bash: ./imxdownload: cannot execute binary file: Executable file format error(可执行文件格式错误)

这可能是因为可执行文件不符合当前主机架构,因此需要在当前主机上再次编译生成可执行文件。1. 复制把源代码文件复制到当前主机2. 编译sudo gcc imxdownload.c -o imxdownload3. 尝试将以上生成的可执行文件复制到 .bin 所在的文件夹。赋予权限下载到 SD 卡。$: sudo chmod 777 imxdownloa $: ./imxdownload u-boot.bin sdb I.MX6ULL bin download softw

2022-01-02 11:55:53 3861 3

原创 (2)制作树莓派裸机操作系统-之点亮LED灯

1.工程链接(基于树莓派 4B)链接:https://pan.baidu.com/s/1MJEME5wRi0NnpPTntYN5Eg提取码:zzzz2.数据手册(BCM2711 ARM Peripherals)https://download.csdn.net/download/qq_37459242/205024113.工程里有较为详细的注释与解析.4.SD卡系统盘文件链接:https://pan.baidu.com/s/1dXH7PJe6uW6l_OCxC0EJzg提取码:zzzz

2021-07-29 23:31:39 389

原创 (1)制作树莓派裸机操作系统

1. 注意,注意,以下代码或有两个版本,版本一有错误,版本二为测试过的版本2. 原版出自 Github:链接: link.3. 以下操作大体与原文一样,但是代码有所不同,注意区分 !!一.制作裸机操作系统F1. 基于树莓派 4BF2. 注意,注意,kernel.img 针对于 树莓派 1B/B+ 等较低版本,kerne7.img 针对于 树莓派 ??? ,kerne8.img 针对于 树莓派 4.F3. 我们现在将 kernel7.img 复制到 SD 卡上。这个名称是有意义的,它向 RPi4

2021-07-29 22:58:59 1957 2

原创 Ubuntu 32位 安装VScode(支持C语言编译,Linux裸机开发)

Ubuntu 32位 安装VScodevscode所有版本下载地址:https://code.visualstudio.com/updates/v1_33这里使用deb下载后传到 Ubuntu 系统更新一下库$ sudo apt-get -f install更新git$ sudo apt-get install gitcd 到相应文件夹dpkg -i code_1.33.1-1554971144_i386.deb等待安装完成后,在 Ubuntu 中搜索 “Visual Studio C

2021-07-26 22:14:46 679 1

原创 交叉编译器的安裝以及使用 (Linaro 交叉编译器 基于Ubuntu16)

在 Linux 下进行 C 程序开发, 我们使用的 gcc 编译器进行代码的编译, 编译完,直接在 X86 架构下的 PC 下运行的。 而 arm 架构的, 所以我们需要使用支持 arm 的编译器并且该编译器在 X86 架构下运行, 这个编译器我们通常称为交叉编译器。總之,交叉編譯器就是:是一個 gcc 編譯器這個 gcc 編譯器在 X86 架構 PC 上運行的這個 gcc 編譯器是編譯 ARM 架構代碼的,也就是編譯出來的代碼是在 ARM 架構的芯片上運行的交叉之意就是在一個架構上去編譯另

2021-07-26 22:10:47 1439

原创 (C++学习笔记十七)STL 之 算法(遍历 查找 排序 拷贝 集合)

十九.STL 之 算法代码片内有详解, 目录:// 一. 常用遍历算法// 二. transform// 三. 常用查找算法// 四. 常用排序算法// 五. 常用拷贝和替换算法// 六. 常用算术生成算法// 七. 常用集合算法1.Code :#include<iostream>using namespace std;#include <algorithm> // algorithm : 算法#include <vector>#include

2021-07-26 21:57:47 127

原创 (C++学习笔记十六)小练习之员工分组(基于map vector容器)

十七.STL 之 员工分组(map vector 容器)1.Code :#include<iostream>using namespace std;#include<map>#include<vector>#include<string>#include<ctime>//策划、 美术、 研究//Planning, art, research#define Planning 0#define art 1

2021-07-26 21:55:54 156

原创 (C++学习笔记十四)STL(Standard Template Library) 之vector 容器

十六.STL 之 string 容器代码片内有详解 :1.Code :#include<iostream>using namespace std;#include<string>//Standard Teplate Library 的常用容器// string 容器//概念: string 是C++ 风格的字符串, 而其本质是一个 类//// 一. string 构造函数//string(); //创建一个空的字符串 例如: string

2021-06-14 14:16:20 182

原创 (C++学习笔记十三)STL(Standard Template Library) 之vector 容器

十五.STL(Standard Template Library) 之vector 容器代码片内有详解 :1.Code :#include<iostream>#include<iostream>using namespace std;#include<vector>#include<algorithm>// STL (Standard Template Library : 标准模板库)// Standard Template Librar

2021-06-06 22:05:18 136

原创 (C++学习笔记十二)模板的分文件编写

十五.模板的分文件编写代码片内有详解例一 :1.main.cpp Code :#include<iostream>using namespace std;// 前提: 当包含 .h 文件时 会报错,原因:函数初始化不完全//#include "Person.h"// 解决方法: 一. 包含 .cpp 文件 (不推荐)//#include "Person.cpp"// 解决方法: 二. 包含 .hpp 文件 (推荐)// 将源文件以及头文件写入到同一文件

2021-06-05 13:05:29 228

原创 (模电笔记四 By Multisim)典型运算放大电路案例分析(同相反相差分)

1.反相比例运算电路1.输入UiU_iUi​与输出UoU_oUo​电压关系 由 虚短 虚断 可知:∵\because∵IR1=IR10I_{R1} = I_{R10}IR1​=IR10​Ui−U−R1=U−−UoR10\frac{U_i-U-}{R1} = \frac{U- - U_o}{R10}R1Ui​−U−​=R10U−−Uo​​∴\therefore∴Uo=−R10R1UiU_o = -\frac{R10}{R1}U_iUo​=−R1R10​Ui​2.电路输入电阻 由 虚地

2021-06-04 16:59:35 16567

原创 估算负反馈运算放大电路的闭环电压放大倍数

1.基础公式与结论1.利用 关系式 A˙f≈1F˙\dot{A}_f \approx \frac{1}{\dot{F}}A˙f​≈F˙1​ 估算闭环电压放大倍数。注意 : 只适合于电压串联负反馈组态。A˙uuf≈1Fuu˙\dot{A}_{uuf} \approx \frac{1}{\dot{F_{uu}}}A˙uuf​≈Fuu​˙​1​1.求反馈电压U˙f\dot{U}_fU˙f​2.求反馈系数F˙uu=U˙fU˙o\dot{F}_{uu} = \frac{\dot{U}_f}{\dot{

2021-06-04 16:35:43 11931 2

原创 轻松判断放大电路的负反馈类型(电压反馈,电流反馈等有实例)

电流并联负反馈负反馈 : 当输入为正,输出端也为正,反馈输入到反相输入端将会削弱净输入信号电势。电流 : 反馈取出点无输出电压(输出电压电势为零)并联 : 反馈与输入端同相。电流串联负反馈负反馈 :略电流 : 反馈取出点无输出电压(输出电压电势为零)串联 : 反馈不与输入端同相。电压并联负反馈负反馈 :略电压 : 反馈取出点电压为输出电压并联 : 反馈与输入端同相。电压串联负反馈负反馈 :略电压 : 反馈取出点电压为输出电压并联 : 反馈与输入端不同相。

2021-06-03 22:12:35 9176 4

原创 (C++学习笔记十一)模板

十三.模板1.Code :(内有详解 )#include<iostream>#include<string>using namespace std;template<class Q1, class Q2>class fz;// 一. 模板 的概念//作用: 建立通用的模具,大大提高复用性//拓展: C++另一种编程思想称为 泛型编程 ,主要利用 模板 来实现.//模板机制:1. 函数模板 2. 类模板// 1. 函数模板

2021-06-03 09:13:32 242

原创 (C++学习笔记十)文件操作

十二. 文件操作1.Code :#include<iostream>#include<fstream> //文件操作 头文件using namespace std;// 文件操作 !// C++ 对文件操作需要包含头文件 < fstream >// 1.文件类型: // 文本文件 : 文件以文本的 ASCLL 码形式存储在计算机中// 二进制文件 : ......... 二进制 .形式.........

2021-06-02 09:43:12 80

转载 嵌入式系统分层

嵌入式系统分层共分四层 : 硬件层 , 驱动层 , 操作系统层和应用层层次名称内容1硬件层是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用 C 和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成 CPLD 的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要

2021-06-02 09:42:28 651

原创 Linux文件全为只读文件,重启无法开机显示:BusyBox v1.22.1 (Ubuntu 1:1.......

当 Linux 系统都成了只读文件时,或者 ,开启时显示 : BusyBox v1.22.1 (Ubuntu 1:1… 怎么恢复?在无法开机的界面输入: ~$ blkid PS : 查看硬盘命令,列出分区 /dev/sda5: UUID="713765f6-76eb-408e-9a63-3d5bc213aca1" TYPE="ext4" PARTUUID="e2da056e-05" /dev/sda1: UUID="1151-B874" TYPE="vfat" PA

2021-06-01 14:27:25 1181

转载 嵌入式 Linux 工程师学习建议

1. 嵌入式 Linux 工程师的自我修养 ?编号概览1C语言2Linux基础Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。3Linux系统编程重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对L

2021-06-01 09:27:54 109

原创 (C++学习笔记九)多态

十一. 多态1.Code :#include<iostream>using namespace std;// 多态 !// 多态分为两类:// 静态多态 : 函数重载 和 运算符重载 属于多态,复用函数名// 动态多态 : 派生类 和 虚函数实现运行时多态// 两者的区别:// 1. 静态多态的函数地址早绑定,编译阶段确定函数地址// 2. 动态多态.............,运行阶段..........class qw{pub

2021-06-01 09:26:14 123

原创 (C++学习笔记八)继承

十.继承1.Code :#include<iostream>using namespace std;//C++ 面向对象三大特性: 封装,继承,多态////继承出现的 目的:因为类与类之间有一些共性以及一些特性,为减少重复代码....// 一. 继承的基本语法以及注意事项//class 子类 : 继承方式 父类//继承方式: 公有(public)/保护(protected)/私有(private)继承//无论哪一种方式,子类均不可访问父类的私有(private)

2021-05-31 14:06:54 82

原创 (C++学习笔记七)运算符重载

八.运算符重载1.Code :#include<iostream>using namespace std;//运算符重载的意义://对已有的 运算符 重新进行定义,赋予其另一项功能,以适应不同的数据类型// operator : 操作人员// 一. 加号运算符重载//作用: 实现两个自定义数据类型相加的运算//总结1:对于内置的数据类型的表达式的的运算符是不可能改变的//总结2:不要滥用运算符重载class Person{public: Person()

2021-05-31 11:42:25 168

原创 (C++学习笔记六)类的空间长度;this 指针概念;空指针访问成员函数;const 修饰成员函数 ;友元

八.类的空间长度;this 指针概念;空指针访问成员函数;const 修饰成员函数 ;友元1.Code :#include<iostream>using namespace std;// 一. 类内 成员变量 与 成员函数 分开存储 //只有非静态成员变量才属于类的对象上//简言之,只有非静态成员变量才占类的空间长度class Person{public: short a;//非静态成员函数 占 对 象 空 间 static int b;//静态成员变量不

2021-05-31 11:39:27 102

原创 (C++学习笔记五)构造函数的分类,调用;深拷贝与浅拷贝;初始化列表;类成员作为对象;静态成员变量与函数

七.构造函数的分类,调用;深拷贝与浅拷贝;初始化列表;类成员作为对象;静态成员变量与函数1.Code :#include<iostream>using namespace std;class Person{public: Person()//构造函数 初始化函数 { cout << "Person 的构造函数调用" << endl; } ~Person()//析构函数 清理函数 { cout << "Person 的析构函

2021-05-31 11:37:38 354

原创 (C++学习笔记四)封装的使用

六.封装的使用1.代码 :#include<iostream>using namespace std;//#define PI 3.1415926const double PI = 3.1415926;class Circle//封装一个圆类 其中包含其属性(半径) 行为(计算圆周){public://公共的访问权限 int r; //属性 double Perimeter() { return 2 * PI * r;//圆周 } //行为 获取圆周

2021-05-31 11:32:58 118

原创 (C++学习笔记三)引用

五.引用1.代码 :#include<iostream>using namespace std;//C++标准名称空间 //值传递void Swap_z(int a,int b)//这种传递方式不能交换两数的值{ int num = a; a = b; b = num;}//地址传递void Swap_d(int* a, int* b){ int num = *a; *a = *b; *b = num;}//引用传递void Swap_y(int

2021-05-31 11:30:52 91

原创 (C++学习笔记二)堆区的使用

四.堆区的使用1.new/delete :#include<iostream>using namespace std;/*int* funa()//返回局部变量 a 的地址{ int a = 10; return &a;//返回}*/int* funb(){ int* a = new int(233);//在堆区中开辟内存 //每次开辟都会返回所开辟的内存地址, //需要和 delete 配合使用 //基本用法: int* a = new int(23

2021-05-31 11:27:25 293

原创 (C++学习笔记一)命名空间 常量 字符串

3.1.有关于命名空间 namespace :3.1.1. 简述:1. 在C++语言编写的程序中,变量和函数等的作用范围是有一定限制的。比如,在函数体中定义的一个临时变量就不可以在函数体外使用。为了解决变量和函数等的作用范围,在C++语言中引入了名空间的概念,并增加了关键字namespace和using.2.在一个名空间中可以定义一组变量和函数,这些变量和函数的作用范围一致,可以将这些变量和函数称为这个名空间的成员。3.通过名空间,可以在同一个文件中使用相同的变量名或函数名,只要它们属于不同的名空

2021-05-31 11:24:30 540

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除