娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

STM32基于HAL庫(kù)實(shí)現(xiàn)微秒延時(shí)

發(fā)布者:TranquilJourney最新更新時(shí)間:2024-09-04 來(lái)源: elecfans關(guān)鍵字:STM32  HAL庫(kù)  微秒延時(shí) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

HAL只提供了ms級(jí)的延時(shí),但有些特殊場(chǎng)景,比如與通信速率較慢的設(shè)備通信時(shí),會(huì)需要用到us級(jí)延時(shí)。STM32標(biāo)準(zhǔn)庫(kù)一般是使用系統(tǒng)嘀嗒定時(shí)器來(lái)進(jìn)行微妙級(jí)別的延時(shí),而HAL庫(kù)將SysTick定時(shí)器用做了庫(kù)函數(shù)的超時(shí)定時(shí)器,使用的地方非常多,自己修改代碼使用嘀嗒定時(shí)器的話就會(huì)引起錯(cuò)亂,所以此時(shí)就需要自己實(shí)現(xiàn)一個(gè)us級(jí)別延時(shí)函數(shù)


這里介紹一種使用定時(shí)器設(shè)計(jì)us級(jí)延時(shí)函數(shù)的方法。


思路:我們將定時(shí)器設(shè)置為1MHZ的計(jì)數(shù)頻率,這樣定時(shí)器計(jì)一個(gè)數(shù)就是1us,我們就可以通過(guò)定時(shí)器計(jì)數(shù)值得知計(jì)時(shí)時(shí)間。

以使用TIM1為例,這里我們采用STM32F103內(nèi)部8MHz晶振,故需要設(shè)置預(yù)分頻系數(shù)PSC為8-1=7。同時(shí)配置PA1為GPIO輸出模式,之后用于測(cè)試延時(shí)函數(shù)的效果。

圖片

Untitled


編寫微秒延時(shí)函數(shù):


/* USER CODE BEGIN PD */

#define DLY_TIM_Handle (&htim1)  // Timer handle

/* USER CODE END PD */


/* USER CODE BEGIN PFP */

void delay_us(uint16_t nus);

/* USER CODE END PFP */


/* USER CODE BEGIN 4 */

void delay_us(uint16_t nus)

 __HAL_TIM_SET_COUNTER(DLY_TIM_Handle, 0);  // set the counter value a 0

 __HAL_TIM_ENABLE(DLY_TIM_Handle);          // start the counter

  // wait for the counter to reach the us input in the parameter

 while (__HAL_TIM_GET_COUNTER(DLY_TIM_Handle) < nus);

 __HAL_TIM_DISABLE(DLY_TIM_Handle);         // stop the counter

}

/* USER CODE END 4 */

編寫微秒延時(shí)函數(shù)測(cè)試程序,使PA1高低電平間隔100us轉(zhuǎn)換一次:


/* USER CODE BEGIN WHILE */

  while (1)

  {

    /* USER CODE END WHILE */


    /* USER CODE BEGIN 3 */

    HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);

    delay_us(100);

  }

  /* USER CODE END 3 */


燒錄程序,通過(guò)邏輯分析儀觀察PA1電平變化:

圖片

圖片

可以看到PA1高電平持續(xù)時(shí)間和低電平持續(xù)時(shí)間都和符合100us的預(yù)設(shè),延時(shí)效果較好。


關(guān)鍵字:STM32  HAL庫(kù)  微秒延時(shí) 引用地址:STM32基于HAL庫(kù)實(shí)現(xiàn)微秒延時(shí)

上一篇:ROS與STM32串口通信代碼
下一篇:stm32怎么讀取io口輸入電平

小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章
更多每日新聞

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 乌兰浩特市| 五常市| 石狮市| 西华县| 铜陵市| 布拖县| 清涧县| 垣曲县| 宣武区| 玉林市| 大丰市| 泸溪县| 昭苏县| 遂昌县| 永泰县| 定结县| 甘南县| 海城市| 来凤县| 宝清县| 宁津县| 治县。| 汕尾市| 新竹县| 邯郸县| 文成县| 慈溪市| 汾西县| 安化县| 微博| 武城县| 旬邑县| 阳朔县| 咸阳市| 扶风县| 灵川县| 夏津县| 田林县| 平江县| 盘锦市| 漠河县|