自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 指针 与 数组

把指针运算符 * 应用到 var 上是完全可以接受的,但修改 var 的值是非法的。这是因为 var 是一个指向数组开头的常量,不能作为左值。Eg:一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。首先指针和数组是密切相关的,而事实上数组和指针是可以进行互换的。指针和数组并不是完全互换的。

2024-05-12 22:11:20 216 1

原创 C++指针的比较

指针可以用关系运算符进行比较,如 ==、< 和 >

2024-04-28 14:46:03 204

原创 C++ Null 指针

在变量声明的时候,如果没有确切的地址可以赋值,可以为指针变量赋一个 NULL 值,赋为 NULL 值的指针被称为指针。NULL 指针是一个定义在标准库中的值为零的常量。ptr 的值是 0当然,在大多数的操作系统中,程序不允许访问地址为0的,因为内存是操作系统保留的,所以内存地址为0有的特别的重要的意义,它表明该指针不指向一个可访问的的内存位置,如果指针包含空值,就假定它不指向任何东西。

2024-04-28 14:37:17 227

原创 C++ 指针

指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。int *ip;/* 一个整型的指针 */double *dp;/* 一个 double 型的指针 */float *fp;/* 一个浮点型的指针 */char *ch;/* 一个字符型的指针 */

2024-04-28 14:10:41 188

原创 C++ 字符串

下面的声明和初始化创建了一个 "Hello" 字符串。由于在数组的末尾存储了空字符,所以字符数组的大小比单词 "Hello" 的字符数多一个。字符放在字符串常量的末尾。C++ 编译器会在初始化数组时,自动把 '' 放在字符串的末尾。字符 '' 终止的一维字符数组。因此,一个以 null 结尾的字符串,包含了组成字符串的字符。C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持。

2024-04-16 21:46:41 263

原创 Linux的动态库的制作

etc/ld.so.conf是非常重要的一个目录,里面存放的是链接器和加载器搜索共享库时要检查的目录,默认是从/usr/lib /lib中读取的,所以想要顺利进行,可以把我们库目录加入到这个文件中并执行/sbin/ldconfig。此时还不能立即./a.out,因为在动态函数库使用时,会查找/usr/lib。在/etc/ld.so.conf文件加入我们生成的库的目录,然后/sbin/ldconfig。第二种方法:假设libfile.so在/home/linux/file环境变量方法。

2024-04-15 22:45:47 385

原创 C++ 数组

C++ 支持数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。所有的数组都是由连续的内存位置组成。

2024-04-15 22:16:23 214

原创 Linux的文件操作中的静态库的制作

Linux操作系统支持的函数库分为:静态库,libxxx.a,在编译时就将库编译进可执行程序中。优点:程序的运行环境中不需要外部的函数库。缺点:可执行程序大 (因为需要 编译)动态库,又称共享库,libxxx.so,在运行时将库加载到可执行程序中。优点:可执行程序小。缺点:程序的运行环境中必须提供相应的库。

2024-04-14 21:57:27 259

原创 C++ 随机数

在许多情况下,需要生成随机数。关于随机数生成器,有两个相关的函数。,该函数只返回一个伪随机数。生成随机数之前必须先调用。下面是一个关于生成随机数的简单实例。

2024-04-14 20:45:34 185

原创 C++ 数字的运用

当我们需要用到数字时, int、short、long、float 和 double 等等。这些用于数字的数据类型运行结果。

2024-04-14 20:24:10 217

原创 C++ 传值调用

C++ 传值调用向函数传递参数的方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。默认情况下,C++ 使用传值调用方法来传递参数。一般来说,这意味着函数内的代码不会改变用于调用函数的实际参数。函数。

2024-04-13 19:41:16 173

原创 Linux网络的封包和拆包

mss:网络类型,线路,以及特性相关。到令牌环网然后向上逐渐拆包。MTU:最大的传输单元。一般使用socket。

2024-04-10 23:42:09 171

原创 C++ 中的运算符优先级

例如 x = 7 + 3 * 2,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。某些运算符比其他运算符有更高的优先级,比如,乘除运算符具有比加减运算符更高的优先级。对比有括号和没有括号时的区别,这将产生不同的结果。因为 ()、 /、 * 和 + 有不同的优先级,高优先级的操作符将优先计算。

2024-04-10 23:14:53 358

原创 Linux链接文件管理——硬链接、符号链接

硬链接是对文件的另一个名字,对于硬链接的文件来说,他们拥有同样的inode号(索引节点号),表示它们是同一个文件。删除符号链接不会影响到原文件,但是删除原文件后,符号链接将不可用。符号链接有自己的inode和block,并且可以跨文件系统。删除硬链接文件对原文件无影响,删除符号链接则会影响到原文件。创建硬链接不会消耗新的inode和block。符号链接是一个指向另一个文件的特殊类型的文件。硬链接不能跨文件系统,而符号链接可以。硬链接不能指向目录,而符号链接可以。删除硬链接文件,不会影响到原文件。

2024-04-09 21:09:05 374 1

原创 linux网络编程

网络的体系结构,有两类非常重要的体系结构:OSI和 TCP/IP。

2024-04-09 20:45:34 795

原创 C++赋值运算符

复制并黏贴下面的 C++ 程序到 test.cpp 文件中,编译并运行程序。请看下面的实例,了解 C++ 中所有可用的赋值运算符。

2024-04-09 16:46:35 156

原创 C++逻辑运算符

假设变量 A 的值为 1,变量 B 的值为 0。

2024-04-09 16:45:13 489

原创 C++ 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

2024-04-08 21:29:15 512

原创 C++ 存储类

存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期auto 关键字不再是C++存储类说明符。从C++11开始,auto 关键字声明一个变量,该变量的类型是从其声明中的初始化表达式推导出来的。存储类是所有局部变量默认的存储类。存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。寄存器只用于需要快速访问的变量,比如计数器。

2024-04-08 20:28:50 521

原创 C++ 修饰符类型

数据类型前放置修饰符。修饰符用于改变基本类型的含义,所以它更能满足各种情境的需求。无符号短整数 50,000 的位模式被解释为有符号短整数 -15536。,int 是隐含的。例如,下面的两个语句都声明了无符号整型变量。您可以不写 int,只写单词。C++ 允许使用速记符号来声明。

2024-03-26 10:25:17 199

原创 C++ 常量

使用#define预处理器。使用const关键字。

2024-03-23 10:03:23 244

原创 【无标题】

我们将在后续的章节中学习什么是函数和参数。本章我们先来讲解声明是局部变量和全局变量。

2024-03-23 09:55:22 246

原创 C++ 变量类型

变量声明向编译器保证变量以给定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。C++ 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。不带初始化的定义:带有静态存储持续时间的变量会被隐式初始化为 NULL(所有字节的值都是 0),其他所有变量的初始值是未定义的。变量是左值,因此可以出现在赋值号的左边。当您使用多个文件且只在其中一个文件中定义变量时(定义变量的文件在程序连接时是可用的),变量声明就显得非常有用。

2024-03-19 22:46:17 432

原创 Linux的fputs的使用

【代码】Linux的fputs的使用。

2024-03-19 21:55:39 154

原创 C++的语法

可能需要用到存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)下表显示了各种变量类型在内存中存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值。不同系统会有所差异本实例使用了,这将在每一行后插入一个换行符,<< 运算符用于向屏幕传多个值。我们也使用函数来获取各种数据类型的大小。

2024-03-14 23:11:22 520

原创 C++基础语法(一)

c语言离不开头文件当然c++也是如此,而是C++ 定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件第二行告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。

2024-03-14 22:46:01 390

原创 linux的文件io和标准io区别

文件io:是直接调用内核提供的系统调用函数,头文件是unistd.h标准io:是间接调用系统调用函数,头文件是stdio.h。

2024-03-11 12:26:09 364

原创 linux的fseek函数

重定位的主要目的:该函数不是重定位文件指针,而是重定位文件内部的指针,让指向文件内部数据的指针移动到文件中我们感兴趣的数据上,则保留原来的stream的位置不变。参数:第一个为文件指针,第二个是指针的偏移量,第三个是指针偏移的起始位置。返回值:重定位成功返回0,否则返回非零值。SEEK_CUR 既1:文件当前位置。SEEK_SET 既0: 文件开头。SEEK_END 既2:文件结尾。

2024-03-08 13:26:51 541

原创 linux的fwrite函数使用

【代码】linux的fwrite函数使用。

2024-03-07 17:43:49 515

原创 linux的fread函数的使用

【代码】linux的fread函数的使用。

2024-03-07 16:45:00 391

原创 linux的cp指令二

【代码】linux的cp指令二。

2024-03-05 13:35:40 362

原创 Linux的cp指令具体化

【代码】Linux的cp指令具体化。

2024-03-03 21:58:57 395

原创 FreeRtos任务的挂起和恢复实验示例(后续)

Key的初始化震动传感器。

2024-02-07 21:16:15 640

原创 FreeRtos任务的挂起和恢复实验示例

首先我们在main函数完成硬件的初始化,其次在硬件初始化完成之后创建任务start_task()然后开启FreeRtos的任务调度。(2)、在 key_tssk 任务里面,KEY_UP 被按下,调用函数 vTaskSuspend()挂起任务 1。(3)、KEY1 被按下,调用函数 vTaskResume()恢复任务 1 的运行。(4)、KEY2 被按下,调用函数 vTaskSuspend()挂起任务 2。(1)、start_task 任务,用于创建其他 3 个任务。

2024-02-06 22:25:13 397

原创 FreeRtos的任务挂起和恢复API

当我们需要暂停某个任务的运行,过一段时间以后在重新运行。这个时候要是使用任务删除和重建的方法的话那么任务中变量保存的值肯定丢失了!FreeRTOS 给我们提供了解决这种问题的方法,那就是任务挂起和恢复,当某个任务要停止运行一段时间的话就将这个任务挂起,当要重新运行这个任务的话就恢复这个任务的运行。FreeRTOS 的任务挂起和恢复 API 函数此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。退出挂。

2024-02-05 21:42:31 377

原创 FreeRtos的静态方法创建任务和删除示例

需要使用静态方法需要将宏configSUPPORT_STATIC_ALLOCATION=1。

2024-02-04 22:00:24 582

原创 FreeRtos动态任务的创建示例

【代码】FreeRtos动态任务的创建示例。

2024-02-03 22:36:07 364

原创 FreeRtos 任务创建和任务删除(API)

用来创建一个函数,如果使用函数 xTaskCreate()来创建任务的话那么这些所需的 RAM 就会自动的从 FreeRTOS 的堆中分配,因此必须提供内存管理文件,默认我们使用heap_4.c 这个内存管理文件,而且宏 configSUPPORT_DYNAMIC_ALLOCATION 必须为 1。pxCreatedTask: 任务句柄,任务创建成功以后会返回此任务的任务句柄,这个句柄其实就是。此函数和 xTaskCreate()的功能相同,也是用来创建任务的,但是使用此函数创建的任务所。

2024-02-03 21:30:11 891

原创 FreeRtos的configure.h基础配置

"INCLUDE_"开头的宏用来表示使能或除能FreeRtos中对应的API函数,作用就是用来配置FreeRTOS中可选的API函数。#define configUSE_16_BIT_TICKS 由于用的是stm32自然是32位故选0。需要注意的点:系统所有总的堆大小不能超过(10*1024)否则会运行不了。表示使能函数vTaskPrioritySet()函数。都是用来完成FreeRtos的配置和裁剪的。如:configCPU_CLOCK_HZ。软件定时器没有硬件定时器速度快。

2024-02-02 23:07:58 341

原创 FreeRtos

学习FreeRtos之前需要知道前后台系统是什么?早期的嵌入式开发并没有嵌入式操作系统概念,直接操作裸机,直接在逻辑上写程序,eg 51单片机没有操作系统的概念,通常把系统分为前台系统和后台系统程序:是包括一个死循环和若个中断服务程序应用程序相当于一个大系统(循环)循环中调用API库函数完成所需的操作大循环叫后台系统 中断服务程序用于处理系统的异步事件也就是前台系统前台是中断级 后台是任务级。

2024-02-01 22:42:15 369

空空如也

空空如也

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

TA关注的人

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