STM32F411 Discovery学习笔记(三)中断与按键

记录2——stm32f411CEU6的LED灯玩UART+DMA通信、外部中断EXIT、定时器中断(另含Proteus仿真) 文章目录前言一、UART+DMA1.配置工程代码实现二、外部中断EXIT1.配置工程2.代码实现步骤三.定时器中断配置工程代码实现1.开启定时器中断2.定时器中断回调函数总结 前言 一、UART+DMA 1.配置工程 1.引脚配置PC13如上一次方法一样 2.配置USART2 优先级配置很重要!!! 代码实现 /* USER CODE BEGIN 0 */ uint8_t temp1[]="abc"; uint8_t temp2[2]; //声明发射与接收的变量 /* Initialize a 阅读详情

拖了好几天终于进入到中断的学习了
我们的任务目标是采用中断的方式通过411板上的按键控制LED的亮灭

中断源的设置

打开STM32CubeMx,按照之前的方法新建文件
设置中断源,查阅开发板手册发现开发板有两个按键,一个是User一个是Reset.很显然我们要用User键。
在这里插入图片描述
很显然USER键连接到了GPIO A0上,但是低有效还是高有效并不知道。
别急,manual一定会写的。
在这里插入图片描述
根据原理图,当按键被按下的时候,PA0读入高电平,也就是说PA0高有效。那么一切都简单了。
在这里插入图片描述
在cubeMx里将PA0设置成外部中断0
在这里插入图片描述
进一步对PA0进行设置,将其设置为上升沿触发,也就是我们按下按键的一瞬间执行中断服务子函数。
在这里插入图片描述
开启中断使能。生成MDK工程

编写中断服务子程序

/* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
		HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET);
		HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
/* USER CODE BEGIN 4 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
	if (GPIO_Pin==GPIO_PIN_0)
	{
		HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_SET);
		HAL_Delay(1000);
	}

}
/* USER CODE END 4 */

编译烧录程序,成功!

STM32F411E-DISCOVERY音频滤波实战:IIR滤波器与CMSIS-DSP实现 数字滤波器是嵌入式音频处理的基础技术,按冲激响应特性分为FIR与IIR两类。其中IIR凭借较低阶数实现高效滤波,在实时音频场景中广泛采用。ARM官方的CMSIS-DSP库针对Cortex-M内核深度优化,提供了稳定的biquad级联滤波函数,显著降低了工程落地门槛。STM32F411E-DISCOVERY板载数字MEMS麦克风与立体声DAC,构成从采集、处理到回放的完整音频链路,非常适合进行音频滤波算法验证。本文基于该开发板实现1kHz低通IIR滤波器,详细解析PDM转PCM数据通路、滤波器系数生成、CMS 阅读详情

相关推荐

STM32F411音频滤波实战:从PDM解码到FIR带通滤波完整指南

在嵌入式音频处理中,数字信号处理(DSP)技术是让声音数据变得可用的关键。音频信号从麦克风采集到耳机回放,需要经历采样、解码、滤波等多个环节。PDM(脉冲密度调制)作为一种数字麦克风输出格式,需要通过CIC滤波器解码为PCM数据,而FIR滤波器则能实现精确的带通滤波,保留人声频段并抑制噪声。借助STM32F411E-DISCOVERY开发板,无需外接音频模块即可完成实时音频链路验证。本文从PDM解码原理讲起,介绍如何使用CMSIS-DSP库实现FIR滤波,并结合I2S与DMA完成数据搬运,最终通过耳机输出清

weixin_27014595的博客 334

STM32 串口四的中断服务函数无法使用问题

这篇博客主要是做一下记录,记录一下串口四中断服务函数进不去的问题和解决的过程。

z17338523033的博客 1343

基于STM32与TinyML的实时运动姿态矫正系统VibeCoach设计与实现

在嵌入式人工智能和物联网(AIoT)领域,微型机器学习(TinyML)技术正将智能从云端下沉至资源受限的边缘设备。其核心原理在于,通过模型压缩与优化,让轻量级神经网络或传统机器学习算法得以在微控制器(MCU)上实时运行,直接处理传感器数据。这项技术的巨大价值在于实现了低延迟、高隐私的本地化智能决策,无需依赖网络,极大地拓展了智能设备的应用边界。典型的应用场景包括可穿戴设备、预测性维护和智能家居。本文聚焦的VibeCoach项目,正是这一技术范式的生动实践。它利用STM32微控制器采集MPU-9250惯性传感

weixin_34101229的博客 291

STM32F411配置外部中断(标准库)

和F1的区别是复用的变化改为使用以下函数。本期博客是纯代码分享。

摸鱼专家 705

嵌入式AI实战:STM32部署电机故障诊断模型全流程

边缘计算正在将人工智能推向微控制器级别,在资源有限的STM32上部署神经网络成为嵌入式工程师关注的热点。与云端推理不同,MCU本地执行需经过模型转换、int8量化与静态内存规划等环节,以保证推理的实时性和确定性。ST官方工具链STM32Cube.AI可将Keras、TFLite等模型编译为C代码,配合CubeMX实现一键集成。工业场景中,电机故障诊断是典型的嵌入式AI落地方向,通过1D CNN捕获电流波形特征,Cortex-M4内核即可在几十毫秒内完成推理。本文从工具选型、资源预算、量化策略到实测部署,完整

weixin_30908941的博客 365

STM32参考设计资源全指南:从官方应用到开源硬件

在嵌入式开发中,参考设计是连接芯片手册与真实产品的桥梁。它通过预先验证的原理图、PCB布局和软件初始化,帮助开发者消除电气连接、选型、配置及布局中的不确定性,从而降低从零设计的风险。理解参考设计中电源树、接口保护及信号完整性等原则,是构建可靠硬件的基础。无论是学习评估板、产品级开源方案,还是ST官方应用笔记,合理的检索与筛选方法能大幅提升开发效率。本文系统梳理了STM32参考设计的核心价值、主流获取渠道和实用筛选技巧,并针对USB、电机控制、传感器采集等典型场景给出对应搜索路径,帮助硬件工程师与爱好者快速定

weixin_34348174的博客 740

STM32F411RE-0013-对电平触发中断和边沿触发中断的理解

以高电平触发和上升沿触发的两种中断说明。 当高电平时,产生中断,进入ISR,处理完之后,如果仍然还有高电平,会继续进入ISR。 上升沿出发,为了能够让NVIC可以检测到这个中断,对该上升沿的时隙也是有要求的,例如至少保持1个cpu clock; ...

wuzengfengjing1的博客 1903

Zephyr OS:STM32物联网开发的生产级RTOS新默认

RTOS(实时操作系统)是资源受限嵌入式设备实现多任务、网络通信与安全更新的核心基础。其核心原理在于确定性调度、内存隔离与硬件抽象,技术价值体现在极小Footprint、开箱即用协议栈及工业级OTA能力。典型应用场景包括智能电表、环境监测节点等低功耗广域物联网终端。随着STM32系列芯片在USB、AES、多串行总线等方面的硬件优势日益凸显,开发者亟需能充分释放其潜力的软件底座——Zephyr OS凭借设备树驱动模型、Kconfig裁剪机制和Linux基金会背书的生产级安全SLA,正成为该场景下替代FreeR

weixin_34267123的博客 470

Tock 中的 STM32F412G 芯片支持:基于 stm32f4xx 的分层 MCU 适配实践

本文围绕 Tock 嵌入式操作系统仓库中 [chips/stm32f412g](https://link.gitcode.com/i/f13187040ec8545fd0660fd170ce5d0a) 芯片支持 crate 展开,系统讲解 STM32F412G MCU 在 Tock 中"复用共享外设驱动、叠加芯片专属配置"的分层设计思路。你将掌握该 crate 的源码结构与模块划分、97 路中断向

gitblog_00473的博客 1010

STM32参考设计资源全盘点:查找、判断与避坑指南

在嵌入式开发中,参考设计是加速项目落地的重要资源,它并非简单的电路图,而是一整套包含原理图、BOM、最小系统说明和初始化配置的完整方案。通过复用成熟设计,开发者可以避免从零开始排查电源、晶振、引脚复用等基础问题,显著提高硬件调试效率。无论是入门学习者寻找教学板资料,还是工程师为量产项目评估硬件方案,都有不同侧重的资源渠道。本文从官方评估板、开发板厂商、开源硬件平台到技术社区,系统梳理了获取STM32参考设计的优质途径,并介绍了关键词组合搜索、三分钟筛选法和复刻调试路径,帮助读者避开常见陷阱。

weixin_34160277的博客 390

Zephyr OS + STM32物联网开发实战:从设备树到MQTT低功耗端到端落地

嵌入式物联网系统需兼顾资源约束、协议兼容与长期可维护性。Zephyr OS作为轻量级实时操作系统,以模块化内核、Kconfig编译裁剪和设备树硬件抽象为核心机制,天然适配STM32等Cortex-M系列MCU。其原生集成的TCP/IP栈、MQTT客户端、mbedtls安全组件及MCUboot固件升级能力,显著降低Wi-Fi/LoRa等无线通信终端的开发门槛。结合STM32CubeMX生成配置与Zephyr构建系统联动,开发者可实现‘一次编码、多板部署’,尤其适用于智能传感、资产追踪、环境监测等电池供电场景。

weixin_33997389的博客 411

MicroPython STM32 移植版完整指南:从源码构建到固件烧录与部署

MicroPython 的 STM32 移植版(`ports/stm32`)是官方维护最全面、硬件支持最丰富的移植之一,覆盖从 STM32F0 到 STM32WB 的十余个 MCU 系列,并支持 pyboard、Discovery、Nucleo 等大量开发板。本文以 [ports/stm32/README.md](https://link.gitcode.com/i/234c274b88a6cc9

gitblog_00945的博客 769

PWM调光原理详解:为什么你的LED灯会闪烁?从硬件到软件的避坑指南

本文深入解析PWM调光原理,揭示LED灯闪烁的根本原因,并提供从硬件设计到软件算法的全面解决方案。通过分析人眼视觉暂留机制和PWM参数设置,帮助开发者避免频闪问题,提升照明质量。特别适合电子工程师和智能家居开发者参考。

weixin_29189363的博客 292

stm32f4启动代码分析(一)

因为使用的开发板是stm32f407discovery,所以启动代码为st公司的官方库文件里的startup_stm32f40_41xxx.s,至于如何去找官方库文件,不在本节讨论的范围内,本节只是初步的分析startup_stm32f40_41xxx.s,其中更深入的东西需要在以后的章节中分析。 在startup_stm32f40_41xxx.s中,有一段注释: ;* File Name :

aMaCoder 4255

uniapp:K线图,支持H5,APP

K线,1分钟搞定。备注详细,无需理解,直接复制即可。

sunluyi的博客 4573

STC8H DMA 串口1全双工中断方式收发通讯C语言

串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的内容后,通过串口1的DMA自动发送功能把存储空间的数据原样返回. 用定时器做波特率发生器,建议使用1T模式(除非低波特率用12T),并选择可被波特率整除的时钟频率,以提高精度。

czhaii的专栏 1466

STM32Fxxx-HAL-Libraries中的FreeRTOS终极使用指南:实时操作系统集成完整教程 [特殊字符]

在嵌入式系统开发领域,STM32微控制器与FreeRTOS实时操作系统的结合是构建高效、可靠嵌入式应用的**黄金组合**。本文将为您详细介绍如何在stm32fxxx-hal-libraries项目中快速集成FreeRTOS,实现多任务并发处理。无论您是嵌入式开发新手还是经验丰富的工程师,本指南都将帮助您掌握STM32与FreeRTOS集成的核心技巧。✨ ## 📋 为什么选择FreeRTOS与S

gitblog_00060的博客 382

域格4G网优模块获取

1、获取当前小区信息 接口说明 该命令用于获取当前小区信息。 语法结构 命令类型 格式 返回结果 Execute AT+SCELLINFO +SCELLINFO: <cellMode>,<mcc>,<mnc>,<lac>,<cellId>,<afrcn>,<cpi>,<rxLevel>

自由的幻想 2463

WSL2下通过USB/IP烧录STM32的完整实践方案

USB设备在Linux系统中通过内核USB子系统实现即插即用与协议栈管理,其核心依赖于用户态工具(如libusb)与内核驱动的协同;而WSL2作为轻量级虚拟机,默认隔离物理USB总线,导致st-flash等嵌入式烧录工具无法识别ST-Link调试器。本方案基于成熟的USB/IP网络隧道技术,将Windows主机已正确驱动的ST-Link设备以标准TCP服务形式暴露给WSL2,从而在不降级环境、不切换平台的前提下,复用完整的Linux原生工具链(CMake/GCC/GDB/stlink-tools)。该方法适

weixin_34310369的博客 243

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

以 DeleteRestrictions 与 inlineDelete 为核心的 Fiori Elements 表格删除机制全解

SAP Fiori elements 中删除操作的设计与实现涉及多维度考量。框架默认依据 OData 元数据判断删除能力,通过 DeleteRestrictions 注解实现行级条件控制(deletable-path)。表格支持两种删除模式:工具栏集中删除与响应式表格行内删除,但二者不建议混用。关键约束包括:行内删除仅适用于 Responsive Table,且与多选功能互斥。配置需遵循三层架构:后端能力注解、前端表格形态和运行时交互。设计上强调禁用优于隐藏的可用性原则,并需保持列表页与对象页的删除体验一致

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 152

Zephyr OS在STM32物联网开发中的实战应用指南

实时操作系统(RTOS)是资源受限MCU实现可靠物联网功能的核心基础。Zephyr OS作为轻量级、模块化、设备树驱动的开源RTOS,凭借极小内存 footprint(ROM 8KB起)、POSIX兼容线程模型与原生网络协议栈(MQTT/TLS/CoAP),成为STM32系列芯片高性价比开发首选。其核心价值在于通过Kconfig编译期裁剪与devicetree声明式硬件描述,实现跨型号复用、快速原型验证与量产级可维护性。本文结合STM32L4/F4平台,详解环境搭建、传感器驱动、安全MQTT连接、低功耗优化

weixin_34378767的博客 398

STM32F103RCT6的FLASH读写操作

STM32F103RCT6是一款常用的32位微控制器,它具有内置的FLASH存储器,可以用于存储程序代码和数据。在本文中,我们将详细介绍如何进行STM32F103RCT6的FLASH读写操作,并提供相应的源代码。写入数据时,我们通过将数据直接写入FLASH地址来完成。通过使用适当的API和规则,我们可以有效地读取和写入数据。写入FLASH时,我们需要按特定的规则进行编程。首先,我们需要包含适当的头文件和定义相关的宏和变量,以便在代码中使用FLASH API。类型的指针,我们可以直接读取FLASH中的数据。

UplKubernetes的博客 1032

STM32参考设计资源地图:从官方手册到开源项目的全渠道指南

在嵌入式开发中,参考设计是连接芯片手册与产品落地的关键桥梁,尤其对于STM32这类外设复杂、寄存器配置繁琐的MCU,一套高质量的参考原理图能大幅降低开发门槛。理解参考设计的价值,不仅在于照搬电路,更在于掌握其背后的电源规划、信号完整性与布局逻辑。从ST官方评估板、应用笔记,到正点原子、野火等国内社区的开源工程,再到立创EDA与Gitee上的已验证项目,开发者可以系统获取从最小系统到USB、CAN、FOC等应用场景的成熟方案。结合CubeMX生成的HAL库例程,工程师能快速将标准库或寄存器级代码迁移至新平台,

weixin_34220179的博客 395

YOLOv8+SAM强强联合:用分割“喂“检测,复杂背景下作物AP从72%干到77.7%,杂草误检降60%

目标与背景高度相似:如农业(作物vs杂草)、工业(零件vs台面)、医学(病灶vs正常组织);遮挡严重的场景:如密集人群(人被遮挡)、森林(树木被枝叶遮挡);小目标密集场景:如无人机航拍(远处小目标易混背景)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 792

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: STM32F411 Discovery学习笔记(二)点亮你的第一个LED
下一篇: STM32F411 Discovery学习笔记(四)串口
魔方科研
博客等级 码龄9年 128粉丝 29原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值