资源简介
基于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个文件信息
- 上一篇:IE-MES.rar
- 下一篇:Nginx核心知识文档.rar
相关资源
- 全桥双极性带死区互补SPWM基于STM32F
- STM32 SDIO方式读写SD卡
- amg8833+openmv热成像人脸跟随测温云台
- stm32f407 ili9341屏幕驱动 HAL库 带FreeR
- 程序设计语言 - 实践之路 英文文字版
- 实验1:PCM5102播放SD卡音乐STM32F103ZET
- stm32_fft_AD9220.zip
- STM32中断查询AD转换结果 ,电压大于
- stm32 adc多通道采集 库函数版本
- stm32驱动nokia5110液晶屏程序
- RC663 STM32源代码
- STM32-IAR开发教程
- STM32F407二维码例程
- 003 STM32固件库使用手册的(中文).
- STM32上实现的超级玛丽源码
- STM32F103RB最小系统PCB工程_RV2(2012.12
- stm32 ENC-03角速度模块驱动程序
- 基于STM32车牌识别程序_带管理计费
- STM32DHT11程序
- STM32JQ8400FL-10P程序
- STM3228BYJ-48步进电机+ULN2003驱动程序
- 标准麦轮小车源码
- Windows程序设计.pdf
- STM32F103C8T6核心板 + ENC28J60
- TSL2561 驱动程序 STM32
- DAC7311芯片STM32F10X例程.zip
- PWM输出_107_单极性SPWM.zip
- 基于stm32c8t6的12864程序.rar
- stm32步进电机驱动,包括库函数和寄存
- STM32+SIM800C+MQTT连接阿里云物联网平台
评论
共有 条评论