91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 404KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: 其他
  • 標簽: STM32??qingxieyi??

資源簡介

本資源為基于STM32的傾斜儀程序代碼,包括整個工程!下載即可使用,傾斜儀的具體設計可以移步本人博客進行參考

資源截圖

代碼片段和文件信息

#include?“delay.h“


static?u8??fac_us=0; //us延時倍乘數 ???
static?u16?fac_ms=0; //ms延時倍乘數




//初始化延遲函數
//SYSTICK的時鐘固定為AHB時鐘的1/8
//SYSCLK:系統時鐘頻率
void?SysTick_Init(u8?SYSCLK)
{
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);?
fac_us=SYSCLK/8;
fac_ms=(u16)fac_us*1000; ???
} ????


//延時nus
//nus為要延時的us數. ???? ???
void?delay_us(u32?nus)
{
u32?temp; ???? ?
SysTick->LOAD=nus*fac_us;? //時間加載 ?? ?
SysTick->VAL=0x00;???????? //清空計數器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk?; //開始倒數 ??
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //等待時間到達???
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //關閉計數器
SysTick->VAL?=0X00;?????? ?//清空計數器 ?
}

//延時nms
//注意nms的范圍
//SysTick->LOAD為24位寄存器所以最大延時為:
//nms<=0xffffff*8*1000/SYSCLK
//SYSCLK單位為Hznms單位為ms
//對72M條件下nms<=1864?
void?delay_ms(u16?nms)
{ ? ?? ??
u32?temp; ???
SysTick->LOAD=(u32)nms*fac_ms; //時間加載(SysTick->LOAD為24bit)
SysTick->VAL?=0x00; //清空計數器
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk?; //開始倒數??
do
{
temp=SysTick->CTRL;
}while((temp&0x01)&&!(temp&(1<<16))); //等待時間到達???
SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; //關閉計數器
SysTick->VAL?=0X00;??????? //清空計數器 ?? ????
}


//初始化延遲函數
//當使用ucos的時候此函數會初始化ucos的時鐘節拍
//SYSTICK的時鐘固定為HCLK時鐘的1/8
//SYSCLK:系統時鐘
void?delay_init() ?
{

#ifdef?OS_CRITICAL_METHOD? //如果OS_CRITICAL_METHOD定義了說明使用ucosII了.
u32?reload;
#endif
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //選擇外部時鐘??HCLK/8
fac_us=SystemCoreClock/8000000; //為系統時鐘的1/8??
?
#ifdef?OS_CRITICAL_METHOD? //如果OS_CRITICAL_METHOD定義了說明使用ucosII了.
reload=SystemCoreClock/8000000; //每秒鐘的計數次數?單位為K ???
reload*=1000000/OS_TICKS_PER_SEC;//根據OS_TICKS_PER_SEC設定溢出時間
//reload為24位寄存器最大值:16777216在72M下約合1.86s左右
fac_ms=1000/OS_TICKS_PER_SEC;//代表ucos可以延時的最少單位 ???
SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;??? //開啟SYSTICK中斷
SysTick->LOAD=reload;? //每1/OS_TICKS_PER_SEC秒中斷一次
SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;??? //開啟SYSTICK????
#else
fac_ms=(u16)fac_us*1000;//非ucos下代表每個ms需要的systick時鐘數???
#endif
}









評論

共有 條評論