资源简介
基于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
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- labview编程软件滤波器以及编写程序设
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- 单片机与温度传感器DS18B20的程序设计
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- 清华大学郑莉C 语言程序设计课件
- 汇编语言程序设计代码转换程序
评论
共有 条评论