- 博客(197)
- 问答 (1)
- 收藏
- 关注
原创 c语言 位运算符 与或运算符 取反异或运算符 详细介绍
在C语言中,位运算符用于对整数类型的数据进行按位操作。位运算符包括按位与(&)、按位或(|)、按位异或(^)和按位取反(~)。这些运算符对数据的每一位进行操作,因此它们对于低级编程和性能优化非常有用。下面详细介绍各个位运算符的用法和功能。
2024-10-01 11:40:34 162
原创 c语言 移位运算符详细介绍
移位运算符是C语言中处理位操作的常用工具。C语言提供了两个移位运算符:左移运算符(这些运算符可以对整数类型的操作数进行位移操作。
2024-10-01 11:32:54 276
原创 c语言 逻辑运算符详细介绍
在C语言中,逻辑运算符用于执行逻辑操作,通常用于条件语句和循环中,以控制程序的流程。C语言中的逻辑运算符主要有三种:逻辑与(&&),逻辑或(||)和逻辑非(!
2024-10-01 11:28:56 386
原创 c语言 类型修饰符 volatile详细介绍
在 C 语言中,volatile是一种类型修饰符,用于告诉编译器被修饰的变量可能会被程序之外的因素修改,因此编译器不应对其进行优化。这在嵌入式编程、驱动开发、多线程编程等场景中尤为重要。volatile。
2024-09-29 22:47:47 194
原创 C语言 类型修饰符 static const详细介绍
在C语言中,类型修饰符static和const都是非常常用的关键字,它们分别具有独特的作用。它们可以单独使用,也可以组合使用来修饰变量或函数。以下是对这两个修饰符的详细介绍,以及它们组合使用时的效果。
2024-09-29 22:13:05 464
原创 c语言 类型修饰符register 详细介绍
在C语言中,类型修饰符register用于提示编译器将变量存储在CPU的寄存器中,而不是系统的内存中。这种做法旨在提高程序的执行效率,因为从寄存器读取数据比从内存读取数据要快得多。以下是关于register。
2024-09-29 22:01:20 249
原创 c语言 typedef详细介绍
在C语言中,typedef是一个非常有用的关键字,它可以为现有的数据类型创建新的类型别名。它不仅可以增加代码的可读性,还可以使代码更加易于维护和理解。以下是关于typedef。
2024-09-29 21:51:29 394
原创 C语言 enum详细介绍
enum是 C 语言中的枚举类型,用来定义一组相关的整数常量,能够使代码更加清晰、易读。枚举类型的值默认从 0 开始,依次递增,但也可以显式地为枚举常量赋值。enum可以和整数类型互相转换和比较,虽然它在本质上是int,但它带来了更好的代码可读性和维护性。枚举常常用于表示状态、选项、标志等,在需要多个限定的值之间选择时是非常有用的。
2024-09-29 21:41:37 308
原创 c语言 struct 和 union 详细介绍
struct允许同时存储多个不同类型的成员,适用于复杂的数据结构。union通过共享内存节省空间,适用于需要节省内存的场景,但一次只能存储一个成员的值。
2024-09-29 21:27:12 384
原创 c语言 int long short类型介绍
intshort和long类型在 C 语言中分别用于存储不同范围的整数,选择合适的类型可以优化内存使用和程序性能。
2024-09-27 21:21:31 184
原创 相机标定的5个内参和6个外参是什么?
内参主要涉及相机的光学特性和成像过程,通常包括焦距、主点和畸变系数。外参则描述相机在三维空间中的位置和朝向,通常包括旋转矩阵和平移向量。通过相机标定,可以准确地将三维空间中的点映射到图像平面,从而进行更高效的图像分析和处理。1、打印一张棋盘格,把它贴在一个平面上,作为标定物。2、通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向的照片。3、从照片中提取棋盘格角点。4、估算理想无畸变的情况下,五个内参和六个外参。5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
2024-09-26 16:01:18 299
原创 I2C通信 总线结构和通信协议
I2C()接口,有时也写作ⅡC或I²C接口,是一种串行数字总线接口。I2C接口只有2根信号线,总线上可以连接多个设备,硬件实现简单,可扩展性强。I2C通信协议可以用普通GPIO引脚进行软件模拟。I2C接口主要用于通信速率要求不高,以及多个器件之间通信的应用场景。
2024-09-26 11:58:46 548
原创 GPIO的HAL驱动程序 初始化函数HAL_GPIO_Init()
GPIO引脚的操作主要包括初始化、读取引脚输入和设置引脚输出,相关的HAL驱动程序定义在文件stm32f4xx_hal_gpio.h中,主要的操作函数如表6-1所示,表中只列出了函数名,省略了函数参数。使用CubeMX生成代码时,GPIO引脚初始化的代码会自动生成,用户常用的GPIO操作函数是进行引脚状态读写的函数。
2024-09-25 16:50:44 315
原创 GPIO输入/输出
STM32F407ZG有8个16引脚的GPIO端口,从PA到PH,还有一个12引脚的PI端口。这些GPIO端口都连接在AHB1总线上,最高时钟频率为168MHz(见图2-1),GPIO引脚能承受5V电压。一个端口的16个GPIO引脚的功能可以单独设置,每个引脚的输入/输出数据可以单独读取或输出。一个GPIO引脚的内部结构如图6-1所示,其内部有双向保护二极管,有可配置的是否使用的上拉和下拉电阻。每个GPIO引脚可以配置为多种工作模式。(1)输入浮空。
2024-09-25 16:06:50 380
原创 开发板基本电路电源电路晶振电路调试复位和BOOT电路
HSE(High-Speed External)和 LSE(Low-Speed External)晶振电路是微控制器中常用的时钟源配置,分别用于高频和低频的外部时钟信号。HSE用于需要高频、高性能的应用,提供快速时钟信号;LSE则用于低功耗和实时应用,提供稳定的低频时钟信号。两者的选择取决于系统的性能需求和功耗考虑。
2024-09-25 11:00:02 1434
原创 嵌入式开发 MPU是什么 MPU IIC是什么?
MPU 通常指的是一种用于运动感知的传感器模块,特别是在嵌入式系统和机器人技术中,MPU 设备起着关键作用,能够提供实时的运动和姿态数据。
2024-09-24 16:37:40 407
原创 c语言 *gx=((u16)buf[0]<<8)|buf[1]; 语句解释
这行代码的功能是从两个字节构建一个 16 位的无符号整数,常用于处理网络协议或传感器数据等场景。
2024-09-24 15:36:25 385
原创 c语言 u8 u16 数据类型介绍
在 C 语言中, 通常是一个自定义的类型,代表 无符号 8 位整数(unsigned 8-bit integer),也就是 。这种类型可以存储的值范围为 0 到 255。 是常用于嵌入式开发或硬件驱动程序中的一种数据类型,通常通过 定义。定义: 数据范围:用途:在这个示例中, 就是 的别名,变量 被赋值为 255,而 被赋值为 0。输出会显示 。
2024-09-24 14:48:39 202
原创 STM32F407开发板模块端口介绍
普中STM32F407开发板,不带LCD的开发板如图2-8所示。开发板上有两个MCU,一个是STM32F407ZGT6芯片(FPU+DSP,LQFP144封装,1024KB Flash,196KB SRAM),另一个是STM32F103C8T6芯片(LQFP48封装,64KB Flash,20KB SRAM)。开发板上有两个MCU,适合于做一些双机主从通信的开发实验,如USART通信、SPI主从通信。在图2-8中,STM32F407芯片的上方有一个SRAM芯片,下方有一个纽扣电池安装座。
2024-09-23 22:10:29 1813
原创 STM32系列单片机分类和特点基本介绍
此外,STM32系列的软件开发方式统一,学会一种型号的STM32 MCU的开发后,再换用其他型号的STM32 MCU进行开发也是类似的,可降低学习的时间成本。STM32系列MCU是基于ARM Cortex-M系列内核设计的,ARM Cortex-M是面向嵌入式应用的32位内核,分为。每个系列的MCU又有很多具体的型号,具有不同大小的Flash存储器和SRAM内存,且具有不同的外设,例如,STM32F4系列有十几个具体的型号,这为设计选型提供了方便。这些内核的性能逐渐增强,当然,它们的功耗也逐渐增大。
2024-09-23 21:22:02 1169
原创 c语言 #define TRIG PAout(3) //输出端口#define ECHO PAin(2) //输入端口int overcount=0; //记录定时器溢出次数语句解释
这些语句一起用于配置和操作 STM32 微控制器的 GPIO 引脚,具体来说是设置和读取某些引脚的状态,以及记录定时器的溢出次数。它们在嵌入式开发中很常见,特别是在处理传感器数据或控制外设时。
2024-09-22 23:58:20 319
原创 c语言 include “sys.h“介绍
文件是一个项目特定的头文件,包含了系统级的配置和常用的宏定义、函数声明等,使代码更具组织性和可维护性,提供了一个集中的地方来管理与系统相关的设置和功能。具体内容会根据项目的需求有所不同,但通常包含系统初始化、外设配置、宏定义等。是在嵌入式系统开发中常见的一条预处理指令。这个头文件一般是由开发者或开发团队根据项目需求自定义的,用于包含系统相关的定义和声明。
2024-09-22 23:37:58 251
原创 c语言 include “stm32f10x.h“解释
是在使用 STM32F10x 系列微控制器进行开发时,常见的一条预处理指令。它的作用是包含一个头文件,该文件定义了与 STM32F10x 系列微控制器相关的寄存器、外设和其他硬件资源的相关信息。,开发者可以方便地访问 STM32F10x 系列微控制器的硬件资源,简化硬件控制代码的编写。这是嵌入式开发中非常重要的一部分,有助于提高开发效率和代码质量。以下是一个简单的示例代码,展示了如何使用。
2024-09-22 23:30:05 313
原创 STM32F103C8T6基础概念视频学习
介绍了硬件STM32F103C8T6核心板的每一块儿是干啥的,每个小零部件的功能。很细致。STM32F103C8T6核心板使用专题讲解 带你轻松玩32【开放未来科技】_哔哩哔哩_bilibili。
2024-09-21 16:40:53 205
原创 下载器/烧录器基础介绍和具体过程
下载器(也称为编程器或烧录器)是一种用于将程序代码或固件写入微控制器、FPGA、EPROM 等非易失性存储器的设备。基本功能数据传输将计算机中的程序代码通过特定接口(如 USB、JTAG、SPI 等)传输到目标芯片。编程将二进制代码或固件烧录到芯片的存储器中,以使芯片能够执行特定功能。验证烧录完成后,通常会进行验证,以确保程序已正确写入。类型并行下载器通过多个数据线同时传输数据,适合较旧的芯片,速度较快。串行下载器通过单一数据线依次传输数据,通常用于现代微控制器。USB 下载器。
2024-09-21 11:38:04 894
原创 ros msg文件
在 ROS 中,消息(msg)文件用于定义节点之间通信的数据格式。每个消息文件通常具有。扩展名,并包含字段定义和数据类型。文件定义消息格式,使得 ROS 节点之间的数据交换更加结构化和易于管理。
2024-09-19 00:13:04 246
原创 ROS sensor_msgs/PointCloud2 解释
是 ROS 中的标准消息类型之一,用于表示点云数据。点云是一组在三维空间中定义的点的集合,通常由3D传感器(如激光雷达、深度摄像头等)生成,用于描述周围环境的三维信息。使用二进制数据存储实际的点云信息,因此需要按照数据类型解析。包含丰富的点云数据结构,支持任意维度的点信息(例如坐标、颜色、强度等)。包中的一个标准消息类型,能够高效地传递点云数据。以下是一个 ROS 节点的示例,它订阅。话题,并解析每个点的。在这个例子中,订阅了。
2024-09-18 23:59:44 402
原创 ros NodeHandle nh 详细介绍
是 ROS (Robot Operating System) 的核心类之一,用于与 ROS 系统进行交互。它提供了节点与 ROS 网络进行通信的接口,包括话题(Topics)、服务(Services)、参数(Parameters)等。,你可以发布和订阅消息、创建和调用服务、设置和获取参数等。以下是一个简单的 ROS 节点示例,演示了如何使用。
2024-09-18 23:58:40 315
原创 ros::init(argc, argv, “pointcloud_subscriber“); 解释
是 ROS 程序的初始化部分,负责启动 ROS 节点并为节点设置名称。
2024-09-18 23:56:15 305
原创 c++ ros/ros.h详细介绍
是 ROS(Robot Operating System,机器人操作系统)中的一个核心头文件,它定义了 ROS 程序中最常用的 API 函数和类,帮助用户开发 ROS 节点、处理消息、启动和关闭节点等。是开发 ROS 节点的核心头文件,提供了 ROS 节点管理、消息发布与订阅、服务与客户端、日志记录、时间管理等基本功能。ROS 提供了一系列的日志输出宏,用于调试和记录日志信息,日志的级别包括。,用户可以构建和管理 ROS 系统中的各类节点,实现复杂的机器人功能。是用户定义的处理消息的函数。
2024-09-17 17:25:55 1126
原创 c++ gtsam_unstable/nonlinear/IncrementalFixedLagSmoother.h详细介绍
提供了一种高效的增量式固定滞后平滑方法,适用于实时系统中的大规模因子图优化问题。通过只保留最近的一段时间的数据,它在处理不断变化的数据时具有高效的实时性能。虽然它在 GTSAM 的“不稳定”版本中,但它仍然是解决实时平滑问题的重要工具。虽然这个类在 GTSAM 中被标记为“不稳定”,但它仍然提供了功能强大的增量式平滑能力,适合在动态和实时系统中使用。这种算法可以在添加新数据时,保留最近的一段时间的优化结果,同时忽略更久远的历史数据。它非常适合于处理实时系统中不断到达的数据,并对实时性能有较高要求的应用。
2024-09-17 17:11:18 289
原创 c++ gtsam/nonlinear/ISAM2.h详细介绍
是一个增量式优化算法,旨在处理实时系统中的因子图。它允许在每次新数据到达时,增量地更新优化结果,而不需要重新优化整个因子图。(Incremental Smoothing and Mapping 2)是 GTSAM 的一种增量式平滑和映射(SLAM)算法实现,用于在动态系统中处理大规模因子图优化问题。提供了一种高效的增量式优化方法,适用于动态系统中的大规模因子图优化问题。通过增量地更新因子图和优化结果,可以处理不断变化的数据,从而在实时应用中保持高效性。算法的参数,例如优化精度、线性化策略等。
2024-09-17 16:58:44 400
原创 c++ gtsam/inference/Symbol.h 详细介绍
类是 GTSAM 中用于表示变量标识符的工具。它将变量的标识符组织成一个符号类型,这样可以更方便地在代码中进行操作和管理。提供了一种便捷的方式来创建和使用唯一标识符,从而避免手动管理复杂的整数键。这个类用于在因子图优化中标识和管理变量。是 GTSAM 库中的一个头文件,定义了。
2024-09-17 16:47:03 304
原创 c++ gtsam::Key key1 = 1; gtsam::Vector value1(3); 详细介绍
是 GTSAM 中用于表示向量的类型。它是一个动态大小的浮点数组,通常用于表示变量的状态值或测量值。是 GTSAM 中用于唯一标识状态变量的类型。它通常是一个整数类型(下面是这些类型的详细介绍和用法示例。),用于区分和管理因子图中的各个变量。以下是一个简单的示例,展示了如何使用。在 GTSAM 中,
2024-09-17 16:12:21 168
原创 c++ gtsam/nonlinear/Values.h 详细介绍 代码举例
类是 GTSAM 中的重要数据结构,用于管理优化过程中的状态变量及其估计值。类在处理非线性优化问题时非常重要,允许在优化过程的不同阶段访问和修改变量值。这个类用于存储和操作因子图优化中的变量值。这个示例演示了如何创建一个。类表示优化问题中所有变量的估计值。是 GTSAM 库中的一个头文件,定义了。这个示例演示了如何管理和操作优化变量的值。对象,插入变量值,并访问这些值。定义了优化问题的因子图,而。方法用于检查变量是否存在于。
2024-09-17 15:53:25 358
python pickle.load命令打不开文件
2023-02-18
csszengarder使用方法
2020-03-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人