精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

基于STM32F407的FreeRTOS學習筆記(9)

CHANBAEK ? 來源:實在太懶于是不想取名 ? 作者:電路小白 ? 2023-11-08 11:08 ? 次閱讀

嵌入式編程中,定時器是一個非常重要且強大的功能,用來幫我們定時性的調用中斷服務函數來幫助我們處理程序。定時器通常是用硬件來實現的,例如STM32F407就有8個硬件定時器。

而在FreeRTOS中則可以用軟件實現定時器。大大的擴展了定時器的數量。

圖片

圖片

閱讀FreeRTOS開發者文檔我們可以知道,軟件定時器的回調函數會在定時器服務函數中執行。

同時,軟件定時器的回調函數中不能調用然后可以導致阻塞的函數例如vTaskDelay()等等,包括等待信號量的函數這些也會造成阻塞。

圖片

FreeRTOS會使用隊列向定時器服務任務發送命令,這個隊列就是定時器命令隊列。

創建軟件定時器

圖片

在API引用文檔中,我們可以查詢有關創建軟件定時器創建的函數。內容有許多,但是還是總歸是分三個步驟:包含相關頭文件、啟動相關的宏、配置軟件定時器。

軟件定時器配置時也有三個參數需要注意,一個定時器的定時時間,一個是設置定時器重復使用還是一次項,最后需要注意的是傳入調用函數的句柄。

圖片

定義相關的回調函數與定時器句柄。

Timer_Handler = xTimerCreate
                 ( (const char * const) "xTimerCreate",
                   (const TickType_t) 500,//500ms一次
                   (const UBaseType_t) pdTRUE,//重復
                   (void * const) 1,//定時器ID
                   (TimerCallbackFunction_t) CallBacl );//中斷服務函數句柄

接著我們定義一個輪詢函數,當按鍵按下時,我們就開啟定時器

void Low_Task(void * pvParameters)//參數為 void * pvParameters
{
  while(1)
  {
    if(KEY_Scan(0)==1)
    {
      xTimerStart(Timer_Handler,100);//開始定時器傳入句柄以及最大等待時間
    }
  }
}

在回調函數中我們讓LED燈進行翻轉

void CallBacl( TimerHandle_t xTimer)
{
  HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_10);   
}

同樣的,在官方的API文檔中我們還可以看到許多和軟件定時器有關的內容,在這里不一一介紹,有感興趣的小伙伴可以去官網查看API使用說明。

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

    關注

    5046

    文章

    18823

    瀏覽量

    298714
  • 定時器
    +關注

    關注

    23

    文章

    3218

    瀏覽量

    113708
  • FreeRTOS
    +關注

    關注

    12

    文章

    483

    瀏覽量

    61733
  • STM32F407
    +關注

    關注

    15

    文章

    187

    瀏覽量

    29205
收藏 人收藏

    評論

    相關推薦

    STM32F407模板

    STM32F407模板,感興趣可以看看。
    發表于 07-25 18:52 ?130次下載

    STM32F407 UCOS III實驗

    STM32F407 UCOS III實驗,介紹基于STM32F407的UCOSIII實例,參考下
    發表于 09-22 14:08 ?81次下載

    STM32F407 DCMI攝像頭源碼

    STM32F407 DCMI攝像頭源碼(電源技術存在的問題總結)-【資源描述】:STM32F407 DCMI攝像頭源碼【編程語言】:C語言
    發表于 09-16 16:15 ?123次下載
    <b class='flag-5'>STM32F407</b> DCMI攝像頭源碼

    STM32F407標準庫學習筆記-AFIO未完

    STM32F407標準庫學習筆記-AFIO- 頭文件 gpio.h#define GPIO_PinSource0 ((uint8_t)0x00)#define
    發表于 11-29 15:36 ?2次下載
    <b class='flag-5'>STM32F407</b>標準庫<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>-AFIO未完

    STM32F407標準庫學習筆記-RCC

    STM32F407標準庫學習筆記-RCC- rcc.htypedef struct{ uint32_t SYSCLK_Frequency; /*!< SYSCLK clock
    發表于 11-29 15:51 ?13次下載
    <b class='flag-5'>STM32F407</b>標準庫<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>-RCC

    STM32F407標準庫學習筆記-GPIO

    STM32F407標準庫學習筆記-GPIO頭文件 gpio.h枚舉-列舉同一寄存器的不同選項typedef enum{ GPIO_Low_Speed = 0x00, /*!<
    發表于 11-29 15:51 ?46次下載
    <b class='flag-5'>STM32F407</b>標準庫<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>-GPIO

    STM32F407的串口UART 基礎配置STM32CubeMX

    STM32F407的串口UART 基礎配置STM32CubeMX
    發表于 11-29 16:06 ?54次下載
    <b class='flag-5'>STM32F407</b>的串口UART 基礎配置<b class='flag-5'>STM32</b>CubeMX

    [STM32]STM32F407系列教程之四,pwm產生原理

    [STM32]STM32F407系列教程之四,pwm產生原理
    發表于 11-29 17:51 ?51次下載
    [<b class='flag-5'>STM32</b>]<b class='flag-5'>STM32F407</b>系列教程之四,pwm產生原理

    STM32F407芯片介紹

    1. 文檔準備做嵌入式開發的第一步就是了解主芯片,了解STM32F407主要要關注幾個文檔:1. stm32F407芯片手冊2. stm32F407參考手冊3. Arm Cortex-M4數據手冊
    發表于 12-04 13:21 ?109次下載
    <b class='flag-5'>STM32F407</b>芯片介紹

    STM32F407開發板用戶手冊】第1章?? 初學STM32F407的準備工作

    STM32F407開發板用戶手冊】第1章?? 初學STM32F407的準備工作
    發表于 12-04 13:36 ?75次下載
    【<b class='flag-5'>STM32F407</b>開發板用戶手冊】第1章?? 初學<b class='flag-5'>STM32F407</b>的準備工作

    STM32F407原理圖下載

    STM32F407原理圖下載
    發表于 01-17 13:44 ?416次下載

    stm32f407原理圖

    stm32f407原理圖
    發表于 07-14 16:07 ?201次下載

    STM32F407最小系統

    STM32F407最小系統免費下載。
    發表于 07-31 11:01 ?168次下載

    STM32F407 FreeRTOS開發手冊 V1.1

    STM32F407 FreeRTOS開發手冊_V1.1PDF文件下載。
    發表于 07-31 11:16 ?52次下載

    STM32F407+FreeRTOS+LWIP1.4.1移植問題記錄

    最近在學習物聯網相關的知識,打算用ST的開發板STM32F407ZGT6作為控制中心,上面搭載FreeROTS實時系統,STM32F407開發板作為 TCP client
    的頭像 發表于 07-21 14:09 ?3588次閱讀
    <b class='flag-5'>STM32F407+FreeRTOS</b>+LWIP1.4.1移植問題記錄