基于STM32F103+ADS1292的心率实时显示串口助手,心电图波形


基于STM32F103+ADS1292的心率实时显示(串口助手),心电图波形(需要用到匿名上位机),采样频率为500hz,可实时显示心率。源代码有大量注解,通俗易懂.
资源截图
代码片段和文件信息
#include “delay.h“
//////////////////////////////////////////////////////////////////////////////////   
//如果需要使用OS则包括下面的头文件即可.
#if SYSTEM_SUPPORT_OS
#include “includes.h“ //ucos 使用   
#endif
/*******************************************************************************
* 作  者 : 深创电子 https://scele.taobao.com/ 
* 版  本 : V1.0
* 日  期 : 2020-09-03
* 描  述 : 
*******************************************************************************/

static u8  fac_us=0; //us延时倍乘数    
static u16 fac_ms=0; //ms延时倍乘数在ucos下代表每个节拍的ms数


#if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS定义了说明要支持OS了(不限于UCOS).
//当delay_us/delay_ms需要支持OS的时候需要三个与OS相关的宏定义和函数来支持
//首先是3个宏定义:
//    delay_osrunning:用于表示OS当前是否正在运行以决定是否可以使用相关函数
//delay_ostickspersec:用于表示OS设定的时钟节拍delay_init将根据这个参数来初始哈systick
// delay_osintnesting:用于表示OS中断嵌套级别因为中断里面不可以调度delay_ms使用该参数来决定如何运行
//然后是3个函数:
//  delay_osschedlock:用于锁定OS任务调度禁止调度
//delay_osschedunlock:用于解锁OS任务调度重新开启调度
//    delay_ostimedly:用于OS延时可以引起任务调度.

//本例程仅作UCOSII和UCOSIII的支持其他OS请自行参考着移植
//支持UCOSII
#ifdef  OS_CRITICAL_METHOD //OS_CRITICAL_METHOD定义了说明要支持UCOSII
#define delay_osrunning OSRunning //OS是否运行标记0不运行;1在运行
#define delay_ostickspersec OS_TICKS_PER_SEC //OS时钟节拍即每秒调度次数
#define delay_osintnesting  OSIntNesting //中断嵌套级别即中断嵌套次数
#endif

//支持UCOSIII
#ifdef  CPU_CFG_CRITICAL_METHOD //CPU_CFG_CRITICAL_METHOD定义了说明要支持UCOSIII
#define delay_osrunning OSRunning //OS是否运行标记0不运行;1在运行
#define delay_ostickspersec OSCfg_TickRate_Hz //OS时钟节拍即每秒调度次数
#define delay_osintnesting  OSIntNestingCtr //中断嵌套级别即中断嵌套次数
#endif


//us级延时时关闭任务调度(防止打断us级延迟)
void delay_osschedlock(void)
{
#ifdef CPU_CFG_CRITICAL_METHOD    //使用UCOSIII
OS_ERR err; 
OSSchedLock(&err); //UCOSIII的方式禁止调度,防止打断us延时
#else //否则UCOSII
OSSchedLock(); //UCOSII的方式禁止调度,防止打断us延时
#endif
}

//us级延时时恢复任务调度
void delay_osschedunlock(void)
{
#ifdef CPU_CFG_CRITICAL_METHOD    //使用UCOSIII
OS_ERR err; 
OSSchedUnlock(&err); //UCOSIII的方式恢复调度
#else //否则UCOSII
OSSchedUnlock(); //UCOSII的方式恢复调度
#endif
}

//调用OS自带的延时函数延时
//ticks:延时的节拍数
void delay_ostimedly(u32 ticks)
{
#ifdef CPU_CFG_CRITICAL_METHOD
OS_ERR err; 
OSTimeDly(ticksOS_OPT_TIME_PERIODIC&err); //UCOSIII延时采用周期模式
#else
OSTimeDly(ticks); //UCOSII延时
#endif 
}
 
//systick中断服务函数使用ucos时用到
void SysTick_Handler(void)
{
if(delay_osrunning==1) //OS开始跑了才执行正常的调度处理
{
OSIntEnter(); //进入中断
OSTimeTick();        //调用ucos的时钟服务程序               
OSIntExit();          //触发任务切换软中断
}
}
#endif

   
//初始化延迟函数
//当使用OS的时候此函数会初始化OS的时钟节拍
//SYSTICK的时钟固定为HCLK时钟的1/8
//SYSCLK:系统时钟
void delay_init()
{
#if SYSTEM_SUPPORT_OS   //如果需要支持OS.
u32 reload;
#endif
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //选择外部时钟  HCLK/8
fac_us=SystemCoreClock/8000000; //为系统时钟的1/8  
#if SYSTEM_SUPPORT_OS   //如果需要支持OS.
reload=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-10-12 17:01  STM32F103配套测试程序
     目录           0  2020-10-12 17:12  STM32F103配套测试程序Hardware
     文件       13078  2020-10-12 02:16  STM32F103配套测试程序HardwareADS1292.C
     文件        9264  2020-10-11 18:05  STM32F103配套测试程序HardwareADS1292.H
     文件        6702  2020-10-10 21:00  STM32F103配套测试程序Hardwaredelay.c
     文件        2012  2020-10-10 21:00  STM32F103配套测试程序Hardwaredelay.h
     文件        2539  2020-10-10 21:00  STM32F103配套测试程序Hardwaredma.c
     文件         203  2020-10-10 21:00  STM32F103配套测试程序Hardwaredma.h
     文件        1363  2020-10-10 21:00  STM32F103配套测试程序Hardwarekey.c
     文件         231  2020-10-10 21:00  STM32F103配套测试程序Hardwarekey.h
     文件         727  2020-10-10 21:00  STM32F103配套测试程序Hardwareled.c
     文件         198  2020-10-10 21:00  STM32F103配套测试程序Hardwareled.h
     文件        1964  2020-10-12 17:08  STM32F103配套测试程序Hardwarespi.c
     文件        5041  2020-10-10 21:00  STM32F103配套测试程序Hardwarespi.h
     文件        3848  2020-10-12 17:12  STM32F103配套测试程序HardwareTimer.c
     文件         320  2020-10-11 23:46  STM32F103配套测试程序HardwareTimer.h
     文件        9212  2020-10-10 21:00  STM32F103配套测试程序Hardwareusart.c
     文件         640  2020-10-10 21:00  STM32F103配套测试程序Hardwareusart.h
     文件         399  2020-10-10 21:00  STM32F103配套测试程序keilkilll.bat
     目录           0  2020-10-12 17:12  STM32F103配套测试程序Output
     文件      318709  2020-10-12 02:16  STM32F103配套测试程序Outputads1292.crf
     文件        1455  2020-10-12 02:16  STM32F103配套测试程序Outputads1292.d
     文件      349892  2020-10-12 02:16  STM32F103配套测试程序Outputads1292.o
     文件        3941  2020-10-11 18:07  STM32F103配套测试程序Outputcore_cm3.crf
     文件         109  2020-10-11 18:07  STM32F103配套测试程序Outputcore_cm3.d
     文件       11144  2020-10-11 18:07  STM32F103配套测试程序Outputcore_cm3.o
     文件      307206  2020-10-11 18:07  STM32F103配套测试程序Outputdelay.crf
     文件        1161  2020-10-11 18:07  STM32F103配套测试程序Outputdelay.d
     文件      332492  2020-10-11 18:07  STM32F103配套测试程序Outputdelay.o
     文件      307131  2020-10-11 18:07  STM32F103配套测试程序Outputdma.crf
     文件        1151  2020-10-11 18:07  STM32F103配套测试程序Outputdma.d
............此处省略185个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)