為了驅(qū)動(dòng)ARF2496K這款芯片,做STM32上的移植,所以第一步需要解決的就是時(shí)序問(wèn)題,很顯然在STM32下類似于51的延時(shí)方法并不適用,自然想到了采用定時(shí)器進(jìn)行定時(shí)來(lái)延時(shí)。目前使用的是查詢方式進(jìn)行延時(shí)。
環(huán)境: STM32F107主控,采用STLINK仿真
代碼如下:
static void TIM5_Init_Query(CALC_TYPE type,uint32_t val)
{
TIM_TimeBaseInitTypeDef Tim5;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);
Tim5.TIM_Period=1; //???
if(type==CALC_TYPE_S) //延時(shí)以S為單位時(shí),時(shí)鐘頻率57600Hz,外部需要1250次計(jì)時(shí)
{
Tim5.TIM_Prescaler=57600-1; //預(yù)分頻 72MHz / 57600= 1250Hz
}else if(type==CALC_TYPE_MS)
{
Tim5.TIM_Prescaler=2880-1; //25000Hz ,定時(shí)器計(jì)數(shù)25次為ms
}else if(type==CALC_TYPE_US)
{
Tim5.TIM_Prescaler=72-1; //1MHz ,計(jì)數(shù)1次為us
}else
{
Tim5.TIM_Prescaler=7200-1;
}
Tim5.TIM_ClockDivision=0;
Tim5.TIM_CounterMode=TIM_CounterMode_Down; //向下計(jì)數(shù)
TIM_TimeBaseInit(TIM5,&Tim5);
}
static void TIM5_S_CALC(uint32_t s)
{
u16 counter=(s*1250)&0xFFFF; //前提定時(shí)器時(shí)鐘為1250Hz
TIM_Cmd(TIM5,ENABLE);
TIM_SetCounter(TIM5,counter); //設(shè)置計(jì)數(shù)值
while(counter>1)
{
counter=TIM_GetCounter(TIM5);
}
TIM_Cmd(TIM5,DISABLE);
}
static void TIM5_MS_CALC(uint32_t ms)
{
u16 counter=(ms*25)&0xFFFF;
TIM_Cmd(TIM5,ENABLE);
TIM_SetCounter(TIM5,counter); //設(shè)置計(jì)數(shù)值
while(counter>1)
{
counter=TIM_GetCounter(TIM5);
}
TIM_Cmd(TIM5,DISABLE);
}
static void TIM5_US_CALC(uint32_t us)
{
u16 counter=us&0xffff;
TIM_Cmd(TIM5,ENABLE);
TIM_SetCounter(TIM5,counter); //設(shè)置計(jì)數(shù)值
while(counter>1)
{
counter=TIM_GetCounter(TIM5);
}
TIM_Cmd(TIM5,DISABLE);
}
int main()
{
SystemInit(); //庫(kù)函數(shù) 初始化系統(tǒng)時(shí)鐘源選擇,PLL等
#ifdef _DEBUG
Init_PD11();
#endif
TIM5_Init_Query(CALC_TYPE_US);
while(1)
{
PD11_U; //產(chǎn)生方波
TIM5_US_CALC(1); //TIM5_MS_CALC(1); 毫秒延時(shí), TIM5_S_CALC(1); 秒級(jí)別延時(shí)
PD11_D;
TIM5_US_CALC(1);
}
}
實(shí)驗(yàn)數(shù)據(jù):
延時(shí)1微秒時(shí),略有出入,下圖:
(延時(shí)1us,并不精準(zhǔn),這與while循環(huán)中的語(yǔ)句有關(guān))
延時(shí)20微秒時(shí),比較準(zhǔn)確,下圖:
延時(shí)1毫秒時(shí),下圖:
(差了0.2ms,也就是才延時(shí)0.9ms,可以將分頻系數(shù)降低,然后延時(shí)值加大些進(jìn)行改善)
延時(shí)20毫秒時(shí),下圖:
延時(shí)1秒時(shí),下圖:
毫秒延時(shí)那里修改成下面代碼,基本上能精準(zhǔn)。
Tim5.TIM_Prescaler=720-1; //100KHz ,定時(shí)器計(jì)數(shù)100次為1ms
static void TIM5_MS_CALC(uint32_t ms)
{
u16 counter=(ms*100)&0xFFFF; //前提定時(shí)器時(shí)鐘為100KHz
TIM_Cmd(TIM5,ENABLE);
TIM_SetCounter(TIM5,counter); //設(shè)置計(jì)數(shù)值
while(counter>1)
{
counter=TIM_GetCounter(TIM5);
}
TIM_Cmd(TIM5,DISABLE);
}
上一篇:STM32F7xx —— QSPI
下一篇:糾結(jié)的STM32 RTC時(shí)鐘源LSE
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 阿里黑科技落地!夸克AI眼鏡全球首發(fā),高德、淘寶、支付寶都能用
- 化繁為簡(jiǎn), 適配復(fù)雜磁場(chǎng)環(huán)境,MT73xx 3D雙路輸出霍爾鎖存器賦能車規(guī)電機(jī)精準(zhǔn)控制
- 9.5億美元收購(gòu)恩智浦MEMS傳感器業(yè)務(wù),意法半導(dǎo)體 在傳感器領(lǐng)域的地位再升級(jí)
- 高性能電動(dòng)滑板車 BLDC 電機(jī)驅(qū)動(dòng)器:技術(shù)解析與應(yīng)用展望
- 5G工業(yè)網(wǎng)關(guān)的“邊緣計(jì)算+AI推理”一體化設(shè)計(jì),PLC協(xié)議解析與缺陷檢測(cè)的實(shí)時(shí)聯(lián)動(dòng)
- AR眼鏡的“工業(yè)指令投射”系統(tǒng),SLAM的空間定位、PLC數(shù)據(jù)實(shí)時(shí)疊加顯示
- 多光譜氣體傳感器的抗交叉干擾設(shè)計(jì)
- 多模態(tài)融合感知的“語(yǔ)義-幾何”聯(lián)合建模
- 工業(yè)觸摸屏的“壓感-手勢(shì)”多模態(tài)交互設(shè)計(jì)
- 工業(yè)機(jī)器人高精度力控的“雙模融合”傳感器設(shè)計(jì)
- 下載是德科技精選解決方案,抽獎(jiǎng)贏好禮!
- Keysight示波器主題月有獎(jiǎng)系列活動(dòng)之 注冊(cè)大獎(jiǎng)天天抽 搶樓踩中亦有獎(jiǎng)
- 得捷第二季Follow me第2期來(lái)襲,一起解鎖功能強(qiáng)大且靈活的【Arduino UNO R4 WiFi】
- Microchip 有獎(jiǎng)問(wèn)答,信號(hào)增益或?yàn)V波的原始傳感器應(yīng)用方案
- 看咱壇友自己的研討會(huì)~ST-EEWORLD線下網(wǎng)友見(jiàn)面會(huì)實(shí)錄
- 泰克多媒體總線專題之《DDR Memory》,下載贏好禮!
- 【0元得開(kāi)發(fā)板,還能贏T12焊臺(tái),報(bào)名倒計(jì)時(shí)】Follow me,與得捷一起解鎖開(kāi)發(fā)板超能力!
- 國(guó)產(chǎn)芯5月:曬一曬,初露鋒芒的國(guó)產(chǎn)車規(guī)芯片你知多少?
- 揭Altera MAX10神秘面紗,下載白皮書(shū),搶樓贏好禮!
- 美國(guó)正在研究能自主學(xué)習(xí)的智能機(jī)器人,讓機(jī)器人成為士兵最靠譜的戰(zhàn)友
- 烏魯木齊高新區(qū)與新松合作,共同建設(shè)烏魯木齊機(jī)器人產(chǎn)業(yè)園
- 盲動(dòng)機(jī)器人“獵豹3號(hào)”,不需要視覺(jué)系統(tǒng),便可在崎嶇地形中穿行跳躍
- 11款未來(lái)機(jī)器人介紹,竟然如此神奇
- 這款機(jī)器人可以實(shí)現(xiàn)遠(yuǎn)程控制做實(shí)驗(yàn)
- 毫米波傳感器輕松實(shí)現(xiàn)細(xì)微運(yùn)動(dòng)檢測(cè)和人數(shù)統(tǒng)計(jì)智能化
- ??怂箍凳召?gòu)德國(guó)Etalon公司助力自主連接智能工廠戰(zhàn)略
- ??怂箍甸W耀機(jī)械行業(yè)發(fā)展時(shí)代力量年度盛典
- 家庭服務(wù)智能機(jī)器人有什么作用呢?
- 高性能MEMS傳感器 鑄造無(wú)人機(jī)強(qiáng)“心”
- 請(qǐng)教:如何配置ST7FLITE的AWU功能?
- 安路SparkRoad開(kāi)發(fā)板測(cè)評(píng)(2) 集成開(kāi)發(fā)環(huán)境的簡(jiǎn)單操作
- 求交流假電子負(fù)載方案
- FET-Pro430 v3,編程器,Serialization是不能工作的。
- 在am335x gpmc上接sram作為外部存儲(chǔ),軟件需要做哪些設(shè)定?
- 共射極電路問(wèn)題,請(qǐng)指教
- ARM真的比51好嗎?
- FPGA權(quán)威指南
- 基于Windows CENET下的GPRS模塊的研究與開(kāi)發(fā).pdf
- LPC4357的IAP更新程序問(wèn)題