Spring Boot 3.x 升级相比 2.x 变化非常大,因为它基于 Spring Framework 6 和 Jakarta EE 10,牵涉到包名、依赖、JDK 要求等多个层面。
2025年08月16日
Spring Boot 3.x 升级相比 2.x 变化非常大,因为它基于 Spring Framework 6 和 Jakarta EE 10,牵涉到包名、依赖、JDK 要求等多个层面。
2025年08月16日
Spring Boot 3.x 默认使用 Logback 作为日志框架,通过
spring-boot-starter-logging 自动引入。
2025年08月16日
“获课”: itxt.top/14647/
在嵌入式领域,实时操作系统(RTOS)已成为复杂嵌入式系统开发的核心支撑。随着物联网、工业控制等领域的爆发式增长,掌握 RTOS 技术的工程师成为企业争抢的稀缺人才。FreeRTOS 作为一款开源、轻量、高效的 RTOS,凭借其出色的实时性和广泛的硬件兼容性,成为嵌入式工程师入门 RTOS 的首选。本文将以就业为导向,从 FreeRTOS 核心知识入手,通过实战项目带读者掌握嵌入式 RTOS 开发的核心技能。
2025年08月16日
网盘链接:
https://pan.baidu.com/s/1Sxofh0pmwxxl_bnSraXaBA?pwd=1688
提取码:1688
=============== 传感器清单 =============
[20A电流传感器]
[5A电流传感器模块]
2025年08月16日
还是我的风格,开篇先啰嗦:
闲来无事,太难的不会,就想玩玩手里的吃灰板子。
去年在灵动的活动中获得一块MM32L073为主控的开发板,型号为eMiniBoard MB-023。当时测评就写了一个开箱和串口测试,现在重新捡起来,玩点小应用,因为手头的传感器有限,只能做一个空气质量检测仪,主要包含三个功能:空气温度检测,空气湿度检测和PM2.5浓度检测。
2025年08月16日
炎炎夏日,空调房西瓜的搭配好不自在。整理了10个极品智能车方案,在家避暑的同时,玩玩智能车,顺便提升下自己的技能吧。
1、极品智能飞车 wifi和Android控制小车(获奖作品原创)本极品飞车采用意法半导体公司的STM32F401(STM 32F401数据手册)芯片作为主控制芯片,分为PC客户端和智能小车两部分。通过WM3612—wifi模块连接路由器组建局域网系统,PC客户端通过无线获取智能小车的当前位置以及视野,根据这些信息同样利用无线方式发出控制信息,远程操作小车;智能小车上的Android手机连接本局域网,使用摄像头采集前方视频信息,并发送到PC客户端。智能小车根据PC客户端发送的控制信息做出相应动作,实现前进、左右转弯、停止等动作。https://www.cirmall.com/circuit/1342
2025年08月16日
智能家居类项目在毕业设计中最为常见,虽然已经到了“烂大街”的程度,但摆正心态,可以加入很多创新点,依然能学到更多知识。
本次分享的项目是Cheng小白毕设,代码和论文都分享出来了,希望可以给正在做毕设的同学一些帮助。项目相关设计资料可以在“
2025年08月16日
关键代码:
usart2.c
/**
* @brief USART2 初始化
* @param baud: 波特率设置
* @retval None
*/
void USART2_Init(uint32_t baud)
{
GPIO_InitTypeDef GPIO_InitStructure;
USART_InitTypeDef USART_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOG,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); // 使能 USART2 时钟
/* USART2 引脚复用映射 */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); //PA2 复用为 USART2
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); //PA3 复用为 USART2
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; //PA2 与 PA3
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; // 复用功能
GPIO_InitStructure.GPIO_Speed = GPIO_Fast_Speed; // 速度 50MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // 推挽复用输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; // 上拉
GPIO_Init(GPIOA, &GPIO_InitStructure); // 配置生效
//PG8 推挽输出 , 用于 RS-485 模式控制
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //PG8
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 输出
GPIO_InitStructure.GPIO_Speed = GPIO_High_Speed; // 速度 100MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; // 推挽输出
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; // 上拉
GPIO_Init(GPIOG, &GPIO_InitStructure); // 配置生效
/* USART2 初始化设置 */
USART_InitStructure.USART_BaudRate = baud; // 波特率设置
USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 字长 8bit
USART_InitStructure.USART_StopBits = USART_StopBits_1; // 一个停止位
USART_InitStructure.USART_Parity = USART_Parity_No; // 无奇偶校验位
USART_InitStructure.USART_HardwareFlowControl =
USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;// 收发模式
USART_Init(USART2, &USART_InitStructure); // 配置生效
USART_Cmd(USART2, ENABLE); // 使能 USART2
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE); // 开启接收中断
USART_ITConfig(USART2, USART_IT_IDLE, ENABLE); // 开启空闲中断
/* USART2 NVIC 配置 */
NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
RS485_RX_MODE; // 默认为接收模式
}
/**
* @brief USART2 发送一个字节
* @param ch: 要发送的字节数据
* @retval None
*/
void USART2_SendByte(uint8_t ch)
{
/* 发送一个字节数据到 USART2 */
USART_SendData(USART2, ch);
/* 等待发送完毕 */
while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
}
/**
* @brief USART2 发送一个字符串
* @param *str: 要发送的字符串
* @param strlen: 字符串长度
* @retval None
*/
void USART2_SendString(uint8_t *str, uint8_t strlen)
{
unsigned int k = 0;
RS485_TX_MODE; // 进入发送模式
do
{
USART2_SendByte(*(str + k));
} while (k++ < strlen);
RS485_RX_MODE; // 进入接收模式
}
/**
* @brief USART2 中断服务函数
* @param None
* @retval None
*/
void USART2_IRQHandler(void)
{
uint8_t Res, forclear;
if (USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
{
Res = USART_ReceiveData(USART2);
USART2_RX_Buffer[USART2_RX_Index++] = Res;
/* 防止接收缓存下标溢出 */
if (USART2_RX_Index >= USART2_RX_MAX)
USART2_RX_Index = 0;
}
if (USART_GetITStatus(USART2, USART_IT_IDLE) != RESET)
{
USART2_RX_OverFlag = 1;
forclear = USART_ReceiveData(USART2);
}
}
2025年08月16日
本系统以STM32F407为核心,搭建一个环境监测节点,能够采集温湿度、光照、空气质量等数据,并通过OLED屏显示,同时通过ESP8266模块实现局域网数据上报。适合室内空气监测、智慧农业等初级应用场景。