logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

计算机网络之TCP数据格式(二)

数据格式序列号确认应答号数据偏移即TCP首部的长度。如果该字段的值为5,那说明从TCP包的最一开始到20字节为止都是TCP首部 ,余下的部分为TCP数据。保留一般为0,不为0也不丢弃数据。控制位窗口大小校验和见文末的Wireshark实例分析。紧急指针选项类型2——MSS表示最大段长度类型3——WS表示窗口比例,窗口大小只有2字节,最大只有64KB,对于现在的技术来说太小了。所以实际窗口大小= 窗

#tcp/ip#网络#网络协议
阿里云物联网平台MQTT教程

之前一直使用的中移物联网ONENET平台的MQTT的功能,由于阿里云平台的MQTT功能支持SSL,所以使用了一下阿里云平。创建产品和设备首先肯定是进入阿里云官网,并搜索物联网平台,点击物联网平台控制台,注意不是飞燕平台。点击创建产品选择直连设备和X.509证书认证,其他的大家随意。不需要用到SSL的可以选择设备密钥认证,当然选择X.509证书认证的不使用SSL也是可以的,所以我这里选择的是.509

#物联网#阿里云
STM32F4操作内部FLASH简洁版

本文介绍了STM32 Flash操作的基本方法。主要包括:1)擦除操作使用HAL_FLASHEx_Erase函数,以扇区为单位进行擦除;2)写入操作使用HAL_FLASH_Program函数,支持字节、半字、字和双字写入;3)读取操作可直接访问Flash地址获取数据。文中提供了完整的代码示例,包括擦除、写入和读取的实现方法,并展示了测试结果。所有Flash操作都需要先解锁,完成后重新上锁。测试结果

文章图片
#stm32#嵌入式硬件#单片机
STM32 真随机数RNG使用

本文介绍了如何在STM32中使用硬件随机数生成器(RNG)。首先通过STM32CubeMX启用RNG功能,自动生成初始化代码。然后演示了两种获取随机数的方式:轮询模式和中断模式。轮询方式需要检查返回值,中断方式则通过回调函数获取数据。注意两个随机数之间需要间隔40个PLL48CLK时钟周期。最后展示了实际运行时的随机数输出结果,验证了每次复位都能生成不同的随机数。代码示例清晰展示了RNG的配置和使

#stm32#嵌入式硬件#单片机
RT-Thread源码阅读(1)——基本框架

本文基于RT-Thread V4.1.1和STM32F103(Cortex-M3)平台,使用STM32CubeIDE(GCC)编译环境,旨在解析RT-Thread的基本设计逻辑。文章首先介绍了双向链表的核心操作,包括插入、初始化和判断链表是否为空等。接着,通过链表元素反推内核对象地址的方法,展示了如何从链表节点获取线程对象的结构体首地址。随后,文章详细描述了RT-Thread的启动流程,包括板级初

#嵌入式#单片机#物联网
STM32实现SPI转USB虚拟串口输出(实测40M时钟不丢包)

MCU端SPI时钟40M,满速发送,实测PC端串口接收长时间不丢包

文章图片
#stm32#嵌入式
STM32中的MCO

在嵌入式系统中,时钟是一个至关重要的部分。STM32微控制器系列提供了一个名为MCO(Microcontroller Clock Output)的功能,它允许用户将微控制器内部的时钟信号输出到外部设备。这对于调试、测试或者与其他设备同步时钟非常有用。在这篇博客中,我们将深入了解STM32中的MCO功能,介绍如何配置MCO以及它的常见应用。

文章图片
#stm32#单片机#嵌入式硬件
STM32 真随机数RNG使用

本文介绍了如何在STM32中使用硬件随机数生成器(RNG)。首先通过STM32CubeMX启用RNG功能,自动生成初始化代码。然后演示了两种获取随机数的方式:轮询模式和中断模式。轮询方式需要检查返回值,中断方式则通过回调函数获取数据。注意两个随机数之间需要间隔40个PLL48CLK时钟周期。最后展示了实际运行时的随机数输出结果,验证了每次复位都能生成不同的随机数。代码示例清晰展示了RNG的配置和使

#stm32#嵌入式硬件#单片机
【避坑指南】结构体取值不一致:#pragma pack 导致的 ABI 灾难

摘要: 本文揭露嵌入式开发中因#pragma pack误用导致的结构体数据错乱问题。当不同源文件对同一结构体的对齐方式理解不一致时(如main.c使用默认对齐,driver.c强制1字节对齐),会出现指针地址相同但数据读取错位的"ABI不匹配"现象。建议使用__attribute__((packed))替代全局#pragma pack,并添加静态断言_Static_assert

#stm32#嵌入式#单片机
    共 25 条
  • 1
  • 2
  • 3
  • 请选择