自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通用函数实现

【代码】通用函数实现。

2025-06-05 19:24:33 125

原创 CRC实现

【代码】CRC实现。

2025-06-05 19:22:42 379

原创 在嵌入式中C语言中static修饰的变量常量和字符串常量存储位置

类型存储段嵌入式系统中的位置字符串常量.rodataFLASHstatic变量(非const.data.bssRAM变量(编译时常量).rodataFLASH普通const变量.rodataFLASHstatic变量(初始值为非常量).dataRAM。

2025-06-05 18:39:20 457

原创 strcmp(),strcat(),strcpy()源代码

【代码】strcmp(),strcat(),strcpy()源代码。

2025-06-04 15:09:03 83

原创 实现C语言中srand()和rand()函数

rand()函数每次都是根据seed来计算出随机数,seed在默认情况下是1,每次调用rand()函数会执行seed = seed * 214013L + 2531011L;返回自纪元 Epoch(1970-01-01 00:00:00 UTC)起经过的时间,以秒为单位。srand()函数作用就是修改seed;不为空,则返回值也存储在变量。

2025-06-04 12:07:08 225

原创 在嵌入式中重写printf(),输出到串口

在串口通信中,奇偶校验位定义在数据位的最高位。如果数据位为8位且进行了奇偶校验,那么只有[6:0]表示数据信息,第8位为奇偶校验位;如果数据位为9位且进行了奇偶校验,那么只有[7:0]表示数据信息,第9位为奇偶校验位。通过UART,我们可以实现串口通信,将调试信息打印到电脑端的串口调试助手工具上,从而了解程序运行情况。:如果串口通信设置的是8位数据字长无奇偶校验,则发送汉字与英文都不会乱码;如果设置的是8位数据字长且进行奇偶校验,则英文不会出现乱码而汉字会出现乱码。/* 标准库需要的支持函数 */

2025-05-27 10:52:08 244

原创 LIN 通用异步收发器(LINUART)

更多详细信息见表 107。如果发送指针清零命令(UARTCLR.TCNT=1 )在正在进行的传输期间发出,正在发送的字节将继续并完成传输(为避免发送不完整的字节),序列忙标志位(GLOBSTAT.TSEQ)将立即清零,当 UARTCLR.TCNT=1 时。如果启用自动环绕功能(UARTCFG.TAUTWRP=1),当发送指针(UARTSTAT.TCNT)等于阈值(UARTCTR.TCNTHD)时,在发送字节结束(EOFTBYT 事件)时,发送指针将被清零,并触发发送序列结束事件(IS.EOFTSEQ)。

2025-05-23 00:46:19 562

原创 英飞凌tle9954 GPIO

而有时某些硬件模块(如特定的外设模块)会直接控制引脚,比如硬件自动控制引脚输出特定信号用于通信等,此时引脚状态就是由硬件模块接管控制。IN.Px(端口输入寄存器 )用于读取 PBx/PIx 引脚的当前逻辑电平,读取结果可用于 PIxOUT(PIx 引脚输出 )和 PBxOUT(PBx 引脚输出 ) ,同时引脚信号还可连接到 IOWAKEx(用于唤醒 )和 To ADC(送往 ADC )。更多细节,见图 73。:端口输出修改清除寄存器包含控制位,通过操作输出寄存器,可单独清除单个端口线路的逻辑状态。

2025-05-16 16:47:07 706

原创 英飞凌TLE9954GPT12

13.1 特性概述通用定时器(GPT12)由五个 16 位定时器组成,这些定时器被分为两个定时器模块 GPT1 和 GPT2。这两个定时器模块可独立用于各种用途,如定时、事件计数、脉宽测量、脉冲生成、频率倍增等。GPT1 具备以下特性:GPT2 具备以下特性:13.2 框架图GPT1 模块包含三个定时器 / 计数器:核心定时器 T3 以及两个辅助定时器 T2 和 T4。其最大分辨率为 GPT 时钟除以 4 。GPT1 的辅助定时器可选择性地配置为重载寄存器或核心定时器的捕获寄存器Figure 111 GPT

2025-05-16 13:43:20 984

原创 DSRAM介绍

的特性,在需要高并发数据共享的嵌入式系统、通信设备和实时控制系统中具有不可替代的优势,但其较高的成本限制了大规模应用。未来随着制程优化和混合存储技术的发展,DSRAM将在高性能计算领域进一步拓展。,支持两个独立的读写接口,允许两个设备(如CPU、DMA、FPGA)

2025-04-21 16:50:29 531

原创 分析查表法计算 CRC(循环冗余校验)的原理。

查表法计算 CRC 的核心在于提前计算并存储所有可能的 8 位输入对应的 CRC 值,在实际计算时,通过简单的异或和查表操作,避免了复杂的多项式除法运算,从而提高了计算效率。这个表的生成方式是,对所有可能的 8 位输入(从0x00到0xFF)分别进行 CRC 计算,将结果存储在数组中。对于当前处理的字节,将其与 CRC 的高 8 位进行异或操作,得到一个 8 位的值,这个值就是查表的索引。将当前的 CRC 值左移 8 位,然后与查表得到的结果进行异或操作,更新 CRC 值。查表法计算 CRC 的原理步骤。

2025-04-21 10:38:44 301

原创 C语言中位域的语法:

C语言中位域的语法:

2025-04-21 09:59:31 165

原创 C中的@语法

【代码】C中的@语法。

2025-04-21 09:57:15 103

原创 英飞凌213234214132

系列核心架构/技术典型应用场景代表产品AURIX™汽车动力系统TC3XXTRAVEO™车身控制S6J32xEIGBT7场截止+沟槽栅光伏逆变器/电机驱动PSoC™ARM+可编程逻辑智能家居/IoTPSoC6XMC™工业PLCXMC4800选型建议:汽车电子优先选AURIX/TRAVEO;高频电源选IGBT7 H7;物联网开发考虑PSoC系列。更多技术细节可参考英飞凌官方手册38。

2025-03-26 21:36:22 404

原创 esp_ble_gatts_register_callback和esp_ble_gap_register_callback

用于处理与设备发现、连接管理和广播/扫描相关的 GAP 事件。:用于处理与 GATT 服务器有关的数据交互和服务管理事件。在实际应用中,你通常需要同时使用这两个回调函数来构建完整的 BLE 应用程序。例如,你可以使用来处理设备发现和连接管理,然后使用来处理一旦连接建立后与客户端之间的数据交互。

2025-01-16 11:09:52 381

原创 ESP32,uart安装驱动uart_driver_install函数剖析,以及intr_alloc_flags 参数的意义

在函数中,参数指定了接收缓冲区(RXbuffer)的大小。这个参数对于UART驱动程序来说非常重要,因为它决定了可以存储多少接收到的数据,直到应用程序读取它们为止。

2025-01-14 18:49:39 802

原创 UART的硬件流控

UART(Universal Asynchronous Receiver/Transmitter)的硬件流控,也称为硬件握手或硬件流量控制,是指通过额外的信号线来管理数据传输速率和防止数据溢出的一种机制。当两个设备通过 UART 通信时,硬件流控可以确保发送方不会发送超过接收方处理能力的数据量,从而避免数据丢失。

2025-01-14 15:10:08 665

原创 C语言中NUL和NULL、‘\0‘之间的关系

'\0'是,它是一个字符常量,其 ASCII 值为 0。这个字符用于标记 C 风格字符串的结尾。NULL是一个宏定义,通常被定义为整数常量 0 或(void *)0,用来表示空指针。它用于指针操作,表示该指针不指向任何有效的内存地址。虽然'\0'和NULL'\0'NULL。

2025-01-14 13:15:10 621

原创 ESP32从NVS模块读取字符串

在 ESP-IDF(Espressif IoT Development Framework)中,函数用于从非易失性存储(Non-Volatile Storage, NVS)中读取字符串值。

2025-01-13 18:25:50 638

原创 ESP32的打印

在 ESP32 中,并不是只能使用函数来打印日志。实际上,ESP-IDF(Espressif IoT Development Framework)提供了多种方式来输出调试信息和日志。是一个底层函数,它直接访问 ROM 中的 printf 实现,通常用于非常早期的启动阶段或当正常的日志系统不可用时。

2025-01-12 18:02:55 1210

原创 ESP32开发环境

问题:1, 路径报错

2025-01-11 08:38:15 214

原创 STM32的存储结构

Flash用于存放程序代码和持久化的数据。ROM在 STM32F103 上可能不存在作为独立的存储单元,但如果存在的话,它用来存放固定的启动代码或库函数。SRAM提供快速的数据访问空间,用于存储运行时的变量、堆栈和其他临时数据。

2025-01-10 18:25:45 723

原创 四元数计算角度

【代码】四元数计算角度。

2025-01-07 16:56:45 383

原创 卡尔曼滤波

卡尔曼滤波

2025-01-06 20:21:03 137

原创 MPU6050初始化配置

MPU6050初始化配置

2025-01-06 13:49:48 348

原创 四元数姿态解算

四元数姿态解算

2024-12-28 08:36:39 1701

原创 FreeRTOS中xPortPendSVHandler()和vPortSVCHandler()这两个函数的作用

FreeRTOS 中,xPortPendSVHandler() 和 vPortSVCHandler()

2024-12-27 20:00:47 461

原创 在FreeRTOS中动态创建任务,假如在最后一个参数写NULL,该任务有任务句柄吗

FreeRTOS

2024-12-23 23:15:35 522

原创 FreeRTOS的创建任务顺序

FreeRTOS

2024-12-23 13:50:17 284

原创 STM32HAL库中RTC闹钟设置时分秒,年月日

在STM32的HAL库中,RTC(实时时钟)模块提供了多种功能来管理时间和日期,包括设置闹钟。对于RTC闹钟功能,确实主要集中在时、分、秒的配置上,但年、月、日也可以通过RTC日期寄存器进行设置,并且可以与闹钟功能结合使用。

2024-12-21 08:31:45 1083

原创 NMEA-0183格式的GPS数据字符串GPRMC解析

NMEA-0183格式的GPS数据字符串包含了多个字段,用于描述GPS接收器的状态和位置信息。具体来说,这段数据是$GPRMC句子的一部分,它提供了推荐最小特定GPS/TRANSIT导航信息(Recommended Minimum Specific GPS/TRANSIT Data)。让我们解析一下这段数据:深色版本。

2024-12-20 10:15:38 478

原创 STM32HAL I2C函数

【代码】STM32HAL I2C函数。

2024-12-18 16:30:41 558

原创 QS100芯片,使用步骤

注意:在QS100上创建客户端时,就生成了socket_id,用于和云端服务器做交互。

2024-12-18 08:44:10 258

原创 C语言,数据长度是变量,不能初始化

/在这里直接赋值会报错。

2024-12-17 21:52:58 209

原创 在嵌入式STM32HAL库项目中关于debug_printf()的搭建

define debug_printfln(format, ...) printf("[%s:%d]" format "\r\n",FILE_NAME,__LINE__,##__VA_ARGS__)//带##是有一个安全性的判断。#define debug_printf(format, ...) printf("[%s:%d]" format,FILE_NAME,__LINE__,##__VA_ARGS__)//带##是有一个安全性的判断。//除去目录 在HAL的目录中有斜杠和反斜杠。

2024-12-17 16:26:39 260

原创 IOTIQS100芯片, TCP 发送数据+NSOSD,data要是hex16进制转换方法

命令:data以十六进制字符串格式发送的数据。方法。

2024-12-17 15:00:43 472

原创 在ESP32使用AT指令集与服务器进行TCP/IP通信时,<link ID> 解释

在ESP32使用AT指令集与服务器进行TCP/IP通信时, 是一个非常重要的参数。它用于标识不同的连接实例,特别是在多连接场景下(如同时建立多个TCP或UDP连接)。每个连接都有唯一的,通过这个ID,你可以区分和管理不同的连接。定义:是一个整数编号,用来唯一标识每一个由ESP32发起的网络连接。当你使用特定的AT指令来创建一个新的连接时,系统会为该连接分配一个。范围:通常情况下, 的取值范围是0到4,具体取决于ESP32固件版本和支持的最大并发连接数。某些情况下,最大连接数可能会有所不同,因此建议查阅相关文

2024-12-16 23:45:38 561

原创 BCD编码

是一种将十进制数字编码为二进制形式的方法。每个十进制数字(0到9)都用一个4位二进制数来表示。BCD广泛应用于计算机系统中,特别是在需要与人类可读的十进制数值直接交互的场合,如计算器、电子表和各种嵌入式系统。

2024-12-13 15:53:13 633

原创 STM32中BDRST备份域软件复位,为什么清除不掉备份数据寄存器里保存的数据?

在STM32微控制器中,备份域(Backup Domain)是一个特殊的区域,用于保存RTC(实时时钟)、备份寄存器等关键数据,即使系统复位或掉电也能保持这些数据不丢失。当执行备份域软件复位(BDRST)时,某些情况下备份数据寄存器里的数据不会被清除,这是由硬件设计和该区域的特性决定的。

2024-12-13 13:42:04 666

原创 在C语言中static修饰的全局变量放在Bss中

静态全局变量如果在声明时被赋予了一个初始值,则会存放在“已初始化的数据段”中。如果静态全局变量没有被初始化或者被显式地初始化为0或NULL,则它们会被存放在BSS段中。需要注意的是,具体的内存布局可能会因不同的编译器、链接器以及目标平台而有所差异。此外,现代操作系统可能还会对进程的地址空间进行虚拟化管理,使得上述概念更加抽象化。

2024-12-10 20:08:04 486

嵌入式C语言, MinGW, VS code环境的安装

6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

2024-09-07

空空如也

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

TA关注的人

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