- 博客(38)
- 收藏
- 关注
原创 ARM编程指令一
功能:将多个寄存器的值存储到内存中。MOVW:将一个16位立即数加载到寄存器的低16位。MOVT:将一个16位立即数加载到寄存器的高16位。功能:将一个值从一个寄存器或立即数传输到另一个。功能:PUSH:将寄存器的值压入栈中。功能:从内存中加载多个寄存器的值。POP:从栈中弹出数据到寄存器。中加载数据到寄存器。功能:将寄存器中的数据存储到。
2024-07-25 16:01:37
663
原创 QT--多页面、定时器和日期时间数据
widget.ui 负责实现一个页面;mian.cpp创建窗体对象,并监控上面的事件。一个窗体,比如logpage widget,继承QWidget。中创建connect槽函数。
2024-07-19 19:12:19
683
原创 QT控件篇三
QProgressBar 类的主要信号是 valueChanged(int value),当进度条的值发生变化时,会发出此信号。//设置进度条的范围,即最小值和最大值。//设置进度条的最小值。//设置进度条的最大值。//设置进度条的当前值。value()😕/获取当前进度值。
2024-07-15 01:02:54
335
原创 QT--控件篇二
在Qt中,创建控件时常见的两种方式是直接在类中定义控件(即成员变量)和在构造函数中动态创建控件。这两种方式在资源管理、代码组织和灵活性上有所不同。这种方式在类的头文件中定义控件作为成员变量。这些控件在类的构造函数调用之前已经分配了内存。优点简洁明了:控件的定义和声明在同一位置,代码更易读。自动管理:当Widget对象被销毁时,控件会自动销毁,不需要手动管理内存。缺点:灵活性较低:所有控件在类实例化时就创建,无法在运行时动态调整。public:// 设置布局和其他初始化操作。
2024-07-14 16:53:26
1084
原创 QT--槽函数和控件篇一
QT 将信号和槽集成在QObject类中;发送者和接受者都必须继承这个类。Q_OBJECT宏是实现信号和槽机制、属性系统和元对象系统的关键。Q_OBJECT宏必须出现在每个使用信号和槽的类中,因为它为这些类提供了必要的元数据和功能。信号在类的“signal”部分声明,不需要实现。但是可以有参数,使得槽函数可以根据传递的数据执行相应的操作。这种机制非常灵活,允许在信号发出时传递具体的上下文信息,给槽函数提供足够的信息来完成其任务。
2024-07-12 00:18:38
839
原创 QT学习日记一
这是创建之后widget.cpp和widget.h文件的具体代码解释,也是主要操作的文件,其中main.cpp不用操作,ui则是图形化操作界面,综合使用时,添加一个元件要注意重编名和编译一下,才能在widget这类文件中提示出来。
2024-07-10 00:46:48
814
原创 C++学习笔记二
std::string和std::string_view都可以用于定义字符串变量int main()return 0;最巧妙的事情std::string之一就是存储不同长度的字符串,字符串的最后一个字符是’\0’。如果std::string没有足够的内存来存储字符串,它将使用一种称为动态内存分配的内存分配形式(在运行时)请求额外的内存。这种获取额外内存的能力是其std::string如此灵活的部分原因,但也相对较慢。使用std::cin读取字符串会返回遇到第一个空格之前的字符。
2024-07-04 17:45:28
684
原创 C++ 学习笔记一
由于在 C++ 中输入或显示指数可能很困难,我们使用字母“e”(有时为“E”)来表示等式的“乘以 10 的幂”部分。例如,1.2 x 10⁴将写为1.2e4,而5.9722 x 10²⁴将写为5.9722e24。对于小于 1 的数,指数可以为负数。该数5e-2相当于5 * 10⁻²,即5 / 10²,或0.05。电子的质量为9.1093837e-31 kg。
2024-07-03 22:54:42
859
2
原创 嵌入式学习之网络编程基础
网络接口与物理层也叫网络访问层功能:将IP地址与物理地址MAC映射,以及将上一层的ip报文封装成帧,转换为二进制比特流传输ARP:通过IP地址获取其对应的MAC地址RARP:通过MAC地址获取其对应的IP地址MTU:最大传输单元:1500bytesMSS:最大报文长度:1460bytes网络层负责在主机之间的通讯中选择数据包传输的路径,即选择路由IP协议(Internet Protocol)ip协议根据数据包的目的地址来决定如何投递数据包ICMP协议。
2024-06-26 14:46:43
1002
原创 嵌入式学习之Makefile
2.Makefile会根据文件的时间戳(文件修改的时间)来决定工程内的文件是否需要重新编译。1.Makefile是一个工程管理工具,本质上就是一个文件,文件中存放的是代码编译规则。3.Makefile 是一种构建自动化工具的文件,用于管理和自动化软件构建过程。
2024-06-02 21:38:03
532
原创 嵌入式学习之c语言指针
例如,作为函数参数时,通常会使用 int (*)[4] 而不是 int (*)[3][4]。解引用一次,类型会少一个*,例如int** ptr降级后会成为 int*类型。取一次地址,类型会多一个*,例如int a升级后会成为int*类型。6.*p 的类型是 int*,即指向数组首元素的指针。类型:arr 的类型是 int (*)[4],而 &arr 的类型是 int (*)[3][4]。6.指针变量定义时可以给一个具体的指针,如果现在没有具体的值,那么将该指针指向null,占位。*号是和偏移前的pa结合。
2024-06-02 12:02:30
736
原创 嵌入式学习之构造类型
pragma pack(value) value=2^n次方(n=0,1,2,3,4) value=1 2 4 8 16 32。但是64为操作系统最多只能处理8个字节的数据,所以将默认对齐值设置为超过8,不生效。嵌套结构体的大小:结构体的对齐值为–》结构体中成员最大的对齐值。#pragma pack() //重置编译器的默认对齐值。可以使用#pragma pack指令来改变默认的对齐方式。
2024-06-01 22:12:21
761
原创 Linux一些操作技巧
功能:先将2.c中的内容清空,然后将1.c中的内容重定向到2.c中。cat 1.c > 2.c 将1.c中的内容打印2.c中。功能:2.c中原来的数据依然存在,将1.c中的内容追加到2.c后面。nano:使用 Ctrl+K 剪切,Ctrl+U 粘贴。ctlr+ shift + t 再开一个标签页。ctrl+ shift + e 水平分屏。ctrl + shift+ o 垂直分屏。,n跳转下一个,N上一个。
2024-05-27 14:50:46
636
原创 嵌入式学习日记
rwx rwx r-x ————》有权限的位置为1,无权限的位置为0 ————》111 111 101。注解:r:read 读权限 ————》4。x:execute 执行权限 ————》1。w:write 写权限 ————》2。-:无权限 ————》0。
2024-05-23 09:07:37
203
原创 嵌入式学习日常笔记
值得注意的是scanf的占位符%d,%s不会获取\n,空格,制表字符。8.sizeof 可以计算变量在内存中所占用空间的大小,以字节为单位。13.宏定义是在预处理进行,不做语法检查,只做简单替换。对于经常修改的值可以减少代码的替换量,可以放在的头文件。long int 4 byte 32位操作系统。从左往右依次计算,但是返回的是最后一个表达式的值。同真为真,只有当条件1为真时,才会去执行条件2。整型的有符号数和无符号数计算,结果为无符号数。格式: 判断条件?范例: putchar(‘a’);
2024-05-21 09:04:29
138
原创 嵌入式学习日记days3
4.如果函数在一个C文件中定义(即包含函数体),并且该函数没有被标记为 static,那么可以通过在其他C文件中包含该函数的声明来访问该函数。这意味着它在程序第一次调用该函数时被初始化,并且在后续调用中保留其值,不会被重新初始化,且默认初始化为0。静态全局变量是在文件范围内声明的,但使用static关键字将它们的作用域限制在声明的源文件内。静态局部变量是在函数体内部声明的,它们的生命周期贯穿程序的整个执行过程,但作用域仅限于该函数内部,因此只能被该函数内部的操作所访问。静态全局变量不能在其他文件中访问。
2024-05-21 09:04:03
161
原创 嵌入式学习第二天
在地址传递中,实参的地址被复制到形参中,因此形参实际上是指向实参的指针。形参和实参占用独立的存储单元,但形参指向的地址是实参的地址,因此通过形参修改值会影响实参。在值传递中,实参的值被复制到形参中,因此实参和形参占用不同的存储单元。5.在C语言中,实参和与其对应的形参是否占用独立的存储单元,取决于传递参数的方式,即值传递或地址传递。4.sizeof函数的运用,可以根据计算机的不同导致的int类型不同得出不同的结果,适合移植。示例:strcpy(str1,str2),将str1中的内容换成str2中的内。
2024-05-20 09:04:36
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人