stm32滴答計時器_STM32的系統滴答定時器(Systick)

1.systick時鐘來源

2.SysTick庫函數

3.源碼

/**

*@}

*/

/** @defgroup SysTick_clock_source

*@{

*/

#define SysTick_CLKSource_HCLK_Div8? ? ((uint32_t)0xFFFFFFFB)

#define SysTick_CLKSource_HCLK? ? ? ? ?((uint32_t)0x00000004)

#define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \

((SOURCE) == SysTick_CLKSource_HCLK_Div8))

/**

*@brief? Configures the SysTick clocksource.

*@param? SysTick_CLKSource: specifies theSysTick clock source.

*? ?This parameter can be one ofthe following values:

*? ? ?@argSysTick_CLKSource_HCLK_Div8: AHB clock divided by 8 selected as SysTick clocksource.

*? ? ?@arg SysTick_CLKSource_HCLK:AHB clock selected as SysTick clock source.

*@retval None

*/

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

{

/* Check the parameters */

assert_param(IS_SYSTICK_CLK_SOURCE(SysTick_CLKSource));

if (SysTick_CLKSource == SysTick_CLKSource_HCLK)

{

SysTick->CTRL |= SysTick_CLKSource_HCLK;

}

else

{

SysTick->CTRL &= SysTick_CLKSource_HCLK_Div8;

}

}

/*##################################? ?SysTick function ############################################ */

#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)

/**

*@brief? Initialize and start the SysTickcounter and its interrupt.

*

*@param? ?ticks? ?number of ticks between two interrupts

*@return? 1 = failed, 0 = successful

*

*Initialise the system tick timer and its interrupt and start the

*system tick timer / counter in free running mode to generate

*periodical interrupts.

*/

static __INLINE uint32_t SysTick_Config(uint32_t ticks)

{

if (ticks > SysTick_LOAD_RELOAD_Msk)? return (1);? ? ? ? ? ? /* Reload value impossible */

SysTick->LOAD? = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;? ? ? /* set reload register */

NVIC_SetPriority (SysTick_IRQn, (1VAL? ?= 0;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* Load the SysTick Counter Value */

SysTick->CTRL? = SysTick_CTRL_CLKSOURCE_Msk |

SysTick_CTRL_TICKINT_Msk? ?|

SysTick_CTRL_ENABLE_Msk;? ? ? ? ? ? ? ? ? ?/* Enable SysTick IRQ and SysTick Timer*/

return (0);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* Function successful */

}

#endif

#ifdefSYSCLK_FREQ_HSE

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_HSE;? ? ? ? /*!#elif defined SYSCLK_FREQ_24MHz

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_24MHz;? ? ? ? /*!< System Clock Frequency (Core Clock) */

#elif defined SYSCLK_FREQ_36MHz

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_36MHz;? ? ? ? /*!#elif defined SYSCLK_FREQ_48MHz

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_48MHz;? ? ? ? /*!#elif defined SYSCLK_FREQ_56MHz

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_56MHz;? ? ? ? /*!#elif defined SYSCLK_FREQ_72MHz

uint32_t SystemCoreClock? ? ? ? ?= SYSCLK_FREQ_72MHz;? ? ? ? /*!#else /*!< HSI Selected as System Clock source */

uint32_t SystemCoreClock? ? ? ? ?= HSI_VALUE;? ? ? ? /*!< System Clock Frequency (Core Clock) */

#endif

///

/* Configure the SysTick */

SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);//8000000/1000=>1ms

/**

*This is the timer interrupt service routine.

*

*/

void SysTick_Handler(void)

{

/* enter interrupt */

rt_interrupt_enter();

rt_tick_increase();

/* leave interrupt */

rt_interrupt_leave();

}

本網站轉載的所有的文章、圖片、音頻視頻文件等資料的版權歸版權所有人所有,本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如果本網所選內容的文章作者及編輯認為其作品不宜公開自由傳播,或不應無償使用,請及時通過電子郵件或電話通知我們,以迅速采取適當措施,避免給雙方造成不必要的經濟損失。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529270.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java包裝類與基本數據類型的自動 手動裝箱與自動 手動拆箱

Java包裝類與基本數據類型的自動 手動裝箱與自動 手動拆箱 **自動裝箱與拆箱**&#xff0c;實現代碼如下&#xff1a; /*** 裝箱 &#xff1a; 基本數據類型-----> 包裝類* 拆箱&#xff1a; 包裝類-------> 基本數據類型* author **/ public class Test1 {public sta…

什么叫冷備用狀態_新密5P加工中心冷油機生產廠家電話【瀚信德】

新密5P加工中心冷油機生產廠家電話【瀚信德】以上如有異常&#xff0c;請盡快通知分司派維修人員處理。油冷機的工作原理有什么油冷機也叫冷油機&#xff0c;根據制冷系統原理&#xff0c;低溫低壓的液態冷媒在蒸發器里面與周圍水進行熱交換蒸發器吸收油的熱量&#xff0c;蒸發…

java 雙等號(==) 與equals方法的介紹和區別

java 雙等號&#xff08;&#xff09; 與equals方法的介紹和區別 1.基本數據類型與equals方法 用于比較基本數據類型時&#xff0c;比較的是值用于比較引用數據類型時&#xff0c;比較的是地址equals方法在Object類中比較的也是地址&#xff0c;因為在低層也是使用進行比較St…

verilog時鐘翻轉怎么寫_verilog實時可調時鐘代碼

module clock(clk,out,reset,cin,ocom,count,countmin,tgm,tdm,tgs,tds);output[3:0] ocom;output[7:0] out;output count,countmin;input cin,clk,reset;input tgm;//高位的分input tdm;//地位的分input tgs;//高位的秒input tds;//地位的秒reg [7:0] out_s;reg[7:0] out_min;…

Java ArrayList與LinkedList數據結構和特點

Java ArrayList與LinkedList數據結構和特點 1. ArrayList 數據結構&#xff1a; ArrayList低層是實現的是一個Object類型的數組&#xff08;空間連續&#xff0c;類型相同&#xff09;當我們調用ArrayList無參構造方法&#xff0c;將會創建一個Object類型的**空**數組當我們第…

多線程 循環 鎖_大多數人還不清楚的iOS多線程

你不知道的的 iOS 多線程程序員用有限的生命去追求無限的知識。有言在先首先我不是故意要做標題黨的&#xff0c;也不是我要炒冷飯&#xff0c;我只是想換個姿勢看多線程&#xff0c;本文大部分內容在分析如何造死鎖&#xff0c;奈何功力尚淺&#xff0c;然而再淺&#xff0c;也…

Java HashMap與Hashtable數據結構和特點+HashSet簡述

Java HashMap與Hashtable數據結構和特點HashSet簡述 1.HashMap HashMap就是基于數組和鏈表的數據結構&#xff1a;JDK1.7使用 數組單向鏈表&#xff1b;JDK1.8使用 數組單向鏈表紅黑樹 HashMap有兩個重要的參數&#xff1a; 一個是負載因子 0.75&#xff1a;表示數組使用率達…

aj6 stamps storm_親友限定的 AJ 6 要發了?3 月好鞋發售清單 for girls

原標題&#xff1a;親友限定的 AJ 6 要發了&#xff1f;3 月好鞋發售清單 for girls&#x1f338;&#x1f338;&#x1f338;Air Jordan 1 Low Slip “Chicago”Color&#xff1a;Varsity Red/Black/WhiteStyle Code&#xff1a;BQ8462-601Price&#xff1a;$110adidas WMNS U…

學校為什么要單位接收函_學校、小區運動場為什么要選擇塑膠跑道

隨著人們生活水平的不斷提高&#xff0c;科技的日新月異&#xff0c;各行各業都向著更加健康環保安全舒適的方向邁進。就拿小區、學校的運動場所地坪為例&#xff0c;傳統的“沙土跑道”已經被運動塑膠跑道所替代。那么運動場為什么會選擇塑膠跑道呢&#xff1f; 塑膠跑道又稱全…

java中常見的專業術語單詞縮寫,看你認識幾個

java中常見的專業術語單詞縮寫&#xff0c;看你認識幾個 單詞全稱單詞縮寫中文意思備注Garbage CollectionGC垃圾回收Object Oriented ProgrammingOOP面向對象程序設計Document Object ModelDOM文檔對象模型Browser Object ModelBOM游覽器對象模型uniform resource locatorurl…

pitstop插件使用說明_【學員分享】程序員效率神器,最常用VIM插件安裝大全

相信大家多次被推薦用vim作為編輯程序&#xff0c;知道vim編輯有很多優點&#xff0c;但是vim初始界面太原始了&#xff0c;安裝了之后只能用來編輯&#xff0c;如果要運行就需要退出去運行&#xff0c;麻煩死了。回想用現成的IDE是多么的舒服。但是為了更好的學習&#xff0c;…

JVM思維導圖、正則表達式符號圖、企業內部開發流程圖

JVM思維導圖、正則表達式符號圖、企業內部開發流程圖 1.JVM思維導圖&#xff1a; 2.正則表達式符號圖&#xff1a; 3.企業內部開發流程圖&#xff1a;

蕭縣機器人_全國總決賽第一名!蕭縣楊樓的這位學生厲害了

&#xfeff; 提示&#xff1a;點擊上方"蕭縣關注"↑免費訂閱本刊點擊上方關注我們&#xff0c;免費訂閱更多精彩內容&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&#xfeff;&…

關于JSP頁面無法加載css,游覽器訪問jsp頁面樣式未生效導致亂序

關于JSP頁面無法加載css&#xff0c;游覽器訪問jsp頁面樣式未生效導致亂序 1.修改自己過濾器中對編碼格式的修改 如圖&#xff1a; 代碼如下&#xff1a; public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOE…

將視圖轉為image_JavaScript二進制數組(2)TypedArray視圖

ArrayBuffer對象作為內存區域可以存放多種類型的數據。同一段內存&#xff0c;不同數據有不同的解讀方式&#xff0c;這種解讀方式稱為“視圖&#xff08;view&#xff09;”。ArrayBuffer有兩種類型的視圖&#xff0c;一種是類型化數組視圖&#xff08;TypedArray&#xff09;…

八大基本數據類型、數組和包裝類默認值

八大基本數據類型、數組和包裝類默認值 1.八大基本數據類型 Java八種基本數據類型總結序號數據類型大小/字節封裝類默認值可表示數據范圍1byte1Byte0-128~1272short2Short0-32768~327673int4Integer0-2147483648~21474836474long8Long0-9223372036854775808~9223372036854775…

解決IDEA中maven工程的jsp、jstl依賴導入了 ,但是 jsp頁面的uri卻不提示(手動輸上也報紅)

解決IDEA中maven工程的jsp、jstl依賴導入了 &#xff0c;但是 jsp頁面的uri卻不提示&#xff08;手動輸上也報紅&#xff09; 出現原因&#xff1a;idea內有緩存 解決辦法&#xff1a;File --> Invalidate Caches / Restart… --> lnvalidate and Restart idea版本&#…

空格 過濾多個_CAD選擇過濾器的運算符如何使用?

選擇過濾器FILTER在CAD早期版本中是擴展工具的一個功能&#xff0c;到了高版本變成標配的功能&#xff0c;但在浩辰CAD的菜單或工具面板中我還找到選擇過濾器的命令。浩辰CAD面板、右鍵菜單和特性面板倒是都提供了快速選擇的功能&#xff0c;快速選擇功能應該是借鑒選擇過濾器開…

Java中各種常見的生命周期

Java中各種常見的生命周期 1.Spring bean的生命周期&#xff1f; ? 1、Spring 容器根據配置中的 bean 定義中實例化 bean。 ? 2、Spring 使用依賴注入填充所有屬性&#xff0c;如 bean 中所定義的配置。 ? 3、如果 bean 實現 BeanNameAware 接口&#xff0c;則工廠通過傳…

各層作用_終于弄明白了 Singleton,Transient,Scoped 的作用域是如何實現的

一&#xff1a;背景1. 講故事前幾天有位朋友讓我有時間分析一下 aspnetcore 中為什么向 ServiceCollection 中注入的 Class 可以做到 Singleton&#xff0c;Transient&#xff0c;Scoped&#xff0c;挺有意思&#xff0c;這篇就來聊一聊這一話題&#xff0c;自從 core 中有了 S…