计算机网络综合实验指南
文章浏览阅读682次,点赞11次,收藏8次。本实验将结合《计算机网络自顶向下》前三章的核心概念,通过实际操作加深对应用层、运输层和网络层的理解。实验涵盖及,帮助你将理论转化为实践。Wireshark(Chrome 浏览器Python 环境(推荐安装:确保能访问互联网(如访问。
TCP报文段解析:从抽象到具象的趣味学习框架
文章浏览阅读219次,点赞3次,收藏8次。确保所有包裹(数据包)按顺序送达,处理丢件(重传)、仓库爆仓(窗口调整)、客户投诉(超时)。|---------------序列号(32位)----------------||------------确认号(32位)-------------------|| 数据偏移(4位)| 保留(6位)| 标志位(6位) | 窗口大小(16位)|→ 包裹标签(SYN=新包裹,ACK=签收回执,FIN=结束发货)。| 校验和(16位) | 紧急指针(16位) |” → 丢弃数据包,触发重传。
深入浅出讲解UDP检验中如何计算检验和
文章浏览阅读592次,点赞13次,收藏4次。记住权值 20=1,21=2,22=4,23=820=1,21=2,22=4,23=8,逐位相加。分片:0x1122, 0x3344, 0x0008, 0x0000, 0xAABB, 0xCCDD。:用0-9和A-F(A=10, B=11, ..., F=15)表示,逢16进1。→ 分片为:1122, 3344, 0008, 0000, AABB, CCDD。加溢出位:47,622 + 1 = 47,623 → 0xB9E7(十六进制)若结果超过16位(溢出),将溢出部分加到低位(循环进位)。
计算机是如何看待数据的?
文章浏览阅读270次,点赞2次,收藏5次。print(bytes([hex_val])) # 输出 b'\xa1'(字节形式):通过编程和抓包工具(如Wireshark)直接操作二进制/十六进制数据,能快速跨越抽象理论与实际应用的鸿沟。print(hex_val == bin_val == dec_val) # 输出 True(值相同)print(bin(0x12)) # 输出 "0b10010"(二进制)print(bin(value)) # 输出二进制 0b10100001。表示二进制)来解析数据。
细说STM32F407单片机RTC入侵检测和时间戳的原理及使用方法
文章浏览阅读1.4k次,点赞27次,收藏9次。本文将通过示例介绍 STM32单片机RTC时钟单元的的入侵检测和时间戳的原理及使用方法。本文将继续使用旺宝红龙开发板STM32F407ZGT6 KIT V1.0。本实例将引用本文作者写的其他文章作为参考文献。参考文章1:细说STM32F407单片机RTC的基本原理及闹钟和周期唤醒功能的使用方法-CSDN博客参考文章2:细说STM32F407单片机RTC的备份寄存器原理及使用方法-CSDN博客。_stm 32f407 rtc入侵检测打开后就会马上自卫检测标志位是什么情况
细说STM32F407单片机1个ADC使用DMA同时采集3个输入通道的方法
文章浏览阅读1.4k次,点赞29次,收藏23次。当ADC只有一个输入通道,在转换结束后可以及时读出结果数据寄存器的内容。当规则转换组有多个通道时,应该使用扫描转换模式(Scan Conversion Mode),ADC在转换完一个通道后立刻转换下一个通道,直到规则组内的通道序列转换完。规则转换只有一个转换结果数据寄存器,虽然可以设置在每个通道转换完之后就产生EOC事件中断,但是在多通道情况下,在EOC事件中断里读取转换结果数据可能是来不及的,更谈不上对数据进行显示或处理。因此,如果规则转换组有多个输入通道,应该使用DMA。_stm32f407 adc dma
细说STM32F407单片机2个ADC使用DMA同步采集各自的1个输入通道的方法
文章浏览阅读1.5k次,点赞30次,收藏20次。本文将通过一个实例测试 STM32F407ZGT6使用2个ADC模块并通过DMA模式同步采集各自的1个通道的方法。当一个ADC只有一个输入通道,在转换结束后可以及时读出结果数据寄存器的内容。当一个ADC规则转换组有多个通道时,应该使用扫描转换模式(Scan Conversion Mode),ADC在转换完一个通道后立刻转换下一个通道,直到规则组内的通道序列转换完。并启用DMA模式。_stm32f407 adc dma双重
细说STM32F407单片机RS485收发通信实例及调试方法
文章浏览阅读1.2k次,点赞18次,收藏31次。MCU上的串口UART(USART)是逻辑电平(TTL或CMOS电平),在开发板上实现与串口助手之间的RS485通信,就是把单片机上的逻辑电平通过RS485物理层芯片转换为RS485电平。本文继续使用旺宝红龙开发板STM32F407ZGT6 KIT V1.0。本文的目的是通过MAX485物理层芯片把开发板上的USART3(PB10、PB11)逻辑电平转换为RS485电平,然后通过一条USB转RS485的转换线连接到串口助手上。_stm32f407 rs485
细说STM32单片机软件触发设置DAC并在同一管脚上同时传递给ADC1和ADC2转换的方法
文章浏览阅读718次,点赞10次,收藏23次。在配置STM32单片机的管脚时,有的管脚可以同时配置为多种功能,这种情况给使用单片机的人带来十分的便利。比如,STM32F407ZGT6单片机只有一个DAC模块,这个模块有2个输出通道DAC_OUT1、DAC_OUT2。其中,DAC_OUT1输出引脚是PA4,DAC_OUT2输出引脚是PA5。在配置PA4为DAC_OUT1后,配置窗口出现绿色的“+”号,可以同时配置这个引脚为ADC1_IN4、ADC1_IN4。_io adc1 adc2同时配置
细说C/C++的宏定义跨行连接符的使用方法
文章浏览阅读780次,点赞28次,收藏3次。宏定义跨行连接符在C/C++编程中主要用于编写复杂的宏定义,以提高代码的可读性。当宏定义较长,写在一行不易于读懂时,可以使用跨行连接符 “\” 来指示连续的两行代码视为同一行宏定义。这样,编译器会将这两行代码视为一个整体进行处理。_宏定义中的连接符
警告 “variable ‘**‘ set but not used [-Wunused-but-set-variable]” 的解决办法
文章浏览阅读297次,点赞2次,收藏3次。例如,警告 "variable 'Data_Read' set but not used [-Wunused-but-set-variable]" ,指的是变量 Data_Read 被赋值了,但是在程序的其他部分没有被使用。如果不确定一个变量是否应该被删除,可以暂时注释掉该变量的相关代码,然后重新编译检查是否有其他错误或警告,这可以帮助你理解该变量是否真的需要。如果注释掉后没有其他问题,那么这个变量可能是多余的。如果暂时不想删除或使用这个变量,但想关闭这个警告,可以使用编译器的特定指令来忽略这个警告。_variable set but not used
警告“warning: ‘**‘ defined but not used [-Wunused-variable]”的解决办法
文章浏览阅读358次,点赞10次,收藏5次。在C或C++编程中,编译器发出的警告“warning: '**' defined but not used [-Wunused-variable]”意味着定义了一个变量**,但是在代码中并没有使用这个变量。这种警告通常是编译器为了帮助开发者发现可能存在的代码冗余或不完整的地方而发出的。_c语言解决 defined but not used
警告warning: missing braces around initializer [-Wmissing-braces]的解决办法
文章浏览阅读922次,点赞24次,收藏9次。仅列举与本文相关的必要的定义/* 引用头文件 *//* 宏定义 常数类*///下限表示显示类别 上限表示显示需要的页数//下限//上限//功能码属性//功能码属性表长度//每组功能码长度//功能码属性表中每组首个功能码序号//H0B组在辅助功能码中定义//H0D组在辅助功能码中定义//辅助功能码/* 结构体变量类型定义 枚举变量类型定义 */01:停机设定 02:显示 03:保留参数//2 保留//3 0:直接由上限限制 1:参数由上限相关功能码限制。_missing braces around initializer
警告warning: braces around scalar initializer的解决办法
文章浏览阅读562次,点赞10次,收藏11次。/本例中必要的结构体、联合体定义//面板结构体类型定义//扫描按键结构体类型定义//输入信号//经滤波后的输入信号//当前键扫描的值//当前键边沿状态//MODE键滤波计数器//UP键滤波计数器//DOWN键滤波计数器/SHIFT键滤波计数器//SET键滤波计数器//UP键和DOWN键加速计数器//UP键和DOWN键加速等级//UP键和DOWN键加速等级计数器// 键值定义UPKEY = 1,//键状态定义//面板菜单结构体类型定义。_braces around scalar initializer
警告warning: variable ‘**‘ set but not used [-Wunused-but-set-variable]的解决办法
文章浏览阅读302次,点赞5次,收藏9次。在C或C++编程中,编译器警告“warning: variable '**' set but not used [-Wunused-but-set-variable]”表明你声明了一个变量**,并且在你的代码中给它赋了值,但是在之后的代码中并没有使用这个变量的值。这种做法通常是不必要的,因为它会增加代码的复杂性和可能的错误风险,同时也会导致编译器的警告。_-wno-unused-but-set-variable
单片机编程中浮点数转定点数Q15查找表的设计方法
文章浏览阅读597次,点赞19次,收藏6次。大多数的MCU、DSP中的浮点数处理单元都是定点浮点数处理单元,处理定点数据会相当快,但是处理浮点数据就会非常慢。可以利用Q格式进行浮点数据到定点的转化,节约CPU时间。实际应用中,浮点运算大都时候都是既有整数部分,也有小数部分的。所以要选择一个适当的定标格式才能更好的处理运算。_q1.15定点数单片机
警告warning: *.elf has a LOAD segment with RWX permissions的解除方法
文章浏览阅读271次,点赞5次,收藏10次。警告信息“YS2416C.elf has a LOAD segment with RWX permissions”指的是在一个 ELF(Executable and Linkable Format)文件中,存在一个段(segment)被设置为可读(R)、可写(W)和可执行(X)权限。例如,在 GCC 中,可以使用 -z execstack 和 -z noexecstack 选项来控制栈和堆的执行权限。特别地,当使用STM32CubeIDE编译项目时,按如下方法限制段的权限,可以有效地解除标题出现的警告。_.elf has a load segment with rwx permissions
细说STM32单片机FreeRTOS基础知识及用法
文章浏览阅读758次,点赞9次,收藏17次。FreeRTOS是一个完全免费和开源的嵌入式实时操作系统,已被作为一个中间件集成到STM32 MCU固件库中。在STM32Cube开发方式中,用户可以很方便地使用FreeRTOS。一、FreeRTOS基础1、初识FreeRTOSFreeRTOS是一个完全免费和开源的嵌入式实时操作系统(Real-time Operating System,RTOS)。户很方便地在STM32Cube开发方式中使用FreeRTOS。_stm32 freertos
今日推荐
周排行