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

  • 大小: 4.82MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-09-16
  • 語言: 其他
  • 標(biāo)簽: bh1750??iic??stm32??

資源簡介

stm32下模擬iic驅(qū)動bh1750光強檢測傳感器驅(qū)動下載。

資源截圖

代碼片段和文件信息

#include?“delay.h“
#include?“sys.h“
//////////////////////////////////////////////////////////////////////////////////? ?
//如果使用ucos則包括下面的頭文件即可.
#if?SYSTEM_SUPPORT_UCOS
#include?“includes.h“ //ucos?使用 ??
#endif
////////////////////////////////////////////////////////////////////////////////// ?
//本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途
//ALIENTEK?STM32開發(fā)板
//使用SysTick的普通計數(shù)模式對延遲進行管理
//包括delay_usdelay_ms
//正點原子@ALIENTEK
//技術(shù)論壇:www.openedv.com
//修改日期:2012/9/2
//版本:V1.5
//版權(quán)所有,盜版必究。
//Copyright(C)?廣州市星翼電子科技有限公司?2009-2019
//All?rights?reserved
//********************************************************************************
//V1.2修改說明
//修正了中斷中調(diào)用出現(xiàn)死循環(huán)的錯誤
//防止延時不準(zhǔn)確采用do?while結(jié)構(gòu)!

//V1.3修改說明
//增加了對UCOSII延時的支持.
//如果使用ucosIIdelay_init會自動設(shè)置SYSTICK的值使之與ucos的TICKS_PER_SEC對應(yīng).
//delay_ms和delay_us也進行了針對ucos的改造.
//delay_us可以在ucos下使用而且準(zhǔn)確度很高更重要的是沒有占用額外的定時器.
//delay_ms在ucos下可以當(dāng)成OSTimeDly來用在未啟動ucos時它采用delay_us實現(xiàn)從而準(zhǔn)確延時
//可以用來初始化外設(shè)在啟動了ucos之后delay_ms根據(jù)延時的長短選擇OSTimeDly實現(xiàn)或者delay_us實現(xiàn).

//V1.4修改說明?20110929
//修改了使用ucos但是ucos未啟動的時候delay_ms中中斷無法響應(yīng)的bug.
//V1.5修改說明?20120902
//在delay_us加入ucos上鎖,防止由于ucos打斷delay_us的執(zhí)行,可能導(dǎo)致的延時不準(zhǔn)。
//////////////////////////////////////////////////////////////////////////////////? ?
static?u8??fac_us=0;//us延時倍乘數(shù)
static?u16?fac_ms=0;//ms延時倍乘數(shù)
#ifdef?OS_CRITICAL_METHOD? //如果OS_CRITICAL_METHOD定義了說明使用ucosII了.
//systick中斷服務(wù)函數(shù)使用ucos時用到
void?SysTick_Handler(void)
{ ???
OSIntEnter(); //進入中斷
????OSTimeTick();???????//調(diào)用ucos的時鐘服務(wù)程序???????????????
????OSIntExit();????????//觸發(fā)任務(wù)切換軟中斷
}
#endif

//初始化延遲函數(shù)
//當(dāng)使用ucos的時候此函數(shù)會初始化ucos的時鐘節(jié)拍
//SYSTICK的時鐘固定為HCLK時鐘的1/8
//SYSCLK:系統(tǒng)時鐘
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; //為系統(tǒng)時鐘的1/8??
?
#ifdef?OS_CRITICAL_METHOD? //如果OS_CRITICAL_METHOD定義了說明使用ucosII了.
reload=SystemCoreClock/8000000; //每秒鐘的計數(shù)次數(shù)?單位為K ???
reload*=1000000/OS_TICKS_PER_SEC;//根據(jù)OS_TICKS_PER_SEC設(shè)定溢出時間
//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時鐘數(shù)???
#endif
} ????

#ifdef?OS_CRITICAL_METHOD //使用了ucos
//延時nus
//nus為要延時的us數(shù). ???? ???
void?delay_us(u32?nus)
{
u32?ticks;
u32?toldtnowtcnt=0;
u32?reload=SysTick->LOAD; //LOAD的值 ???? ?
ticks=nus*fac_us;? //需要的節(jié)拍數(shù) ?? ?
tcnt=0;
told=SysTick->VAL;???????? //剛進入時的計數(shù)器值
while(1)
{
tnow=SysTick->VAL;
if(tnow!=told)
{ ????
if(tnow else?tcnt+=reload-tnow+told; ????
told=tnow;
if(tcnt>=ticks)break;//時間超過/等于要延遲的時間則退出.
}??
};? ????
}
//延時nms
//nms:要延時的ms

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-01-18?18:02??iic學(xué)習(xí)\
?????目錄???????????0??2017-02-07?16:41??iic學(xué)習(xí)\App\
?????目錄???????????0??2017-01-18?20:48??iic學(xué)習(xí)\App\delay\
?????文件????????5037??2014-03-20?20:14??iic學(xué)習(xí)\App\delay\delay.c
?????文件????????1517??2012-09-13?09:48??iic學(xué)習(xí)\App\delay\delay.h
?????目錄???????????0??2017-02-09?19:36??iic學(xué)習(xí)\App\gy30\
?????文件?????????428??2017-02-09?19:36??iic學(xué)習(xí)\App\gy30\BH1750.c
?????文件?????????948??2017-02-09?19:33??iic學(xué)習(xí)\App\gy30\BH1750.h
?????文件?????????417??2017-02-09?14:57??iic學(xué)習(xí)\App\gy30\gy30.c
?????文件?????????885??2017-02-09?14:26??iic學(xué)習(xí)\App\gy30\gy30.h
?????目錄???????????0??2017-02-09?15:06??iic學(xué)習(xí)\App\iic\
?????文件????????3122??2017-02-09?11:21??iic學(xué)習(xí)\App\iic\iic.c
?????文件????????1469??2017-02-09?15:06??iic學(xué)習(xí)\App\iic\iic.h
?????目錄???????????0??2017-01-18?21:46??iic學(xué)習(xí)\App\led\
?????文件?????????627??2017-01-18?21:46??iic學(xué)習(xí)\App\led\led.c
?????文件??????????99??2017-01-18?21:02??iic學(xué)習(xí)\App\led\led.h
?????目錄???????????0??2017-01-18?20:50??iic學(xué)習(xí)\App\sys\
?????文件?????????616??2012-09-16?19:18??iic學(xué)習(xí)\App\sys\sys.c
?????文件????????2672??2012-09-16?19:18??iic學(xué)習(xí)\App\sys\sys.h
?????目錄???????????0??2017-01-21?06:39??iic學(xué)習(xí)\App\usart\
?????文件????????2476??2017-01-17?18:45??iic學(xué)習(xí)\App\usart\usart1.c
?????文件?????????171??2017-01-17?18:44??iic學(xué)習(xí)\App\usart\usart1.h
?????目錄???????????0??2017-01-14?12:02??iic學(xué)習(xí)\CMSIS\
?????文件???????17273??2010-06-07?10:25??iic學(xué)習(xí)\CMSIS\core_cm3.c
?????文件???????85714??2011-02-09?14:59??iic學(xué)習(xí)\CMSIS\core_cm3.h
?????目錄???????????0??2017-01-14?12:02??iic學(xué)習(xí)\CMSIS\startup\
?????文件???????15766??2011-03-10?10:52??iic學(xué)習(xí)\CMSIS\startup\startup_stm32f10x_cl.s
?????文件???????15503??2011-03-10?10:52??iic學(xué)習(xí)\CMSIS\startup\startup_stm32f10x_hd.s
?????文件???????15692??2011-03-10?10:52??iic學(xué)習(xí)\CMSIS\startup\startup_stm32f10x_hd_vl.s
?????文件???????12376??2011-03-10?10:52??iic學(xué)習(xí)\CMSIS\startup\startup_stm32f10x_ld.s
?????文件???????13656??2011-03-10?10:52??iic學(xué)習(xí)\CMSIS\startup\startup_stm32f10x_ld_vl.s
............此處省略190個文件信息

評論

共有 條評論