自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 基于野火stm32f407实现多任务动态创建

本文展示了基于FreeRTOS的动态多任务创建实现。程序首先初始化硬件外设,然后创建主任务APPTaskCreate,该任务在临界区内动态创建LED1Task和LED2Task两个子任务。LED任务以500ms间隔控制LED灯状态切换并输出调试信息。主任务在完成子任务创建后自我删除。代码通过xTaskCreate()函数实现任务创建,使用vTaskDelay()进行延时,并采用临界区保护任务创建过程。BSP_Init()函数完成中断优先级配置和硬件初始化,最终通过任务调度器启动多任务执行。

2025-11-14 20:48:41 648

原创 基于野火stm32f407实现动态任务创建点亮LED灯

本文介绍了在STM32F4平台上使用FreeRTOS实现动态任务创建的过程。主要内容包括:1)添加FreeRTOS和板级支持包头文件;2)创建任务句柄和声明任务函数;3)在main()中初始化硬件并通过xTaskCreate()创建主任务APPTaskCreate;4)在主任务中动态创建LEDTask,控制LED闪烁并输出状态信息;5)使用任务调度器启动系统。代码实现了优先级为2的LED任务,每500ms切换LED状态并通过串口打印运行信息。最后演示了任务删除和临界区保护操作。

2025-11-13 20:51:03 773

原创 基于野火Stm32f407实现静态创建任务点亮LED灯

1.在此之前你可能在keil里面用不了xTaskCreateStatic()这个函数,你要先把configSUPPORT_STATIC_ALLOCATION这个宏定义改为1,这里之前是0。(1)包含好FreeRTOS相关头文件和板载外设头文件。3.编译代码,成功如图所示。

2025-11-13 17:06:42 494

原创 基于野火stm32f407移植freertos(标准库版)

摘要:本文介绍了在STM32标准库模板上移植FreeRTOS的详细步骤,包括从官网下载源码、建立文件夹结构、移植关键文件、添加配置文件等。重点说明了移植过程中遇到的各种编译错误及解决方法,如包含头文件、修改FreeRTOSConfig.h配置、注释冲突函数、调整宏定义等。通过逐步解决移植过程中出现的7类错误,最终实现了FreeRTOS在STM32平台上的成功运行。

2025-11-11 22:31:56 218

原创 在单片机开发中一些常用的汇编指令

该摘要介绍了常见的ARM汇编指令操作:1)内存读写指令(Load/Store)用于寄存器与内存间的数据传输;2)算术运算指令(ADD/SUB)实现寄存器间或立即数的加减;3)比较指令(CMP)将结果存入状态寄存器;4)跳转指令(B/BL)支持直接跳转或带返回地址的跳转。这些指令涵盖了数据存取、算术运算、程序控制等基本功能,展示了ARM汇编的核心操作方式。

2025-10-24 21:41:06 90

原创 基于野火F407开发板实现电源管理-PVD监控

本文介绍了STM32F4系列微控制器中电源电压监测器(PVD)的配置方法。通过创建bsp_pvd.c/h和main.c三个文件,实现了PVD功能初始化配置。在bsp_pvd.c中,设置了NVIC中断优先级、EXTI16线中断触发方式,并配置PVD阈值为级别5后使能该功能。主函数中先初始化LED指示正常状态,再调用PVD配置函数。程序编译后成功烧录至开发板,为系统提供了电源电压异常监测功能。

2025-09-09 15:55:31 265

原创 基于野火F407开发板实现电源管理-停止模式

本文介绍了STM32F407开发板的外部中断配置及停止模式唤醒功能实现。通过创建bsp_exti.c/h文件,配置了GPIOA0和GPIOC13两个按键的外部中断(KEY1上升沿触发,KEY2下降沿触发),并设置NVIC中断优先级。主程序实现了运行状态指示灯(绿灯)、停止模式(红灯)和唤醒状态(蓝灯)的循环切换,演示了通过按键从停止模式唤醒的过程。系统在停止模式下关闭FLASH电源以降低功耗,唤醒后自动恢复PLL时钟配置。实验还提供了在停止模式下通过复位键实现程序下载的解决方案。

2025-09-09 15:40:33 695

原创 基于野火F407开发板实现电源管理-睡眠模式

本文介绍了STM32F407开发板低功耗睡眠模式的实现方法。通过创建工程文件并编写bsp_exti.c/.h和main.c代码,实现了按键中断唤醒功能。程序运行时绿灯表示正常运行,红灯表示睡眠状态,蓝灯表示唤醒状态。系统循环执行"正常运行->睡眠->按键唤醒"的过程,其中KEY1配置为上升沿触发,KEY2为下降沿触发。在睡眠模式下,可通过DAP下载器唤醒后重新下载程序。该方案展示了STM32的低功耗特性及外部中断唤醒机制。

2025-09-09 15:18:55 635

原创 基于野火F407开发板实现电源管理-待机模式

本文介绍了基于STM32F407开发板的待机模式控制程序。程序通过LED指示灯显示复位来源(绿灯表示上电复位,蓝灯表示待机唤醒复位),并实现长按KEY2进入待机模式、按KEY1唤醒的功能。主程序初始化LED、调试串口和按键后,通过检测PWR_FLAG_WU标志判断复位来源,并输出相应提示信息。当检测到KEY2长按时,系统会进入待机模式,此时可通过KEY1唤醒且系统会复位重启。程序还包含延时函数和长按检测逻辑。最后将编译成功的代码烧录至开发板运行。

2025-09-09 14:44:15 663

原创 基于野火stm32F407开发板实现窗口看门狗

本文介绍了STM32F4窗口看门狗(WWDG)的实现方法。通过创建工程目录和三个关键文件(bsp_wwdg.c、bsp_wwdg.h、main.c),详细说明了WWDG的配置流程。代码实现了WWDG的中断配置、时钟使能、窗口值和计数器设置等功能,并在主程序中通过LED状态变化展示喂狗操作。编译成功后烧录到开发板验证功能,当计数器值低于窗口值时执行喂狗操作,确保系统正常运行。该实现包含了NVIC中断优先级配置、WWDG参数设置等关键技术点,为嵌入式系统提供了可靠的看门狗保护机制。

2025-09-04 16:13:37 918

原创 基于野火stm32开发板实现独立看门狗

摘要:本文展示了一个基于STM32F4的独立看门狗(IWDG)应用实例。工程包含main.c、bsp_iwdg.c和bsp_iwdg.h三个文件,实现了以下功能:1)通过LED指示灯区分是否为看门狗复位;2)配置64分频和256重载值,设置1秒超时溢出;3)按键检测功能,当按键按下时执行喂狗操作并点亮绿灯。完整代码展示了IWDG初始化配置、喂狗操作以及复位状态检测的实现方法,适用于需要监控系统运行的嵌入式应用场景。

2025-09-03 18:49:56 693

原创 基于野火stm32f407实现DMA点亮rgb灯

本文介绍了如何用DMA和USART串口通信来实现点亮rgb灯

2025-06-19 21:14:23 671

原创 基于野火stm32f407开发板实现DMA串口接收和发送

STM32 DMA数据传输实现 本程序展示了STM32F4系列MCU的DMA(直接存储器访问)功能实现。主要功能包括: 定义32位源数据缓冲区(0x01020304到0x7D7E7F80)和目标缓冲区 配置DMA2数据流0进行存储器到存储器的数据传输 通过LED颜色指示传输结果:蓝色表示传输成功,红色表示失败 包含DMA初始化配置、数据传输状态检测和缓冲区比较功能 程序采用了DMA的高优先级模式,使用字(32位)传输单位,并设置了超时检测机制以确保系统可靠性。

2025-06-18 22:29:29 787

原创 基于野火stm32f407实现USART串口通信

摘要:本文介绍了STM32F4串口通信程序的实现过程,包括创建工程目录结构、编写主程序main.c、串口驱动文件bsp_usart.c及头文件bsp_usart.h。程序实现了通过USART1(波特率115200)进行数据传输,支持字符和字符串发送,并可通过串口指令控制RGB彩灯颜色(1-8对应不同颜色)。关键功能包括GPIO初始化、串口配置、中断设置,以及fputc/fgetc重定向实现printf/getchar功能。代码通过编译后成功烧录至开发板运行。

2025-06-15 20:27:23 591

原创 基于野火stm32f407开发板实现systick系统时钟

摘要:本文介绍了基于STM32F4的SysTick延时功能实现。工程包含三个文件:bsp_systick.h声明延时函数接口,bsp_systick.c实现毫秒级延时功能(包括Systick初始化和两种延时方法),main.c通过LED闪烁验证延时效果。代码通过SysTick定时器实现精确延时,编译后成功烧录至开发板运行,LED以300ms间隔闪烁。系统采用SysTick_Config配置1ms时基,提供Delay_ms和SysTick_Delay_Ms两种实现方式,为STM32开发提供基础定时功能。(15

2025-06-12 23:13:44 263

原创 基于野火stm32f407实现EXTI中断

摘要:本文展示了基于STM32F4的GPIO与外部中断配置工程。工程包含main.c、bsp_exti.c和bsp_exti.h三个核心文件,实现了LED初始化和按键外部中断配置功能。main.c初始化硬件并进入主循环;bsp_exti.c配置3个LED的GPIO输出模式(推挽输出、上拉、2MHz速率);bsp_exti.h定义了按键相关的中断引脚和参数。代码编译后成功烧录至开发板,验证了GPIO控制和外部中断的基本框架。

2025-06-10 21:13:38 652

原创 基于野火stm32f407创建新工程

本文摘要: 详细介绍了基于STM32F4系列芯片的Keil5工程搭建步骤。首先创建项目文件夹结构,包含Libraries、Project等5个子目录;在Libraries中移植CMSIS和标准外设驱动库。随后配置User目录下的核心文件(main.c等),通过Keil5新建工程并建立RVMDK目录。工程模板需设置STARTUP、USER等5个分组,禁用部分外设驱动文件。最后进行代码优化,包括清理main.c内容、调整中断文件引用,添加必要的宏定义和头文件,完成工程编译。整个过程系统性地展示了STM32F4标

2025-06-04 22:32:02 364

原创 基于野火stm32f407开发板实现RCC时钟数HSI配置

本文介绍了基于STM32F4的时钟系统配置与LED控制实现。工程创建了main.c、bsp_clkconfig.c和bsp_clkconfig.h三个核心文件,通过HSI_SetSysClock()函数配置系统时钟(PLLM=16, PLLN=336, PLLP=2, PLLQ=7),并初始化GPIO控制LED闪烁。代码实现了MCO1输出PLL时钟、MCO2输出系统时钟的功能,同时包含LED1亮灭控制的延时循环。编译烧录后,开发板可正常运行,验证了时钟配置和GPIO控制的正确性。

2025-06-02 21:14:45 660

原创 基于野火stm32f407开发板实现RCC时钟数HSE配置

摘要:本文介绍了STM32F4开发环境搭建及时钟配置的实现过程。首先创建工程目录和三个核心文件:main.c、bsp_clkconfig.c和bsp_clkconfig.h。其中main.c实现LED控制逻辑,bsp_clkconfig.c包含外置高速时钟(HSE)配置函数,通过PLL参数设置系统时钟。完成代码编写后,经编译无误后成功烧录至开发板,实现了系统时钟配置和LED闪烁功能。工程采用模块化设计,包含时钟初始化、GPIO配置等关键操作,为后续开发提供了基础框架。

2025-06-02 20:57:39 975

原创 基于野火stm32开发板实现RCC时钟树系统时钟配置

本文介绍了基于STM32F407开发板的时钟配置和LED控制实现。首先创建了工程目录结构,包含main.c、bsp_clkconfig.c和.h文件。main函数通过调用User_SetSysClock()配置系统时钟,使用LED_GPIO_Config()初始化LED,并实现LED1闪烁效果。bsp_clkconfig.c详细实现了HSE时钟源配置过程,包括PLL参数设置、时钟分频配置和FLASH访问优化。编译成功后,程序烧录至开发板可观察到LED闪烁。整个工程实现了基本的时钟系统初始化和GPIO控制功能

2025-06-02 20:35:31 890

原创 基于野火stm32f407的GPIO输入按键检测

摘要:本文展示了基于STM32F407开发板的LED控制项目实现过程。首先创建了工程目录结构,包含main.c、bsp_key.c和bsp_key.h等文件。main.c实现了主控制逻辑,通过按键扫描(PA0和PC13)来切换LED状态;bsp_key.c进行GPIO配置和按键扫描功能实现;bsp_key.h定义了相关宏和函数原型。项目使用野火开发板平台,包含时钟配置、GPIO初始化等标准操作,最终编译并烧录代码至开发板运行。整个流程展示了嵌入式开发中硬件外设控制的基本方法。

2025-06-01 20:35:05 794

原创 基于野火stm32f407开发板使用固件库点亮LED灯

摘要:本文展示了STM32F4开发板的LED控制项目代码实现。项目包含bsp_led.h头文件定义LED配置函数,bsp_led.c实现GPIO初始化(包括时钟使能、引脚配置为输出模式等),以及main.c主程序循环控制三个LED(PF6、PF7、PF8)的闪烁效果。代码通过Delay函数实现延时,编译后成功烧录到开发板运行。整个工程结构清晰,实现了基本的LED控制功能。

2025-06-01 20:17:28 363

原创 基于野火stm32f407开发板使用寄存器点亮LED灯

本文介绍了STM32F4系列微控制器的GPIO端口配置与使用流程。首先创建工程并编写stm32f4xx.h文件,定义了GPIOF和RCC外设的寄存器映射地址。然后在main.c文件中实现了GPIO端口控制:1)开启GPIOF时钟;2)配置PF6引脚为输出模式;3)通过置位/清零ODR寄存器实现LED闪烁效果。程序包含简单的延时函数和必要的SystemInit空函数。最后完成编译并烧录至开发板验证。该代码展示了STM32寄存器级编程的基本方法,包括时钟使能、模式配置和输出控制等关键操作。

2025-05-30 22:17:06 360

原创 苍穹外卖公共字段自动填充

本文介绍了如何通过自动填充公共字段来减少程序中的重复代码。首先,在sky-common模块的com.sky.annotation包下创建AutoFill注解,用于标识需要自动填充的方法。接着,在com.sky.aspect包下创建AutoFillAspect切面类,通过AOP技术拦截带有AutoFill注解的方法,并根据操作类型(插入或更新)自动填充公共字段,如创建时间、创建用户、更新时间等。该方法有效减少了代码冗余,提高了开发效率。

2025-05-18 18:36:05 656

原创 麒麟系统部署Nginx服务

5.输入命令sudo systemctl restart nginx.service重启服务再输入命令firefox localhost:8888访问页面。3.输入命令cd /etc/nginxzai在输入命令sudo vim nginx.conf进行编辑删除里面全部内容写入以下内容。1.输入命令cd ~切换到家目录,再输入命令sudo apt install -y nginx安装服务。2.输入命令sudo cp nginx.conf nginx.conf.backup3。

2024-12-24 23:01:27 557

原创 麒麟系统上部署tomcat服务

如果服务没启动那就可能是8080端口被占用了需要用kill命令杀掉进程,先用命令ss -lntp | grep 8080查看进程号再使用命令kill -9 pid杀掉。6.输入命令cd ..返回上一级目录,在输入命令cd .以及cd ..返回上一级目录再输入命令cd bin/切换目录。5.输入命令cd jy2309/切换在此路径下输入命令sudo vim index.html编辑文件保存退出。3. 输入命令cd tomcat9进行切换再输入命令cd webapps/进行切换。

2024-12-24 17:15:27 1168

原创 麒麟系统上部署apache2服务

9.输入命令cd ..返回上一级目录,再输入cd sites-enabled/进行切换,再输入sudo ln -s ../sites-available/jy2309.conf ./jy2309.conf建立软链接。7.输入命令cd /etc/apache2再输入命令cd sites-avaliable进行切换,完成切换,输入sudo cp 000-default.conf jy2309.conf。10. 输入命令cd ..返回上一级目录,在输入命令sudo vim apache2.conf进行编辑。

2024-12-23 23:00:57 787 6

原创 麒麟系统上部署Mysql数据库

6输入alter user root@localhost indentified with mysql_native_password by "密码"修改数据库密码(如果需要的话)8.输入use jy2309使用它,再输入create table stu()创建一张表,后面就是MySQL的增删改查根据图片操作。2.输入命令sudo apt install -y mysql-server安装MySQL数据库。3.输入命令sudo cat /etc/mysql/debian.cnf查看用户和密码。

2024-12-23 18:30:12 1042

原创 麒麟系统上配置samba服务

4.输入命令sudo /etc/samba/smb.conf配置文件根据需要配置然后保存并退出。1.输入命令sudo apt instsall -y samba安装samba服务。5.输入命令sudo systemctl restart smbd重启smbd服务。3.创建一个目录输入命令mkdir -m 777 自己想输什么就输什么。6.在文件管理输入框输入smb://自己的ip:445效果如下。2.输入命令cd /data/usershare进行切换。

2024-12-22 20:20:44 2534

原创 麒麟系统上部署FTP服务

7.在 /etc/vsftpd 目录下新建目录 vsftp_virtual_user_conf ,用于存放虚拟用户权限配置文件。5.在 /etc/vsftpd 目录下创建虚拟用户配置文件 vsftpd_virtual_user 输入命令。6.修改vsftpdd中pam配置文件输入命令sudo vim /etc/pam.d/vsftpd。3.输入sudo vim /etc/vsftpd.conf命令修改vsftpd服务配置。4.创建虚拟用户输入sudo mkdir /etc/vsftpd命令。

2024-12-22 19:23:13 1922

原创 麒麟系统部署ssh服务

3.输入sudo vim sshd_config编辑这个文件把port22、PermitRootLogin、MaxSession、printmotd前面的注释去掉然后保存并退出。1.安装ssh,输入命令sudo apt install ssh 来完成安装,效果图如下。4. 输入sudo vim /etc/motd编辑这个文件,输入年龄学号保存并退出。5.输入命令systemctl restart sshd和密码重启sshd服务。2.切换到/etc/ssh目录。6.然后用远程软件连接。

2024-12-20 17:26:48 2857

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除