- 博客(11)
- 收藏
- 关注
原创 MDK 和cubemx的安装
安装好再安装 Firmware Package。再在官网安装芯片包,最新版失败就安装历史版本。1、cubemx直接在官网下载。
2025-03-30 16:57:55
139
原创 U16_to_I16
原二进制是11111111 11111110,取反得到00000000 00000001,加1后是00000000 00000010,对应的十进制是2。因此,原补码表示的数值是。常用于处理硬件寄存器、通信协议等场景,其中原始数据可能以无符号形式传输,但实际值需要按有符号解析。,对应二进制是11111111 11111110 作为无符号整数,这个。补码的转换步骤是:先取反,再加1。二进制补码的最高位是符号位,0表示正数,1表示负数。int16_t是有符号的16位整数,使用。例:以电流为例,电流值有正有负。
2025-03-29 18:14:00
248
原创 #pragma pack( )
地址 : 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B。总大小要求:必须是 4 的倍数 → 最近的是 12 字节(末尾填充)每个成员的实际对齐值 = min(n, 成员的自然对齐值):确保数据布局严格一致,避免不同编译器或硬件对齐规则差异。:通过网络传输二进制数据、读写文件、与硬件寄存器交互。(1 字节):自然对齐值为。(2 字节):自然对齐值为。(4 字节):自然对齐值为。(8 字节):自然对齐值为。是编译器指令,用于控制。
2025-03-27 18:09:51
340
原创 CAN的波特率
CAN总线的波特率= CAN Clock /((CAN_SJW +CAN_BS1 + CAN_BS2)*CAN_Prescaler)假设CAN_SJW=1、CAN_BS1=15、CAN_BS2=8、CAN_Prescaler=15。则CAN总线的波特率 = CAN Clock /((1 + 8 + 15) * 9) =
2025-03-27 11:22:53
109
原创 大小端模式
网络协议(如TCP/IP)默认使用大端模式(称为。x86/x64架构、ARM架构(默认模式)。,低位字节存储在高地址。,高位字节存储在高地址。大多数现代嵌入式系统。
2025-03-18 17:25:07
110
原创 FreeRTOS任务调度
其本质上是任务在运行一段时间后,自己放弃CPU运行权,让其他任务运行。即使有高优先级的任务处于就绪状态,只要当前任务不主动放弃 CPU,高优先级任务就无法立即执行。当有高优先级任务就绪时,运行高优先级任务;(2)每个任务都打开任务延时,则无论采用抢占式还是协程式,都会输出task2task3task1。在任务运行的时间片中,也可以提前让出CPU运行权,把它交给下一个任务运行。(1)每个任务都没有打开任务延时,采用协程式,只会输出task2。,是让相同优先级的几个任务轮流运行,每个任务运行一个时间片;
2025-02-25 11:38:42
311
原创 双网口驱动
1、STM32 自带 MAC+外置 PHY 驱动实现方案。2、STM32 的 FMC 总线外接以太网控制器实现方案。以 ETH 开头的,这些芯片是 MAC+PHY 二合一。以 PHY 开头的,这些芯片仅是个 PHY。添加PHY MAC驱动。
2025-01-15 15:23:30
313
原创 串口重定义
2、确定sm32f4xx_hal_conf.h中的外部晶振大小和实际的一致。3、将魔法棒->Target 打开Use Micro LIB。1、添加代码 和 #include "stdio.h"
2025-01-15 10:38:58
339
原创 W5500
1、下载W5500官方库,并移植其中的w5500.c.h、socket.c.h、wizchip_conf.c.h。2、编写注册函数代码w5500_port_hal.c。二、使用FreeModbus搭建TCP服务端。
2025-01-15 10:15:57
718
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人