基于stm32的脉搏血氧仪设计
目录一、设计概述 1二、设计方案 21、设计任务 21.对传感器输出的模拟信号进行AD转换 22.在屏幕显示脉搏波形 23.测量并显示心率与体温 24.可与上位机通过USB接口通信 25.按键与屏幕多级菜单设计进行人机交互 26.自动检测设备连接状态 27.数据通过ESP01S上传到服务器实现远程监测 22、设计思路 2三、 硬件电路设计 3四、 系统程序设计 4五、 传感器简介 81、Pulse sensor 8图四 Pulse Sensor传感器 92、NTC负温度系数热敏电阻 9图五 NTC电阻温度曲线 93、MAX30102血氧模块 9图六 MAX30102模块 10六、成果展示 10图七 总装配图 11图八 脉搏波测量 11七、调试中出现问题的解决 121、调试遇到的问题 122、问题的解决 12八、收获体会 13九、器件明细清单 14参 考 文 献 15二、设计方案1、设计任务1.对传感器输出的模拟信号进行AD转换2.在屏幕显示脉搏波形3.测量并显示心率与体温4.可与上位机通过USB接口通信5.按键与屏幕多级菜单设计进行人机交互按键向上向下返回确定6.自动检测设备连接状态7.数据通过ESP01S上传到服务器实现远程监测2、设计思路1.采用stm32固件库开发2.对脉搏传感器输出的模拟信号进行AD转换采样频率100次每秒3.转化结果采用DMA传输避免频繁进入中断4.开启两个串口USART1用来调试USART2用来发送HTTP报文5.电源采用可充电电池供电6.采用查表法与线性插值法获取温度7.按键与LCD液晶屏多级菜单设计进行人机交互按键采用外部中断向上向下返回确定屏幕显示体温血氧浓度脉搏波波形四、系统程序设计1、程序设计思想毕业设计所需功能较为简单无需操作系统使用裸机编程足够应对需求。故采用裸机编程方式。裸机系统通常分成轮询系统和前后台系统。轮询系统即是在裸机编程的时候先初始化好相关的硬件然后让主程序在一个死循环里面不断循环顺序地做各种事情。轮询系统是一种非常简单的软件结构通常只适用于那些只需要顺序执行代码且不需要外部事件来驱动 的就能完成的事情。例如只是实现 LED 翻转串口输出液晶显示等 这些操作那么使用轮询系统将会非常完美。本文转载自http://www.biyezuopin.vip/onews.asp?id14972但是如果加入了按键操作等需要检测外部 信号的事件用来模拟紧急报警那么整个系统的实时响应能力就不会那么好了。故轮询系统只适合顺序执行的功能代码当有外部事件驱动时实时性就会降低。1 int main(void) 2 { 3 /* 硬件相关初始化 */ 4 HardWareInit(); 5 6 /* 无限循环 */ 7 for (;;) { 8 /* 处理事情 1 */ 9 DoSomething1(); 10 /* 处理事情 2 */ 11 DoSomething2(); 12 /* 处理事情 3 */ 13 DoSomething3(); 14 } 15 }相比轮询系统前后台系统是在轮询系统的基础上加入了中断。外部事件的响应在中断里面完成事件的处理还是回到轮询系统中完成中断在这里我们称为前台main 函数 里面的无限循环我们称为后台在顺序执行后台程序的时候如果有中断来临那么中断会打断后台程序的正常执行流转而去执行中断服务程序在中断服务程序里面标记事件如果事件要处理的事情很简短则可在中断服务程序里面处理如果事件要处理的事情比较多则返回到后台程序里面处理。虽然事件的响应和处理是分开了但是事件的处理还是在后台里面顺序执行的但相比轮询系统前后台系统确保了事件不会丢失再加上中断具有可嵌套的功能这可以大大的提高程序的实时响应能力。在大多数的中小型项目中前后台系统运用的好堪称有操作系统的效果。1 int flag1 0; 2 int flag2 0; 3 4 int main(void) 5 { 6 /* 硬件相关初始化 */ 7 HardWareInit(); 8 9 /* 无限循环 */ 10 for (;;) { 11 if (flag1) { 12 /* 处理事情 1 */ 13 DoSomething1(); 14 } 15 16 if (flag2) { 17 /* 处理事情 2 */ 18 DoSomething2(); 19 } 20 21 } 22 }尽管前后台系统利用中断一定程度上提升了轮询系统的实时性但它并不完美。因为它将所有有可能要做的任务在死循环中无差别循环执行CPU不停歇工作而这些工作很多是不必要的。相比前后台系统中后台顺序执行的程序主体在多任务系统中根据程序的功能我 们把这个程序主体分割成一个个独立的无限循环且不能返回的小程序这个小程序我们 称之为任务。每个任务都是独立的互不干扰的所以相比前后台系统多任务系统的事件响应也是在中断中完成的但是事件的处理是在任务中完成的。在多任务系统中任务跟中断一样也具有优先级优先级高的任务会被优先执行。当一个紧急的事件在中断被标记之后如果事件对应的任务的优先级足够高就会立马得到响应。相比前后台系统多任务系统的实时性又被提高了。1 void DoSomething1(void) 2 { 3 /* 无限循环不能返回 */ 4 for (;;) { 5 / * 任务实体 */ 6 if (flag1) { 7 8 } 9 } 10 } 11 12 void DoSomething2(void) 13 { 14 /* 无限循环不能返回 */ 15 for (;;) { 16 /* 任务实体 */ 17 if (flag2) { 18 19 } 20 } 21 }

相关新闻

基于Dev-C++与SDL的水下迷宫游戏开发:从项目结构到核心机制解析

基于Dev-C++与SDL的水下迷宫游戏开发:从项目结构到核心机制解析

1. 项目概述:从零到一的水下迷宫探险最近在整理硬盘时,翻出了一个多年前用Dev-C和SDL库捣鼓出来的“水下迷宫游戏”项目包。这可不是一个简单的教学Demo,而是一个功能相对完整、包含了地图编辑器、关卡系统、音效和粒子效果的“准产品级”小游…

2026/8/10 16:48:03 阅读更多 →
如何在Windows上免费运行iPhone应用:ipasim跨平台iOS模拟器完整指南

如何在Windows上免费运行iPhone应用:ipasim跨平台iOS模拟器完整指南

如何在Windows上免费运行iPhone应用:ipasim跨平台iOS模拟器完整指南 【免费下载链接】ipasim iOS emulator for Windows 项目地址: https://gitcode.com/gh_mirrors/ip/ipasim 你是否曾经想过在Windows电脑上体验iOS应用?现在,通过ipa…

2026/8/10 16:47:03 阅读更多 →
如何看待 OpenAI Codex:从技术原理到行业影响

如何看待 OpenAI Codex:从技术原理到行业影响

引言:Codex 是什么? OpenAI Codex 是 OpenAI 于 2021 年发布的一个大型语言模型,专门针对代码生成和理解进行训练。它基于 GPT-3 架构,但在海量的公开源代码(如 GitHub 上的项目)上进行了微调,使…

2026/8/10 16:47:03 阅读更多 →

最新新闻

Meteor国际化架构深度解析:多语言应用的技术实现策略

Meteor国际化架构深度解析:多语言应用的技术实现策略

Meteor国际化架构深度解析:多语言应用的技术实现策略 【免费下载链接】meteor Meteor, the JavaScript App Platform 项目地址: https://gitcode.com/gh_mirrors/me/meteor 在全球化的数字产品时代,Meteor作为全栈JavaScript应用平台,…

2026/8/10 17:29:17 阅读更多 →
Docker 从入门到精通:原理、实战与生产运维全攻略

Docker 从入门到精通:原理、实战与生产运维全攻略

第九章:Docker 原理深入(从会用到真正懂) docker基础 自己的docker 前面我们一直在讲: 怎么使用 Docker。 现在开始讲: Docker 为什么能做到这些? 如果你想成为 Docker 高手,这一章必须理解。…

2026/8/10 17:29:17 阅读更多 →
从会用 Docker 到会造 Docker:从零到企业级部署

从会用 Docker 到会造 Docker:从零到企业级部署

第六章:Dockerfile(从会用 Docker 到会造 Docker) docker基础 到这里,你已经掌握: Image 镜像↓ Container 容器↓ Volume 数据↓ Network 网络但是现在你还是主要在用别人做好的镜像: docker pull ngin…

2026/8/10 17:29:17 阅读更多 →
YOLOv8 AI自瞄:5分钟打造智能瞄准助手的终极指南

YOLOv8 AI自瞄:5分钟打造智能瞄准助手的终极指南

YOLOv8 AI自瞄:5分钟打造智能瞄准助手的终极指南 【免费下载链接】yolov8_aimbot Aim-bot based on AI for all FPS games 项目地址: https://gitcode.com/gh_mirrors/yo/yolov8_aimbot YOLOv8 AI自瞄是一款基于深度学习的智能瞄准辅助工具,专为F…

2026/8/10 17:29:17 阅读更多 →
Qiskit量子编程终极指南:从零开始掌握量子计算核心技能

Qiskit量子编程终极指南:从零开始掌握量子计算核心技能

Qiskit量子编程终极指南:从零开始掌握量子计算核心技能 【免费下载链接】qiskit Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives. 项目地址: https://gitcode.com/gh_m…

2026/8/10 17:29:17 阅读更多 →
如何快速上手Ludo:跨平台libretro前端的完整安装与配置指南

如何快速上手Ludo:跨平台libretro前端的完整安装与配置指南

如何快速上手Ludo:跨平台libretro前端的完整安装与配置指南 【免费下载链接】ludo A libretro frontend written in golang 项目地址: https://gitcode.com/gh_mirrors/lu/ludo Ludo是一款用Go语言开发的libretro前端工具,支持在OSX、Linux、Linu…

2026/8/10 17:28:17 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →