久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3198|回復(fù): 0
收起左側(cè)

飛控開發(fā)基礎(chǔ)-[2] STM32定時(shí)器(LED航情燈、指示燈閃爍)

[復(fù)制鏈接]
ID:716213 發(fā)表于 2020-3-26 15:48 | 顯示全部樓層 |閱讀模式
圖片1.png
定時(shí)器LED航情燈、指示燈閃爍)
一、定時(shí)器簡介
        定時(shí)器具有定時(shí)功能,類似于生活中的“鬧鐘”,可以用定時(shí)器產(chǎn)生精確的定時(shí)時(shí)間,用來延時(shí)或者處理一些實(shí)時(shí)事件。
STM32系列的定時(shí)器分為基本定時(shí)器、通用定時(shí)器、高級控制定時(shí)器。后者包括前者的全部功能。通常地,STM32高級定時(shí)器是TIM1TIM8,通用定時(shí)器是TIM2TIM3TIM4TIM5,基本定時(shí)器是TIM6TIM7
而飛控的主核心STM32F103CBT6則有416位定時(shí)器分別是高級定時(shí)器TIM1、通用定時(shí)器TIM2TIM3以及TIM4

二、定時(shí)器寄存器
STM32F103定時(shí)器相關(guān)的寄存器眾多,這里只講解重要的幾個(gè)寄存器。
(1)TIMx_CR1:使能寄存器,最低位控制寄存器的開關(guān),如下圖所示
圖片1.png
TIM_CR1寄存器主要配置定時(shí)器的循環(huán)計(jì)數(shù)、使能等操作例如CEN位為1是使能計(jì)數(shù),為0是關(guān)閉計(jì)數(shù)
(2)TIMx_DIER 定時(shí)器中斷使能寄存器, 最低位控制事件更新中斷的開關(guān), 如下圖所示
圖片2.png
該寄存的主要功能是配置定時(shí)器是定時(shí)器的中斷使能位,主要使用的是UIE位,UIE1是使能中斷,為0時(shí)關(guān)閉中斷。
(3)TIMx_PSC:定時(shí)器時(shí)鐘分頻寄存器,如下圖所示:
圖片3.png
該寄存器負(fù)責(zé)把定時(shí)器時(shí)鐘分頻之后,再輸出給計(jì)數(shù)器,PSC[15:0]為分頻系數(shù)
(4)TIMx_ARR:定時(shí)器自動重裝載寄存器,如下圖所示:
圖片4.png
ARR[15:0]為自動重裝載值,當(dāng)定時(shí)器采用向上計(jì)數(shù)時(shí),計(jì)數(shù)值等于ARR時(shí),產(chǎn)生一個(gè)更新事件;當(dāng)定時(shí)器采用向下計(jì)數(shù)時(shí),最開始將ARR的值賦給計(jì)數(shù)值,計(jì)數(shù)值向下累減為0時(shí),產(chǎn)生一個(gè)更新事件,再次將ARR的值賦給計(jì)數(shù)值,進(jìn)行新一輪的向下計(jì)數(shù)。
(5)TIMx_SR 狀態(tài)寄存器,標(biāo)記當(dāng)前與定時(shí)器相關(guān)的各種事件/中斷是否發(fā)生,我們只用到最低位表示事件更新中斷的標(biāo)志位,如下圖所示:
圖片5.png
該寄存器主要用于查看定時(shí)器的更新中斷標(biāo)志位,當(dāng)計(jì)數(shù)發(fā)生上溢或者下溢時(shí),UIF位將被置1,標(biāo)志一次計(jì)數(shù)完成。
三、定時(shí)器實(shí)驗(yàn)
本節(jié)實(shí)驗(yàn)的內(nèi)容是主要是針對GPIO中的周期性點(diǎn)亮無人機(jī)的航情燈以及信號燈,對其進(jìn)行變形,使用通用定時(shí)器TIM3精確定時(shí)周期性點(diǎn)亮及關(guān)閉無人機(jī)的航情燈以及信號燈。
同樣也是查看原理圖可以得知無人機(jī)的航情燈同一接在NPN三極管Q1上,而三極管的基極又接在了單片機(jī)的PA8上;兩個(gè)信號燈分別接在了PC13PC14上。
圖片6.png
圖片7.png
圖片8.png
關(guān)于GPIO這部分的驅(qū)動代碼可以沿襲保留,不同的是需要加入定時(shí)器的初始化以及配置定時(shí)器中斷,編寫代碼的思路如下表所示。
編程思路
1
管腳配置
1、定義結(jié)構(gòu)體;
2、使能時(shí)鐘;
3、填充結(jié)構(gòu)體;
4、裝載結(jié)構(gòu)體。
2
定時(shí)器配置
1、定義結(jié)構(gòu)體;
2、使能時(shí)鐘;
3、填充結(jié)構(gòu)體;
4、裝載結(jié)構(gòu)體;
5、使能時(shí)鐘;
6、使能定時(shí)器。
3
中斷管理配置
1、定義結(jié)構(gòu)體;
2、填充結(jié)構(gòu)體;
3、裝載結(jié)構(gòu)體。
4
中斷邏輯處理
1、判斷是否觸發(fā)中斷;
2、清除標(biāo)志位;
3、其它邏輯。
按照代碼思路,編寫代碼(通過調(diào)用官方庫)如下圖所示為GPIO相關(guān)驅(qū)動代碼:
圖片9.png
圖片10.png
完成配置GPIO后,便是對定時(shí)器進(jìn)行配置,我們的STM32是外接了8MHz的晶振的,主頻是72MHz先來看一下時(shí)鐘樹圖,如下圖所示。
圖片11.png
定時(shí)器是掛載在APB1時(shí)鐘總線下的(從手冊可知),從時(shí)鐘樹圖中可知APB1用于定時(shí)器的時(shí)鐘頻率在未分頻的是情況下72MHz,根據(jù)定時(shí)器時(shí)鐘分頻寄存器(TIMx_PSC)以及定時(shí)器自動重裝載寄存器(TIMx_ARR)之間的關(guān)系,可以得出,定時(shí)時(shí)間:
Tout=((arr+1)*(psc+1))/Ft   s
其中Tout為定時(shí)時(shí)間單位為sarr為自動重裝載寄存器的初值,psc為分頻系數(shù),FtAPB的主頻,也就是72MHz。那么要定時(shí)1s則只需要把arr設(shè)置為載值9999psc設(shè)置為7199即可,即:
Tout=((9999+1)*(7199+1))/72000000
=10000*7200/72000000
=72000000/72000000
=1s
所以可以得到定時(shí)器初始化代碼如下圖所示。
圖片12.png
配置完成后便會1s周期進(jìn)入一次定時(shí)器中斷,在定時(shí)器中斷里對無人機(jī)的航情燈以及指示燈的GPIO端口進(jìn)行翻轉(zhuǎn)即可實(shí)現(xiàn),周期性點(diǎn)亮,代碼如下圖所示。
圖片13.png
寫好代碼后保存、編譯、下載,然后就可以看到飛控的LED指示燈以及四個(gè)螺旋槳下面的航情燈周期1S閃爍,如下圖所示。
圖片14.png

2.飛控開發(fā)基礎(chǔ)-【2】定時(shí)器(LED航情燈、指示燈閃爍).pdf

940.51 KB, 下載次數(shù): 19, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品99一区二区 | 亚洲 欧美 在线 一区 | 自拍偷拍亚洲视频 | 97av在线| 不卡视频一区二区三区 | 久久艹免费视频 | 日本超碰 | 中文字幕韩在线第一页 | 日韩精品一区二区在线观看 | 国产区在线| 三级在线视频 | 欧美福利一区 | 久久精品国产一区 | 国产精品99久久久久久人 | 亚洲精品久久久一区二区三区 | 视频一区二区在线观看 | 国产在线视频三区 | 亚洲狠狠丁香婷婷综合久久久 | 欧美视频一区二区三区 | 一区二区三区亚洲 | 欧美最猛性xxxxx亚洲精品 | 久久新视频 | 日韩一区欧美一区 | 亚洲一区中文 | 日韩久久精品 | 亚洲第一av网站 | 国产午夜精品久久久久免费视高清 | 欧美精品一二三区 | 精品亚洲一区二区 | 不卡视频一区 | 羞羞视频免费在线 | 成人三区四区 | 亚洲成人三级 | 中文天堂在线观看 | 亚洲一区二区 | 日韩欧美一区二区在线播放 | 在线一区二区三区 | 国产高清视频 | 九九久久国产 | 久久久久久久91 | 日韩欧美视频 |