醋醋百科网

Good Luck To You!

Spring Boot 3.x 升级的坑 和 新特性亮点

Spring Boot 3.x 升级相比 2.x 变化非常大,因为它基于 Spring Framework 6Jakarta EE 10,牵涉到包名、依赖、JDK 要求等多个层面。


一、升级的坑(常见踩雷点)

Spring Boot 3.x 日志配置与 Logback 集成指南

Spring Boot 3.x 日志配置与 Logback 集成指南

一、Spring Boot 3.x 日志基础

Spring Boot 3.x 默认使用 Logback 作为日志框架,通过
spring-boot-starter-logging 自动引入。

嵌入式RTOS就业级项目入门与实战(基于FreeRTOS) | 已完结

“获课”: itxt.top/14647/

嵌入式 RTOS 就业级项目入门与实战(基于 FreeRTOS)

在嵌入式领域,实时操作系统(RTOS)已成为复杂嵌入式系统开发的核心支撑。随着物联网、工业控制等领域的爆发式增长,掌握 RTOS 技术的工程师成为企业争抢的稀缺人才。FreeRTOS 作为一款开源、轻量、高效的 RTOS,凭借其出色的实时性和广泛的硬件兼容性,成为嵌入式工程师入门 RTOS 的首选。本文将以就业为导向,从 FreeRTOS 核心知识入手,通过实战项目带读者掌握嵌入式 RTOS 开发的核心技能。

【经典整理】90款传感器单片机代码例程(代码+原理图+说明书)

网盘链接:
https://pan.baidu.com/s/1Sxofh0pmwxxl_bnSraXaBA?pwd=1688

提取码:1688

=============== 传感器清单 =============

[20A电流传感器]

[5A电流传感器模块]

「瞎折腾系列」MM32F103空气质量检测仪

还是我的风格,开篇先啰嗦:


闲来无事,太难的不会,就想玩玩手里的吃灰板子。


去年在灵动的活动中获得一块MM32L073为主控的开发板,型号为eMiniBoard MB-023。当时测评就写了一个开箱和串口测试,现在重新捡起来,玩点小应用,因为手头的传感器有限,只能做一个空气质量检测仪,主要包含三个功能:空气温度检测,空气湿度检测和PM2.5浓度检测。

10个极品智能车方案合辑,夏日避暑进阶两不误

炎炎夏日,空调房西瓜的搭配好不自在。整理了10个极品智能车方案,在家避暑的同时,玩玩智能车,顺便提升下自己的技能吧。

1、极品智能飞车 wifi和Android控制小车(获奖作品原创)本极品飞车采用意法半导体公司的STM32F401(STM 32F401数据手册)芯片作为主控制芯片,分为PC客户端和智能小车两部分。通过WM3612—wifi模块连接路由器组建局域网系统,PC客户端通过无线获取智能小车的当前位置以及视野,根据这些信息同样利用无线方式发出控制信息,远程操作小车;智能小车上的Android手机连接本局域网,使用摄像头采集前方视频信息,并发送到PC客户端。智能小车根据PC客户端发送的控制信息做出相应动作,实现前进、左右转弯、停止等动作。https://www.cirmall.com/circuit/1342

毕业设计|语音识别智能家居制作(语音识别在智能家居上的应用)

智能家居类项目在毕业设计中最为常见,虽然已经到了“烂大街”的程度,但摆正心态,可以加入很多创新点,依然能学到更多知识。

本次分享的项目是Cheng小白毕设,代码和论文都分享出来了,希望可以给正在做毕设的同学一些帮助。项目相关设计资料可以在“

学习STM32编程——基于 RS-485 总线的多机通信应用开发

关键代码:

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);
    }
}

ESP8266系列-基本外设操作(esp8266-01s教程)

接着上一篇,可以下载helloworld.bin之后,开始测试下SDK下面的外设,利用手上的资源,看看效果。




STM32搭建简易环境监测站并通过网络实时上报

一、系统总体架构

本系统以STM32F407为核心,搭建一个环境监测节点,能够采集温湿度、光照、空气质量等数据,并通过OLED屏显示,同时通过ESP8266模块实现局域网数据上报。适合室内空气监测、智慧农业等初级应用场景。

<< < 65 66 67 68 69 70 71 72 73 74 > >>
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言