• 大小: 6.39MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: 其他
  • 标签: 程序设计  stm32  

资源简介

基于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配套测试程序\Hardware\ADS1292.C
     文件        9264  2020-10-11 18:05  STM32F103配套测试程序\Hardware\ADS1292.H
     文件        6702  2020-10-10 21:00  STM32F103配套测试程序\Hardware\delay.c
     文件        2012  2020-10-10 21:00  STM32F103配套测试程序\Hardware\delay.h
     文件        2539  2020-10-10 21:00  STM32F103配套测试程序\Hardware\dma.c
     文件         203  2020-10-10 21:00  STM32F103配套测试程序\Hardware\dma.h
     文件        1363  2020-10-10 21:00  STM32F103配套测试程序\Hardware\key.c
     文件         231  2020-10-10 21:00  STM32F103配套测试程序\Hardware\key.h
     文件         727  2020-10-10 21:00  STM32F103配套测试程序\Hardware\led.c
     文件         198  2020-10-10 21:00  STM32F103配套测试程序\Hardware\led.h
     文件        1964  2020-10-12 17:08  STM32F103配套测试程序\Hardware\spi.c
     文件        5041  2020-10-10 21:00  STM32F103配套测试程序\Hardware\spi.h
     文件        3848  2020-10-12 17:12  STM32F103配套测试程序\Hardware\Timer.c
     文件         320  2020-10-11 23:46  STM32F103配套测试程序\Hardware\Timer.h
     文件        9212  2020-10-10 21:00  STM32F103配套测试程序\Hardware\usart.c
     文件         640  2020-10-10 21:00  STM32F103配套测试程序\Hardware\usart.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配套测试程序\Output\ads1292.crf
     文件        1455  2020-10-12 02:16  STM32F103配套测试程序\Output\ads1292.d
     文件      349892  2020-10-12 02:16  STM32F103配套测试程序\Output\ads1292.o
     文件        3941  2020-10-11 18:07  STM32F103配套测试程序\Output\core_cm3.crf
     文件         109  2020-10-11 18:07  STM32F103配套测试程序\Output\core_cm3.d
     文件       11144  2020-10-11 18:07  STM32F103配套测试程序\Output\core_cm3.o
     文件      307206  2020-10-11 18:07  STM32F103配套测试程序\Output\delay.crf
     文件        1161  2020-10-11 18:07  STM32F103配套测试程序\Output\delay.d
     文件      332492  2020-10-11 18:07  STM32F103配套测试程序\Output\delay.o
     文件      307131  2020-10-11 18:07  STM32F103配套测试程序\Output\dma.crf
     文件        1151  2020-10-11 18:07  STM32F103配套测试程序\Output\dma.d
............此处省略185个文件信息

评论

共有 条评论