女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32基于HAL庫實現微秒延時

CHANBAEK ? 來源:上下求索電子er ? 作者:上下求索電子er ? 2023-10-25 15:31 ? 次閱讀

STM32基于HAL庫實現微秒延時

HAL只提供了ms級的延時,但有些特殊場景,比如與通信速率較慢的設備通信時,會需要用到us級延時。STM32標準庫一般是使用系統嘀嗒定時器來進行微妙級別的延時,而HAL庫將SysTick定時器用做了庫函數的超時定時器,使用的地方非常多,自己修改代碼使用嘀嗒定時器的話就會引起錯亂,所以此時就需要自己實現一個us級別延時函數。

這里介紹一種使用定時器設計us級延時函數的方法。

思路:我們將定時器設置為1MHZ的計數頻率,這樣定時器計一個數就是1us,我們就可以通過定時器計數值得知計時時間。

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

圖片
Untitled

編寫微秒延時函數:

/* 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 */

編寫微秒延時函數測試程序,使PA1高低電平間隔100us轉換一次:

/* 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 */

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

圖片

圖片

可以看到PA1高電平持續時間和低電平持續時間都和符合100us的預設,延時效果較好。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2290

    文章

    11018

    瀏覽量

    362776
  • 定時器
    +關注

    關注

    23

    文章

    3289

    瀏覽量

    117392
  • GPIO
    +關注

    關注

    16

    文章

    1277

    瀏覽量

    53648
  • Systick
    +關注

    關注

    0

    文章

    63

    瀏覽量

    13511
  • HAL庫
    +關注

    關注

    1

    文章

    121

    瀏覽量

    6779
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    STM32 HAL微秒延時

    STM32HAL微秒(μs)延時
    發表于 08-24 07:19

    如何利用SysTick實現微秒延時函數?

    怎么實現STM32 HAL微秒延時函數? 如何利用SysTick
    發表于 11-25 08:06

    怎么實現STM32CubeIDE HAL微秒us的延時Delay?

    怎么實現STM32CubeIDE HAL微秒us的延時Delay?
    發表于 11-25 07:40

    HAL如何實現us延時

    stm32HAL實現us延時方法HAL_Delay()源碼為ms級別的
    發表于 01-17 07:53

    HAL微秒級的延時實現

    目錄前言一、代碼和使用二、使用和驗證1.引入頭文件2.初始化3.使用和驗證總結前言接觸HAL差不多兩年了,一直苦于HAL沒有自帶微秒級的
    發表于 01-20 07:49

    STM32單片機使用定時器中斷方式實現毫秒級延時的設計

    因為STM32 HAL中僅有對HAl_Delay()毫秒級的延時,為實現精確的
    發表于 06-04 14:55 ?1.1w次閱讀
    <b class='flag-5'>STM32</b>單片機使用定時器中斷方式<b class='flag-5'>實現</b>毫秒級<b class='flag-5'>延時</b>的設計

    通用定時器實現STM32單片機微秒延時函數

    一、前言在實際應用中,經常用到延時函數,而HAL延時函數是毫秒級的,雖然可以自行修改,但該函數使用的地方較多,修改不慎可能會引起其他問題,所以本文使用一個定時器,
    發表于 11-24 18:51 ?20次下載
    通用定時器<b class='flag-5'>實現</b><b class='flag-5'>STM32</b>單片機<b class='flag-5'>微秒</b>級<b class='flag-5'>延時</b>函數

    STM32CubeMX 配置STM32F407 實現HAL延時微妙方案

    STM32CubeMX 配置STM32F407 實現HAL延時微妙方案
    發表于 11-24 20:51 ?20次下載
    <b class='flag-5'>STM32</b>CubeMX 配置<b class='flag-5'>STM32</b>F407 <b class='flag-5'>實現</b><b class='flag-5'>HAL</b><b class='flag-5'>庫</b><b class='flag-5'>延時</b>微妙方案

    stm32HAL實現us延時方法

    stm32HAL實現us延時方法HAL_Delay()源碼為ms級別的
    發表于 01-17 09:32 ?5次下載
    <b class='flag-5'>stm32</b>之<b class='flag-5'>HAL</b><b class='flag-5'>庫</b><b class='flag-5'>實現</b>us<b class='flag-5'>延時</b>方法

    STM32 HAL 延時函數 HAL_Delay 解析

    HAL 有提供延時函數,只不過它只能實現簡單的毫秒級別延時,沒有實現 us 級別
    發表于 01-17 09:48 ?8次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>HAL</b> <b class='flag-5'>庫</b><b class='flag-5'>延時</b>函數 <b class='flag-5'>HAL</b>_Delay 解析

    STM32HAL微秒延時(μs)

    STM32HAL微秒(μs)延時
    發表于 01-18 10:39 ?49次下載
    <b class='flag-5'>STM32HAL</b><b class='flag-5'>庫</b><b class='flag-5'>微秒</b><b class='flag-5'>延時</b>(μs)

    HAL中用定時器實現自定義延時函數delay_us()

    STM32程序從標準移植到HAL的時候,會發現HAL中只有一個毫秒級
    的頭像 發表于 09-21 10:33 ?1.2w次閱讀

    stm32 hal資料分享

    stm32 hal資料分享
    發表于 11-03 16:17 ?132次下載

    STM32 HAL的功能和使用方法 STM32 HAL和標準的區別

    HAL(Hardware Abstraction Layer)是指硬件抽象層,是一種封裝底層硬件接口驅動的編程。在嵌入式系統中,HAL可以更加方便地
    發表于 08-08 18:21 ?6156次閱讀

    STM32如何使用定時器實現微秒(us)級延時

    STM32如何使用定時器實現微秒(us)級延時? 在STM32微控制器中,可以使用定時器實現
    的頭像 發表于 11-06 11:05 ?7398次閱讀
    主站蜘蛛池模板: 三台县| 康保县| 玉树县| 宿州市| 陵川县| 石首市| 保德县| 广水市| 桐庐县| 兴业县| 平顺县| 泗阳县| 宣威市| 望谟县| 林甸县| 宁国市| 美姑县| 石柱| 望城县| 横峰县| 监利县| 买车| 桂东县| 华容县| 宁远县| 禹州市| 斗六市| 周宁县| 三穗县| 保德县| 南召县| 佛坪县| 呼玛县| 西青区| 霸州市| 淳安县| 大荔县| 铜川市| 唐山市| 保德县| 两当县|