最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

STM32入門(mén)教程-2022持續(xù)更新中

2022-11-06 09:18 作者:動(dòng)感老頭  | 我要投稿

1.工程文件的創(chuàng)建

(1)啟動(dòng)文件


2.GPIO簡(jiǎn)介






3.GPIO輸入

(1)c語(yǔ)言中變量類(lèi)型在32中


typedef一般用以給變量定義


常規(guī)使用查看是VS2013的STM32文件夾

4.外部中斷

(1)執(zhí)行流程




9-15,15-20會(huì)同時(shí)觸發(fā)一個(gè)中斷函數(shù),需要通過(guò)標(biāo)志位判斷具體觸發(fā)哪個(gè)


?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 10:30
?

?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 14:40
?

1 重置默認(rèn)狀態(tài)

2 配置成參數(shù)狀態(tài)

3 賦默認(rèn)值給調(diào)用的結(jié)構(gòu)體參數(shù)

4 軟件觸發(fā)外部中斷

5-9標(biāo)志位相關(guān)


?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 22:26
?

?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 25:28
?

?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 28:60
?

?
[5-2] 對(duì)射式紅外傳感器計(jì)次&旋... P12 - 39:30
?


5.定時(shí)器中斷


向上計(jì)數(shù):從0開(kāi)始,向上自增到重裝值,清零并申請(qǐng)中斷;

向下計(jì)數(shù):從重裝值開(kāi)始,向下自減到0,回到重裝值并申請(qǐng)斷;

中央對(duì)齊模式:從0開(kāi)始到重裝值,申請(qǐng)中斷;再自減到0,申請(qǐng)中斷;



①基本定時(shí)器(僅支持向上計(jì)數(shù))


1.預(yù)分頻器寫(xiě)1——2分頻 出=入/2 = 36M

2——3分頻 /3 =


實(shí)際分頻系數(shù) = 預(yù)分頻器 + 1


2.更新事件&更新中斷

更新事件不會(huì)觸發(fā)中斷


3.中斷流程:

基準(zhǔn)時(shí)鐘》預(yù)分頻器》計(jì)數(shù)器計(jì)數(shù)自增并自動(dòng)重裝寄存器比較,值相等時(shí)產(chǎn)生更新中斷(NVIC)&更新事件》CPU響應(yīng)


4.主從觸發(fā)模式

實(shí)際使用時(shí)要用DAC輸出一段波形,每隔一段時(shí)間觸發(fā)一次DAC讓其輸出下一個(gè)電壓點(diǎn),使用定時(shí)器中斷可能會(huì)導(dǎo)致主程序中斷頻繁,影響其他中斷的運(yùn)行


使用主模式可以將定時(shí)器的更新事件映射到觸發(fā)輸出(TRGO)的位置,TRGO直接接到DAC的觸發(fā)轉(zhuǎn)換引腳,定時(shí)器更新則不用再中斷


②通用計(jì)時(shí)器(向上+向下+中央對(duì)齊)

?
[6-1] TIM定時(shí)中斷 P13 - 19:54
?


采用內(nèi)部時(shí)鐘(72MHz)

如果要采用外部時(shí)鐘,首選ETR引腳外部時(shí)鐘模式2的輸入


③高級(jí)定時(shí)器

?
[6-1] TIM定時(shí)中斷 P13 - 27:01
?



④具體結(jié)構(gòu)





外部晶振8MHz,經(jīng)過(guò)PLL鎖相環(huán)倍頻9倍變?yōu)?2MHz,并設(shè)置為系統(tǒng)時(shí)鐘


⑤定時(shí)器中斷庫(kù)函數(shù)

?
[6-2] 定時(shí)器定時(shí)中斷&定時(shí)器外部時(shí)鐘 P14 - 04:42
?

?
[6-2] 定時(shí)器定時(shí)中斷&定時(shí)器外部時(shí)鐘 P14 - 32:53
?


6.TIM輸出比較

①PWM原理

1.PWM輸出頻率較快從而實(shí)現(xiàn)“連續(xù)的變化”,故只能用于慣性系統(tǒng);

2.占空比決定PWM等效出來(lái)的模擬電壓的大小,占空比越大,等效的模擬電壓就越趨近高電平;

E.G.高電平5V,低電平0V,50%占空比等效為2.5V,10%等效為0.5V

3.分辨率——占空比變化的細(xì)密程度,越高分辨率&分辨率,對(duì)硬件電路的要求越高;


②具體操作

通用計(jì)時(shí)器

CC1P寫(xiě)1,原相輸出;CC1P寫(xiě)0,反相輸出

PWM模式2為1的取反

藍(lán)線CNT,黃線ARR,紅線CCR,

CNT不斷自增,到達(dá)設(shè)定的ARR值后清零,

采用PWM模式1為例,CNT<CCR時(shí),高電平,CNT>=CRR,低電平

改變CCR的值即可調(diào)整占空比

具體計(jì)算

外設(shè)介紹

舵機(jī)一般自帶驅(qū)動(dòng)電路

輸入一個(gè)PWM波形,輸出軸固定在某一個(gè)角度

PWM為信號(hào)線,并不需要大功率

兩路推挽電路控制電機(jī)

?
[6-3] TIM輸出比較 P15 - 37:07
?


③代碼編寫(xiě)

?
[6-4] PWM驅(qū)動(dòng)LED呼吸燈&PWM驅(qū)動(dòng)舵機(jī)&PWM驅(qū)動(dòng)直流電機(jī) P16 - 04:16
?

?
[6-4] PWM驅(qū)動(dòng)LED呼吸燈&PWM驅(qū)動(dòng)舵機(jī)&PWM驅(qū)動(dòng)直流電機(jī) P16 - 17:34
?

?
[6-4] PWM驅(qū)動(dòng)LED呼吸燈&PWM驅(qū)動(dòng)舵機(jī)&PWM驅(qū)動(dòng)直流電機(jī) P16 - 20:57
?

?
[6-4] PWM驅(qū)動(dòng)LED呼吸燈&PWM驅(qū)動(dòng)舵機(jī)&PWM驅(qū)動(dòng)直流電機(jī) P16 - 29:48
?


7.PWM輸入比較

①頻率測(cè)量

1.測(cè)頻法在f較低時(shí),誤差會(huì)很大;測(cè)周法在f高時(shí),誤差大;兩種方法都會(huì)在最后時(shí)刻出現(xiàn)正負(fù)1誤差

2.測(cè)頻法自帶均值濾波,體現(xiàn)的是該段時(shí)間內(nèi)的均值,數(shù)據(jù)更新慢,較平緩;測(cè)周法數(shù)據(jù)更新快,會(huì)受噪聲影響比較大;

3.令兩式中N相等中界頻率用以區(qū)分兩方法的使用條件,低于該頻率用測(cè)周,高于用測(cè)頻

?
[6-5] TIM輸入捕獲 P17 - 18:27
?




②代碼部分

?
[6-6] 輸入捕獲模式測(cè)頻率&PWMI... P18 - 10:10
?

?
[6-6] 輸入捕獲模式測(cè)頻率&PWMI... P18 - 17:43
?


8.編碼器接口

①原理


②代碼

?
[6-8] 編碼器接口測(cè)速 P20 - 05:10
?

GPIO輸入模式選擇:外部模塊空閑默認(rèn)輸出高電平,選擇上拉輸入;外部模塊低電平則反之;不確定外部模塊的默認(rèn)狀態(tài)/外部信號(hào)輸出功率小,一般選擇浮空輸入


9.ADC

①原理


逐次逼近:二分法確定電壓,幾位需要確定幾次,對(duì)于二進(jìn)制來(lái)說(shuō),二分法即每位的位權(quán)

?
[7-1] ADC模數(shù)轉(zhuǎn)換器 P21 - 16:23
?

1.規(guī)則通道最多可以讀取16位數(shù)據(jù),但是規(guī)則通道數(shù)據(jù)寄存器只能存1個(gè)數(shù)據(jù),在讀取后應(yīng)當(dāng)使用DMA快速轉(zhuǎn)移數(shù)據(jù),否則前面的數(shù)據(jù)可能會(huì)被覆蓋;注入組通道寄存器可以同時(shí)存4個(gè)數(shù)據(jù);

2.ADCCLK最大輸出頻率為14MHz,ADC預(yù)分頻器只能選擇6分頻(12M)或8分頻(9M);

3.

4.ADC1和ADC2可以配合使用為雙ADC模式;

5.

?
[7-1] ADC模數(shù)轉(zhuǎn)換器 P21 - 29:45
?

還有一種在連續(xù)模式下的間斷模式,在轉(zhuǎn)換幾位后需要再次觸發(fā)才能繼續(xù)轉(zhuǎn)換

6.其他知識(shí)點(diǎn)


左對(duì)齊數(shù)據(jù)會(huì)比原數(shù)據(jù)大16倍;當(dāng)右對(duì)齊數(shù)過(guò)高時(shí),可以選左對(duì)齊后取高幾位,舍棄后面的幾位,但降低精度

AD轉(zhuǎn)換需要時(shí)間,在這段時(shí)間需要保持住信號(hào),故存在采樣開(kāi)關(guān)&采樣保持電路(電容存儲(chǔ)電壓)

(本節(jié)代碼未看)

10.通信協(xié)議

全雙工:雙方同時(shí)相互通信;半雙工:不同時(shí);單工:數(shù)據(jù)單向傳遞;

時(shí)鐘:同步需要靠時(shí)鐘信號(hào)通知采樣時(shí)間,可以降低對(duì)硬件電路的依賴,可以暫停;異步通信:沒(méi)有時(shí)鐘線的需要雙方約定一個(gè)采樣頻率,并且加幀頭幀尾進(jìn)行采樣位置的對(duì)齊;節(jié)省時(shí)鐘線

異步時(shí)序缺點(diǎn):十分依賴硬件電路,必須要有USART硬件電路支持;

單端信號(hào)使用時(shí)需要共地;差分一般不需要;



二進(jìn)制調(diào)試時(shí)碼元=1比特;故波特率=比特率

校驗(yàn)方式:奇校驗(yàn)&偶校驗(yàn)、CRC校驗(yàn);

?
[9-1] USART串口協(xié)議 P25 - 27:30
?

TX引腳輸出定時(shí)翻轉(zhuǎn)的高低電平,RX讀取

11.USART

①基本介紹

?
[9-2] USART串口外設(shè) P26 - 06:30
?

?
[9-2] USART串口外設(shè) P26 - 21:56
?

1.數(shù)據(jù)幀;2.起始位偵測(cè);3.數(shù)據(jù)采樣;4.波特率發(fā)生器;5.轉(zhuǎn)串口模塊分析;6.

?
[9-3] 串口發(fā)送&串口發(fā)送+接收 P27 - 05:49
?



取某十進(jìn)制數(shù)A的x位:(A / 10^x) % 10;

輸出中文兩種方式: 1.keil5和串口助手都選擇UTF-8,且加上特定指令

2.keil5選擇GB2312,串口助手選擇GBK

②數(shù)據(jù)包發(fā)送

使用添加標(biāo)志位的分割載荷,避免負(fù)載和包頭/包尾重復(fù)的問(wèn)題:

1.限制載荷數(shù)據(jù)范圍;

2.使用固定長(zhǎng)度數(shù)據(jù)包,判斷包頭包尾用于對(duì)齊;

3.增加包頭包尾數(shù)據(jù)量;

文本數(shù)據(jù)包解析較慢;

③數(shù)據(jù)包接收

?
[9-4] USART串口數(shù)據(jù)包 P28 - 15:59
?


12.I2C通信

①基礎(chǔ)知識(shí)

設(shè)計(jì)背景:

1.全雙工>半雙工;

2.應(yīng)答機(jī)制,每接收到一個(gè)數(shù)據(jù)給予反饋

3.單片機(jī)只和指定模塊通信,其他模塊不產(chǎn)生干擾;

4.異步時(shí)序不能同時(shí)暫停,容易出現(xiàn)問(wèn)題;發(fā)送方暫停發(fā)送,接收方不能暫停;

同步的協(xié)議,要加入時(shí)鐘線指導(dǎo)對(duì)方的讀寫(xiě),防止出現(xiàn)問(wèn)題

1.一主多從

主機(jī)權(quán)力:對(duì)SCL線的完全控制;空閑狀態(tài)下可以主動(dòng)發(fā)起對(duì)SDA的控制,從機(jī)發(fā)送數(shù)據(jù)&從機(jī)應(yīng)答時(shí)主機(jī)才會(huì)轉(zhuǎn)交SDA控制權(quán)給從機(jī);

從機(jī):SCL時(shí)鐘線在任何時(shí)候都只能進(jìn)行被動(dòng)的讀取,不允許主動(dòng)發(fā)起對(duì)SDA數(shù)據(jù)線的控制,主機(jī)發(fā)送讀取從機(jī)的命令或從機(jī)應(yīng)答時(shí)才能短暫地獲取SDA控制權(quán);

2.輸入輸出模式

對(duì)于SCL:主機(jī)絕對(duì)控制SCL,主機(jī)可配置成推挽輸出,從機(jī)配置成浮空輸入/上拉輸入;主機(jī)發(fā)送,所有從機(jī)接收;

對(duì)于SDA:半雙工協(xié)議,主機(jī)發(fā)送時(shí)要輸出,接收時(shí)輸入;

時(shí)序未配置好可能同時(shí)出現(xiàn)主機(jī)、從機(jī)同時(shí)輸出,一個(gè)輸出高電平,一個(gè)低電平會(huì)出現(xiàn)電源短路;

故I2C禁止所有設(shè)備輸出強(qiáng)上拉的高電平,采用外置弱上拉電阻+開(kāi)漏輸出的電路結(jié)構(gòu);

?
[10-1] I2C通信協(xié)議 P31 - 18:50
?

推挽輸出:直接接到正負(fù)極 >>> 強(qiáng)上拉&強(qiáng)下拉

開(kāi)漏輸出:去除上管,輸出低電平時(shí)下管導(dǎo)通 >>> 強(qiáng)下拉

高電平無(wú)上管 >>> 浮空 >>> 所有設(shè)備只能輸出低電平,不能輸出高電平

SCL&SDA各外置一個(gè)上拉電阻,通過(guò)電阻拉至高電平

?
[10-1] I2C通信協(xié)議 P31 - 20:27
?

好處:1.完全杜絕電源短路;2.避免引腳模式頻繁切換;3.存在線與現(xiàn)象,所有設(shè)備都輸出1總線才為1;

3.時(shí)序基本單元

I2C時(shí)序基本單元的組成:1.起始&終止條件;2.發(fā)送&接收一個(gè)字節(jié);3.發(fā)送應(yīng)答&接收應(yīng)答

類(lèi)似于串口中的起始位&結(jié)束位

?
[10-1] I2C通信協(xié)議 P31 - 24:43
?

?
[10-1] I2C通信協(xié)議 P31 - 27:48
?

釋放SDA == 切換成輸入模式

?
[10-1] I2C通信協(xié)議 P31 - 30:04
?

4.完整時(shí)序

分為7位&10位從機(jī)設(shè)備地址 >>> 相當(dāng)于名字,出廠會(huì)配置,一般最后幾位可以改變,板子上的Ax引腳接不同電平情況即可確定從機(jī)設(shè)備地址

①指定地址寫(xiě)

?
[10-1] I2C通信協(xié)議 P31 - 35:22
?

發(fā)送的第一個(gè)字節(jié)為7位設(shè)備地址+讀/寫(xiě)位(0寫(xiě)1讀) 》》》 從機(jī)應(yīng)答位 》》》 第二個(gè)字節(jié)按照設(shè)備定義發(fā)送 》》》 從機(jī)應(yīng)答位 》》》 第三個(gè)字節(jié)…… 》》》 終止條件

②當(dāng)前地址讀

?
[10-1] I2C通信協(xié)議 P31 - 41:50
?

缺少指定寄存器的時(shí)序,需要調(diào)用當(dāng)前地址指針

③指定地址讀

?
[10-1] I2C通信協(xié)議 P31 - 45:43
?

主機(jī)不想讀,最后一個(gè)字節(jié)后要給予非應(yīng)答

























STM32入門(mén)教程-2022持續(xù)更新中的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
三穗县| 巴彦县| 清新县| 杭锦后旗| 洪雅县| 金华市| 瓮安县| 二手房| 三都| 乌审旗| 文山县| 古浪县| 锡林浩特市| 祁门县| 荆门市| 瓦房店市| 铜陵市| 襄垣县| 从江县| 鹤山市| 磐安县| 东兴市| 佛坪县| 达尔| 中西区| 芦山县| 三门县| 沙雅县| 长乐市| 松阳县| 巴马| 左贡县| 马关县| 乾安县| 岳池县| 竹溪县| 台南市| 永新县| 武安市| 鲁山县| 莱芜市|