999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32CubeMX定時器中斷回調函數的研究

2020-05-13 14:15:23李建波張永亮梁振華
電腦知識與技術 2020年8期

李建波 張永亮 梁振華

摘要:介紹了嵌入式芯片STM32圖形化配置軟件STM32CubeMX,以定時器2為例,信號源為內部時鐘,當計數溢出時產生定時器中斷。通過分析STM32CubeMX定時器中斷處理機制,并進行軟件仿真和硬件實驗,從技術上為開發者提供幫助。

關鍵詞:定時器中斷;中斷回調函數;STM32CubeMX

中圖分類號:TH85+1 文獻標識碼:A

文章編號:1009-3044(2020)08-0248-02

1 簡介

STM32CubeMX是ST意法半導體近幾年來大力推薦的STM32芯片圖形化配置工具,允許用戶使用圖形化向導生成C初始化代碼,可以大大減輕開發工作、時間和費用[1-2]。 聊城大學物理科學與信息工程學院羅清龍等對如何將STM32CubeMX引入本科嵌入式實驗教學改革進行了實踐[3],廣東機電職業技術學院電子與通信學院李建波等分析了將STM32CubeMX引入高職嵌入式系統設計課程教學中[4],西安工程大學電子信息學院羅瑤等將STM32CubeMX用在高速USB通信模塊設計中[5]。

目前沒有發現文章對STM32CubeMX定時器中斷進行分析,而定時器中斷是處理器實時處理事件的一種內部機制,是很重要的一個環節。本文利用STM32CubeMx設置TIM4定時中斷功能,追蹤了定時中斷矢量,在定時中斷回調函數中編寫了服務代碼,并進行了軟件仿真和硬件驗證。

2 總體設計

利用STM32CubeMX軟件進行定時器配置,生成代碼。打開工程進入Keil開發環境,進行定時器中斷代碼編輯、編譯,生成可執行文件。在仿真軟件Proteus選擇STM32芯片,并裝載可執行文件,進行仿真觀察。利用ST-Link或JLink,將代碼下載到開發板,進行硬件調試。

3 STM32CubeMX軟件

3.1選擇控制器

打開STM32CubeMX,點擊菜單欄File—New Project新建項目,輸入STM32F103C6,選擇STM32F103C6Tx芯片。在引腳配置界面,配置復位和時鐘控制RCC;進行時鐘配置,系統時鐘為8MHz;配置系統模式SYS Mode and Configuration;將PB9配制成GPIO_Output輸出模式。

3.2 配置TIM2

在引腳配置界面,類別Categories中選擇TIM2,在TIM2I作模式Mode配置時鐘源為內部時鐘,在設置Configuration中參數設置Parameter Setting中,配置分配系數為7999,計數周期為999,如圖l所示。

定時器中斷頻率:

ft2=fosc/((Prescaler+ l)*( Counter Pe riod+l))

f0。系統時鐘為8MHz,Prescaler為7999,Counter Period為999,代入公式1,得到

f1=8000000/《7999+1)*(999+1))=1Hz

定時器中斷周期:Tt2=1/ft2=ls,周期為1秒。

3.3設置定時器中斷

在定時器模式和配置一Configuration配置窗口,選擇嵌套向量中斷控制器設置NVIC Settings,勾選TIM2 global inter-rupts。如果定時周期到,則進入定時器中斷函數。

3.4生成代碼

選擇菜單欄Project,點擊Generate Code,生成用戶代碼、復制庫文件,點擊Open Project即可進入Keil編輯環境。

4 Keil開發環境

4.1中斷初始化

打開mam.c主文件,將鼠標移動到定時器初始化函數MX_TIM2_1nit0;點擊右鍵,查看定義:

void MX_TIM2_1nit(void){

TIM_ClockConfigTypeDef sClockSourceConfig={0};

TIM_MasterConfigTypeDef sMasterConfig=(0};

htim2.1nstance= TIM2;

htim2.Init.Prescaler= 7999;

htim2.Init.CounterMode= TIM—COUNTERMODE_UP;

htim2.Init.Period= 999;

htim2.Init.ClockDivision=TIM—CLO CKDIVISION_DIV l;

htim2. Init. AutoReloadPreload=TIM- AUTORELOAD_PRE-LOAD_DISABLE;

HAL_TIM_Base_lnit(&htim2);...)

可以看到分頻系數Ptescaler為7999,計數周期999。

4.2 定時器中斷函數

1)定時器2中斷函數

如果定時周期到,則進入定時器2中斷函數voidTIM2_IRQHandler(void).

2)定時器中斷函數

在void TIM2_IRQHandler(void)中,調用了函數HAL_TIM_IRQHandler(&htim2);進入該函數定義。因為比較長,只分析相關部分。

if

(_HAL_TIM_ GET- IT_SOURCE(htim,

TIM_IT_UP-DATE)!= RESET){

一HAL-- TIM_CLEAR_IT(htim, TIM_IT_UPDATE);

主站蜘蛛池模板: 国产午夜在线观看视频| 91精品国产91欠久久久久| 久热这里只有精品6| 国产黄网站在线观看| 亚洲天堂在线免费| 国产免费福利网站| 国产一在线| 老色鬼久久亚洲AV综合| 九色在线观看视频| 国产微拍一区二区三区四区| 久久综合九九亚洲一区| 国产精品自在线天天看片| 夜精品a一区二区三区| 国产丝袜第一页| 四虎在线高清无码| 福利在线一区| 91成人在线观看视频| 亚洲精品在线观看91| 五月婷婷导航| av在线5g无码天天| 热re99久久精品国99热| 国产香蕉97碰碰视频VA碰碰看| 91在线高清视频| 日本高清在线看免费观看| 国产成人盗摄精品| 欧亚日韩Av| 99视频在线免费| 伊人无码视屏| 久久久久国产精品免费免费不卡| 中文字幕资源站| 国产综合另类小说色区色噜噜| www.亚洲天堂| 久久99国产综合精品女同| 国产女人18水真多毛片18精品| 国产成人高清在线精品| 九色国产在线| 婷婷六月综合网| 国产av无码日韩av无码网站| 国产自在线播放| 国产在线拍偷自揄拍精品| 国产不卡国语在线| 亚洲有无码中文网| 国产精品免费p区| 九九久久99精品| 免费AV在线播放观看18禁强制| 日本午夜三级| 免费人成网站在线观看欧美| 内射人妻无套中出无码| 国产成人区在线观看视频| 亚洲国产精品无码AV| 色噜噜久久| 老司机aⅴ在线精品导航| 久久综合伊人 六十路| 欧美激情伊人| 91色爱欧美精品www| 台湾AV国片精品女同性| 久草热视频在线| 欧美在线免费| 久久久久夜色精品波多野结衣| 久久久久青草线综合超碰| 久久久波多野结衣av一区二区| 精品福利视频导航| 国产精品综合色区在线观看| 九九热在线视频| 欧美一区二区啪啪| 欧美一区精品| 久久亚洲AⅤ无码精品午夜麻豆| 国产黄在线观看| 欧美精品在线观看视频| 亚洲欧洲自拍拍偷午夜色| 在线观看国产精品第一区免费 | 国产成人精品一区二区不卡| 日韩欧美国产综合| 国产精品久久自在自2021| 国产高清无码麻豆精品| 欧美中日韩在线| 日本人真淫视频一区二区三区 | 色有码无码视频| 亚洲国产综合精品中文第一| 亚洲va欧美ⅴa国产va影院| 国产成人综合久久精品下载| 操美女免费网站|