stm32F103 入門篇【階段一、二】

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
CRL:低寄存器,有32位,4位配置一個(gè)引腳,低寄存器配置低八位
CRH:高寄存器,有32位,4位配置一個(gè)引腳,高寄存器配置高八位
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
點(diǎn)亮一個(gè)led燈
?
基地址內(nèi)容
?
?
GPIO C的結(jié)構(gòu)體內(nèi)容
?
?
?
?
?
時(shí)鐘的結(jié)構(gòu)體內(nèi)容
?
實(shí)驗(yàn)程序
?
?
BSRR寄存器(注意兩張圖不同的字):
?
?
BRR寄存器:
為了消除引腳不一致性,一般用BSRR的低16位輸出高電平,用BRR的低16位(高16位無效)輸出低電平
?
P14,第九講:
?
?
?
?
P16第九講
?
?
?
?
?
?
?
?
P17:
?
?
?
GPIO_Init函數(shù)架構(gòu):
?
?
配置PA2為推挽輸出,輸出速度50MHZ步驟
?
?
?
?
?
?
P18:配置PA2為上拉輸入步驟
?
?
?
?
?
P19:
?
?
?
?
P20:
?
P21:
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
P22:庫函數(shù)配置:
?
?
P25:入門篇,階段二
?
P26:庫函數(shù)模板刨析
?
brief:簡(jiǎn)要介紹、說明
param:參數(shù)
assert_param:斷言函數(shù)
?
?
P27:如何尋找函數(shù)的各個(gè)參數(shù):
?
如果函數(shù)的參數(shù)要填寫的是結(jié)構(gòu)體指針類型:(填寫的參數(shù)名和斷言函數(shù)參數(shù)名不一致)
1.?根據(jù)結(jié)構(gòu)體變量(GPIO_InitTypeDef)定義一個(gè)變量(GPIO_InitStruct)
2.?引用(GPIO_InitStruct)成員變量并賦值
3.?把變量(GPIO_InitStruct)以地址形式寫入GPIO_Init這個(gè)函數(shù)里
注:采用這種方式是因?yàn)樽⑨尷锩鏇]有明確定義函數(shù)參數(shù)如何填寫(比如前半部分參數(shù)GPIO_InitTypeDef*GPIOx就在注釋(或者斷言函數(shù))里明確告訴了填什么參數(shù))
?
下面這個(gè)圖解釋為什么第一個(gè)參數(shù)填寫GPIOC就可以了:
?
P28:
?
?
?
P29:
?
最基本的編寫:點(diǎn)亮LED
?
?
?
?
?
?
?
P30:
點(diǎn)亮LED(采用模塊化編寫,方便移植)
?
P31:時(shí)鐘簡(jiǎn)介
?
?
?
?
時(shí)鐘系統(tǒng)框圖如下:
?
?
?
中文手冊(cè)P28:
?
?
?
?
?
?
?
?
P32:時(shí)鐘簡(jiǎn)介(2)
?
P33:keil軟件仿真調(diào)試
?
?
?
?
方法一:查看引腳高低電平
?
方法二:用模擬示波器查看高低電平和間隔時(shí)間:(不支持硬件仿真)
?
?
P35:SYSTICK滴答定時(shí)器
?
?
?
P36:
P37:中斷簡(jiǎn)介:
?
?
?
P38:中斷簡(jiǎn)介
?
?
?
?
?
參考手冊(cè)(P132):
?
?
?
?
?
搶占和響應(yīng)優(yōu)先級(jí)的講解:
?
具體舉例情況一:
?
具體舉例情況二:
?
?
?
?
?
?
?
?
?
?
?
具體舉例情況三:
?
具體舉例情況四:
?
看懂這道例題就搞懂了:
?
?
P39:中斷簡(jiǎn)介
?
?
?
?
?
?
注意:?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?!
如果工程里面有中斷,首先要進(jìn)行分組,然后將具體的中斷設(shè)置到組里面(比如:URT4/URT5/TIME3等具體的中斷)
?
P40:講解TIM3_Init的使用(參數(shù)的填寫,回憶GPIO_Init)
?
P41:講的Keil軟件仿真調(diào)試的一些排錯(cuò)過程
?
?
P42:非阻塞延時(shí)程序(閃爍LED燈)
P44:SYSTICK定時(shí)器的理論分析
?
?
?
重裝載計(jì)數(shù)器最大數(shù)值:2的24次方
?
?
P45 :SYSTICK定時(shí)器的功能實(shí)現(xiàn)
?
?
?
?
?
?
?
?
?
?
?
?
?
P46:SYSTICK滴答定時(shí)器的理論分析
自己寫的程序和標(biāo)準(zhǔn)的進(jìn)行對(duì)比
?
?
條件一:判斷定時(shí)器第0位是否為1(定時(shí)器第0位為1代表定時(shí)器開啟)
?
?
?
P47:SYSTICK滴答定時(shí)器的理論分析
?
?
P48:位帶操作
?
?
P49:位帶操作理論分析
點(diǎn)亮led燈:寄存器操作,庫函數(shù)操作,位帶操作
?
?
P50:位帶操作理論分析
0X4000 0000-0X4010 0000之間的每一位可以膨脹成32位
?
?
?
P51:位帶操作理論分析
?
公式在權(quán)威指南88頁:
?
下面這張圖的函數(shù)會(huì)用就行,不用自己寫:
?
P52:按鍵控制
四大步驟:
1.按鍵檢測(cè)到低電平
2.延時(shí)X毫秒
3.再次檢測(cè)是否為低電平
4.若為低電平則執(zhí)行相應(yīng)動(dòng)作
?
KEY1配置成上拉輸入模式:
?
?
?
?
P53:按鍵控制(高內(nèi)聚低耦合)
先講解一下extern的用法:
?
?
?
P54:按鍵控制:
?
注:以后每增加一個(gè)頭文件,就把相應(yīng)的頭文件放到sys.h這里面,在其余文件里只需調(diào)用sys.h頭文件即可
?
?
P55:按鍵控制
主要講如何軟件仿真按鍵程序
?
?
P56:按鍵控制
?