資源簡介
基于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
評論
共有 條評論