因為STM32 HAL庫中僅有對HAl_Delay()毫秒級的延時,為實現精確的微秒級延時,就不得不修改Systick,但由于HAL庫內部使用其作為超時判斷等操作,對其修改會發生不可預期的錯誤,不建議修改。因此,使用通用定時器進行定時操作。
參考網上例程,使用定時器中斷方式實現延時,代碼如下:
/*
TIM3溢出時間=72MHz/(71+1)/(0+1)=1Mhz=1us
計數模式:向上計數模式
使能TIM3中斷
*/
__IO static uint32_t usDelay=0;
void Delayms(uint32_t ms)
{
Delayus(ms*1000);
}
void Delayus(uint32_t us)
{
usDelay=us;
HAL_TIM_Base_Start_IT(&htim3);
while(usDelay);
HAL_TIM_Base_Stop_IT(&htim3);
}
//重寫回調函數
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM3)
{
if(usDelay!=0)
{
usDelay--;
}
}
}
雖然說以上程序的并沒什么錯誤,但在實際運行中,卻無法得到正確的運行。同時,在進行Debug調試時,單步執行又可以正常運行。
主要原因在于:中斷間隔時間太短,導致中斷函數還沒有運行完成,其中斷標志位卻再次置位,導致在程序卡死。
因此,關閉定時器中斷,采用定時器輪詢的方式實現延時,代碼如下:
/*
TIM3溢出時間=72MHz/(71+1)/(0+1)=1Mhz=1us
計數模式:向下計數模式
*/
void Delay_us(uint32_t us){
uint16_t counter=us&0xffff;
HAL_TIM_Base_Start(&htim3);
__HAL_TIM_SetCounter(&htim3,counter);
while(counter>1)
{
counter=__HAL_TIM_GetCounter(&htim3);
}
HAL_TIM_Base_Stop(&htim3);
}
void Delay_ms(uint32_t ms){
Delay_us(1000*ms);
}
上一篇:STM32F767cubemx開發手記(1) 跑馬燈
下一篇:STM32CubeMx下LWIP教程(一)-PHY硬件層搭建
推薦閱讀
史海拾趣
隨著國內市場的飽和,HCC Industries在2010年制定了國際化發展戰略。公司首先選擇在歐洲市場設立分支機構,利用其先進的制造工藝和技術優勢,迅速打開了當地市場。隨后,HCC又相繼在亞洲和北美地區設立了多個辦事處和生產基地,實現了全球范圍內的生產和銷售網絡布局。這一戰略不僅顯著提升了HCC的品牌影響力,也為其帶來了更加多元化的客戶群體和更廣闊的市場空間。
DESIGNERSYSTEMS公司非常注重人才的培養和引進。他們建立了一套完善的人才培養機制,通過內部培訓、外部交流等多種方式不斷提升員工的綜合素質和專業能力。同時,DESIGNERSYSTEMS還積極引進國內外優秀人才,為公司的發展注入新的活力和創新力。這種對人才的重視和投入使得DESIGNERSYSTEMS在電子行業中保持了持續的創新力和競爭力。
DESIGNERSYSTEMS公司非常注重人才的培養和引進。他們建立了一套完善的人才培養機制,通過內部培訓、外部交流等多種方式不斷提升員工的綜合素質和專業能力。同時,DESIGNERSYSTEMS還積極引進國內外優秀人才,為公司的發展注入新的活力和創新力。這種對人才的重視和投入使得DESIGNERSYSTEMS在電子行業中保持了持續的創新力和競爭力。
隨著公司規模的擴大,DILABS開始意識到品質控制的重要性。他們引進了先進的生產設備和管理系統,確保每一款產品的質量都達到行業最高標準。同時,DILABS還加大了品牌宣傳力度,通過參加國際展會、發布技術白皮書等方式,逐步建立起公司在電子行業中的品牌形象。
隨著電子產品的不斷升級和電路防護需求的提高,佰宏團隊不斷進行技術研發和產品創新。他們成功開發出了多種嚴苛環境下的客制化PPTC自恢復保險絲,滿足了高精密高標準的電路防護需求。這一技術突破不僅提升了產品的競爭力,也為公司贏得了更多的市場份額。
DURATOOL公司自成立以來,一直致力于電子工具的技術創新。在20世紀90年代,公司研發出了一款具有革命性的數字萬用表,該產品在精確度、穩定性和操作便捷性方面均大幅超越當時的市場主流產品。這一創新不僅為DURATOOL公司贏得了大量忠實用戶,也為其在電子測量工具市場樹立了技術領先的形象。隨后,DURATOOL公司不斷加大研發投入,推出了一系列具有競爭力的新產品,逐步鞏固了其在電子工具行業的領先地位。
我剛買了一臺電腦,剛開始上網速度很快,電腦運行也很快,這段時間不知道怎么了,一上網電腦速度超慢,我還以為是電腦的問題,后來把系統重裝還是一樣,不過把網線拔了速度就很快。可以排除電腦的問題,不知是路由器的問題還是貓的問 ...… 查看全部問答∨ |
|
EXP430FR5739與MSP430G2開發板進行2.4G無線通訊控制一路舵機 發射部分:MCU:EXP430FR5739開發板 RF芯片:笙科的A7105(2.4GHZ) & ...… 查看全部問答∨ |