- 博客(34)
- 收藏
- 关注
原创 获得一个干净的PX4 `v1.8.0` 版本
2. **清理未跟踪的文件和目录**: 为了删除所有未跟踪的文件和目录,如 `ROMFS/px4fmu_common/init.d-posix/` 和 `src/modules/px4_simulink_app/`,运行: ```shell git clean -fd ``` `-f` 选项是强制执行, `-d` 表明除了删除未跟踪的文件外,还要删除未跟踪的目录。通过运行 `git status` 检查仓库状态,确保它显示为“干净”的,也就是没有未跟踪的文件或未提交的更改。
2024-04-22 03:08:12 915
原创 C语言-结构体
要访问结构体成员,我们需要引入一个新的运算符号 —点号(.)运算符。比如book.title就是引用book结构体的title成员,他是一个字符数组;而book.price则是引用book结构体的price成员,它是一个浮点型的变量。其语法和数组指定初始化元素类似,不过结构体指定初始化成员使用点好(.)运算符和成员名。struct 结构体名称 数组名[长度];struct 结构体名称 结构体变量名。struct 结构体名称。struct 结构体名称。struct 结构体名称。(*结构体指针).成员名。
2024-02-11 03:11:08 434
原创 C语言-高级宏定义
内联函数虽然节省了函数调用的时间消耗,但由于每一个函数出现的地方都要进行替换,因此增加了代码编译的时间。宏定义只是简单地进行替换,并且由于预处理是在编译之前进行,而编译工作的任务之一就是语法检查,所以编译器不会对宏定义进行语法检查。在带参数的宏定义中,#运算后面应该跟一个参数,预处理器会把这个参数转换为一个字符串。现在的编译器也很聪明,就算你不写inline,他也会自动将一些函数优化成内联函数。其中...表示使用可变参数,_VA_ARGS_在预处理中被实际的参数集所替换。宏定义不需要定义参数类型。
2024-02-11 02:08:17 227
原创 C语言-C语言的内存布局规律
堆是用于存放程序运行中被动态分配的内存段,它的大小并不固定,可动态扩展或缩小。当利用free等函数释放内存时,被释放的内存从堆中被剔除。BSS段通常是指来存放程序中未初始化的全局变量的一块内存区域。栈是函数执行的内存区域,通常和堆共享同一片区域。-栈的生存周期由函数调用开始到函数返回时结束,函数之间的局部变量不能互相访问。-堆的生存周期由动态申请到程序员主动释放为止,不同函数之间均可自由访问。-栈由系统自动释放到函数返回时结束,函数之间的局部变量不能互相访问。-栈则相反,是由高地址向低地址发展。
2024-02-09 15:32:00 200
原创 C语言-动态内存管理
如果函数调用成功,返回一个指向申请的内存空间的指针,由于返回类型是void指针(void*),所以它可以被转换成任何类型的数据;calloc函数在内存中动态的申请nmemb个长度为size的连续内存空间(即申请的总内存空间尺寸为nmemb *size),这些内存空间全部被初始化为0。-如果新分配的内存空间比原来的大,则就内存块的数据不会发生改变;如果新的内存空间大小小于旧的内存空间,可能会导致数据丢失,慎用!-如果size参数为0,并且ptr参数不为NULL,那么调用该函数就相当于调用free(ptr)
2024-02-09 14:52:12 1200
原创 C语言-递归
快速排序算法的基本思想是:通过一趟排序将待排序元素分割成独立的两部分,其中一部分的所有元素均比另一部分的元素小,然后分别对这两部分继续进行排序,重复上述步骤知道排序完成。实现递归要满足两个基本条件。-设置了正确的结束条件。
2024-02-09 01:16:16 188
原创 C语言-作用域和链接属性
函数在声明的时候可以不写参数的名字(但参数类型是必须要写上的),其实函数原型的参数名还可以随便写一个名字,不必与形式参数相匹配(当然,这样做没有任何意义)。只有具备文件作用域的标识符才能拥有external或internal的链接属性,其他作用域的标识符都是none属性。在代码块中定义的变量,具有代码块作用域。任何在代码块之外声明的标识符都具有文件作用域,作用范围是从他们声名位置开始,到文件结尾处都是可以访问的。当变量被定义在程序的不同位置时,它的作用范围是不一样的,这个作用范围就是我们所说的作用域。
2024-02-08 03:54:59 413
原创 C语言-指针函数和函数指针
使用指针变量作为函数的返回值,就是指针函数。不要返回局部变量的指针。函数指针->int (*p)();指针函数->int *p();
2024-01-29 23:00:53 205
原创 C语言-函数
所谓声明(Declaration),就是告诉编译器我要使用这个函数,你现在没有找到它的定义不要紧,请不要报错,稍后我会把定义补上。类型名 函数名(参数列表)
2024-01-29 18:37:42 192
原创 C语言-常量和指针
可以通过解引用来读取指针指向的数据。不可以通过解引用修改指针指向的数据。指向“指向常量的常量指针”的指针。指针可以修改为指向不同的常量。指针可以修改为指向不同的变量。指针指向的值也不可以被修改。指针指向的值可以被修改。指向非常量的常量指针。指针本身不可以被修改。指针本身不可以被修改。
2024-01-29 17:12:17 115
原创 C语言-指针
当指针指向数组元素的时候,我们可以对指针变量进行加减运算,这样做的意义相当于指向距离指针所在位置向前或向后的第n个元素。void指针我们把它称之为通用指针,就是可以指向任何类型的数据。也就是说,任何类型的指针都可以赋值给void指针。需要郑重强调的是:p+1并不是简单的将地址加1,而是指向数组的下一个元素。对比标准的下标法访问数组元素,这种使用指针进行间接访问的方法叫做指针法。//定义一个指向字符型的指针变量。指针数组是一个数组,每个数组元素存放一个指针变量。数组指针是一个指针,它指向的是一个数组。
2024-01-29 05:12:07 113
原创 C语言-二维数组
/访问a数组中第1行第1列的元素。//访问b数组中第2行第4列的元素。//访问c数组中第4行第4列的元素。同样注意下标的取值范围,以防止数组的越界访问。类型 数组名 [常量表达式][常量表达式]char b[4][5];
2024-01-09 20:50:11 324
原创 C语言-字符串处理函数
拷贝字符串 :strcpy和strncpy。strlen获取字符串长度(字符的个数)连接字符串:strcat和strncat。比较字符串:strcmp和strncmp。
2024-01-09 20:17:24 341
原创 C语言-拾遗
最后赋值给变量a,得到变量a的值是12。-然后变量c赋值为b+4的和,也就是7。exp2:exp3;-如果结果为真,返回exp2。-如果结果为假,返回exp3。-接下来把c的值加上5。-exp1是条件表达式。语法:goto 标签;-现将变量b赋值为3。
2024-01-09 17:10:30 354
原创 C语言-for语句和循环嵌套
表达式1,表达式2和表达式3可以按照需要进行省略(但分号不能省略)-for (表达式1;表达式1是循环初始化表达式。-for (表达式1;表达式2是循环条件表达式。
2024-01-09 03:40:58 480
原创 C语言-关系运算符和逻辑运算符
注:关系表达式和逻辑表达式得到的值都是一个逻辑值,也就是表示真的 1 和表示假的 0。但是用于判断一个值是否为真时,以 0 表示假,以任何非 0 的数表示真。一个是编译系统告诉我们的结果,一个是我们让编译系统去判断的,两者方向不同。关系表达式得到的值是一个逻辑值,即判断结果为“真”或“假”,如果结果为“真”,关系表达式的值为 1,如果为“假”,关系表达式的值则为 0。短路求值又称最小化求值,是一种逻辑运算符的求值策略。只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值。
2024-01-08 03:25:55 1144 1
原创 C语言-算术运算符
C 语言通过提供大量的运算符来支持我们对数据进行处理,前边我们将一个值存放到变量中,使用的是赋值运算符,就是等于号(=),上节课对字符串中的某个字符进行索引,使用方括号([])作为下标运算符实现。我们把被运算符作用的运算对象称之为操作数,比如 1 + 2,那么 1 和 2 就是被加法运算符(+)作用的两个操作数。通常情况下,编译器会将占用坑位比较小的操作数,先转换为与坑位较大的操作数的相同类型,然后再进行运算。当一个运算符的几个操作数类型不同时,编译器需要将它们转换为共同的某种数据类型,才能进行运算。
2024-01-08 02:31:47 373 1
原创 C语言-字符和字符串
数字 32 ~ 126 分配给了能在键盘上找到的字符,这些是所见即所得的。字符类型事实上是一个特殊的整型,因此它也有取值范围,signed char 的取值范围是 -128 ~ 127;我们之前已经说过,字符串事实上就是一串字符。标准 ASCII 字符表使用7位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。使用字符串常量有个好处,那就是你不必亲自在末尾添加 '\0',它会自动帮你加上。其实,中括号([])里边的数量咱可以不写,编译器会自动帮你计算的。
2024-01-08 01:39:26 370 1
原创 C语言-算术运算符
C 语言通过提供大量的运算符来支持我们对数据进行处理,前边我们将一个值存放到变量中,使用的是赋值运算符,就是等于号(=),上节课对字符串中的某个字符进行索引,使用方括号([])作为下标运算符实现。我们把被运算符作用的运算对象称之为操作数,比如 1 + 2,那么 1 和 2 就是被加法运算符(+)作用的两个操作数。通常情况下,编译器会将占用坑位比较小的操作数,先转换为与坑位较大的操作数的相同类型,然后再进行运算。当一个运算符的几个操作数类型不同时,编译器需要将它们转换为共同的某种数据类型,才能进行运算。
2024-01-07 02:10:45 393 1
原创 C语言-取值范围
存放 signed 类型的存储单元中,左边第一位表示符号位。如果该位为 0,表示该整数是一个正数;如果该位为 1,表示该整数是一个负数。一个 32 位的整型变量,除去左边第一位符号位,剩下表示值的只有 31 个比特位。CPU 能读懂的最小单位(只能存放 0 和 1)—— 比特位,bit,b。因此,一个字节可以表示最大的数是:11111111。内存机构的最小寻址单位 —— 字节,Byte,B。计算机是用补码的形式来存放整数的值。关系:1Byte == 8bit。正数的补码是该数的二进制形式。
2024-01-06 22:50:28 356 1
原创 C语言-数据类型
signed 表示该变量是带符号位的,而 unsigned 表示该变量是不带符号位的。带符号位的变量可以表示负数,而不带符号位的变量只能表示正数,它的存储空间也就相应扩大一倍。默认所有的整型变量都是 signed 的,也就是带符号位的。比如 int 经过限定符修饰之后,可以是 short int,long int,还可以是 long long int(这个是 C99 新增加的)。还有一对类型限定符是 signed 和 unsigned,它们用于限定 char 类型和任何整型变量的取值范围。
2024-01-06 21:35:06 314 1
原创 C语言-常量
在 C 语言中,标识符指的就是一切的名字。比如刚刚的符号常量名是标识符,变量名也是一个标识符。其中这个 #define 是一条预处理命令(预处理命令都以"#"开头),我们也称为宏定义命令。它的功能就是把程序中所有出现的标识符都替换为随后的常量。printf("%s成立于%d年%d月%d日\n", NAME, YEAR, MONTH, DAY);C 语言用一个特殊的转义字符来表示字符串的结束位置。printf("%s是%s创立的……printf("%s的域名是%s\n", NAME, URL);
2024-01-06 21:34:18 451 1
原创 C语言-变量
变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。在内存中找到一个单精度浮点型数据大小的位置,然后霸占起来,并给它命名叫。在内存中找到一个双精度浮点型数据大小的位置,然后霸占起来,并给它命名叫。在内存中找到一个整型大小的位置,然后霸占起来,并给它命名叫。在内存中找到一个字节大小的位置,然后霸占起来,并给它命名叫。第一个字母必须是字母或者下划线开头。
2024-01-06 21:33:05 364 1
原创 STM32
2.内部集成电路-I2C,用于跟I2C接口的设备通信,比如:EEPROM、电容屏、陀螺仪MPU6050。1.引脚序号 阿拉伯数字表示LQFP封装,英文字母开头表示BGA封装。1.串口-USART,用于跟串口接口的设备通信,比如USB转串口模块、ESP8266WIFI。3.串行通信接口-SPI,用于跟SPI接口的设备通信、比如串行FLASH。STM32属于一个微控制器,自带了各种常用通信接口,功能非常强大。32-32bit的意思,表示这是一个32bit的微控制器。2.引脚名称 指复位状态下的引脚名称。
2023-12-05 15:38:35 385
原创 STM32 ISP
ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再写程序。普通ISP和一键ISP,普通ISP在下载程序的时候需要手动配置BOOT的启动方式,而一键ISP则通过独特的硬件电路和上位机配合使用来达到一键下载的功能。DTR输出高,S8050导通,NRST还原成原来的状态即可。最常用的ISP方式就是通过串口下载,最主要的优点就是成本低,缺点是只能用于下载程序,不能硬件仿真。
2023-12-05 14:48:12 607
原创 Ubuntu下载教程
如果虚拟机vmware不支持最新版ubuntu则可选择以下方法下载以前的版本。选择需要的ubuntu-20.04.6下载即可。点击 查看全部Ubuntu镜像站。点击 下载Ubuntu桌面版。点击 下载22.04.3。Ubuntu下载最新版。点击 20.04.6/Ubuntu中国官网。
2023-11-15 05:23:32 1408
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人