#include <uwidjw.h>
首页
登录
菜单
首页
#include <uwidjw.h>
归档
2025 年 12 月
日本旅行-01
2025-12-02
2025日本旅行
出发时间是11月26号周三的凌晨,出发之前因为高市早苗的言论和家里人拉扯了一下,不过最终还是决定出发去日本。 这是第一次尝试红眼航班,落地时间是当地时间的6点。体验一次以后觉得这辈子再也不会去尝试红眼了,在机场没有什么机会能休息,飞机上吃完飞行餐之后又睡不着,落地放好行李还要等到下午三点才能入住,当
日本旅行-0
2025-12-02
2025日本旅行
前段时间跑日本玩去了😋学习进度停了一段时间 日本旅行这局是在暑假春秋航空发99机票时候攒的。当时发消息的哥们儿自己鸽了说课太多不好翘。要我说大学不翘课怎么能叫大学呢是吧。 当时买了99的机票后来还是退了,原因是繁华上一次去日本坐的ANA怀疑是看不上廉航了,不过这也不是坏事,毕竟后面发生了什么大家都
2025 年 11 月
代码重构-可移植的驱动
2025-11-23
从零构建工业级STM32U5 LoRa低功耗节点
#STM32U5
#RTOS
STM32HAL库强耦合驱动 硬汉哥有句话我记得很清楚:“嵌入式开发的痛是兼容性”。最开始我的驱动代码底层与STM32的HAL库强耦合,比如会在文件开头extern I2C_HandleTypeDef hi2c1来引入HAL库中i2c的句柄,再编写驱动底层的原子操作: static HAL_Stat
低功耗设计-IWDG与GPIO
2025-11-23
从零构建工业级STM32U5 LoRa低功耗节点
#STM32U5
系统高可用-IWDG 为了保证设备长时间的运行有足够的稳定性,即使是出现严重的系统故障也能继续尝试重启设备,我们需要配置IWDG。IWDG是独立看门狗,依赖于LSI内部低速时钟,这可以让这个功能保证高可用,只要MCU有电,无论是什么外设损坏了,或者是外部时钟出现了问题,IWDG都可以保持运行,尝试重
RTOS进阶:竞态条件与优先级反转
2025-11-23
从零构建工业级STM32U5 LoRa低功耗节点
#RTOS
#STM32U5
#DEBUG
案发现场 完成所有的模块外设调试后开始编写业务代码,初次接触RTOS下的业务代码编写,出现了一些小bug。 使用CubeMX生成RTOS任务(默认生成的工程有四个DefaultTask属实难绷): /* Definitions for LoraTask */ osThreadId_t LoraTas
LPDMA与SRAM4联调-测试部分
2025-11-22
从零构建工业级STM32U5 LoRa低功耗节点
#STM32U5
#DEBUG
完成LPDMA与SRAM4配置后,修改原先的代码并进行测试,发现接收不到任何数据,于是进行调试: 串口发送调试 我先进行了串口发送的调试,APP代码中将生成的遥测数据通过memcpy将生成的tx_buf数据从SRAM1内存中,通过调试器可以看到SRAM4中的数据。 在向tx_buf搬运完数据后打断点
LPDMA与SRAM4联调
2025-11-21
从零构建工业级STM32U5 LoRa低功耗节点
#STM32U5
STM32U5中的两个域 LPDMA是STM32U5中实现超低功耗的一个重要外设。STM32U5有域的概念,包括两个域: CD(CPU Demain) SRD(Smart Run Domain) CD是CPU域,包括Cortex-M33内核,Flash存储器,大部分高性能外设(GPDMA1,高速通信
项目综述与架构设计
2025-11-21
从零构建工业级STM32U5 LoRa低功耗节点
#STM32U5
#DEBUG
#RTOS
项目背景 大二时候实验室为了申报一个新苗项目,需要制作一个低功耗的农场遥测数据传感器节点,需要的是实现低功耗数据采集与发送,最好还能够实现对服务器下发的RPC命令的响应。第一版制作代码非常粗糙,一个几乎可以认为完全不存在鲁棒性的系统。当时使用STM32F103C8T6搭配标准库进行开发(经典),其中