stm32學(xué)習(xí)筆記要點(diǎn)_第1頁
stm32學(xué)習(xí)筆記要點(diǎn)_第2頁
stm32學(xué)習(xí)筆記要點(diǎn)_第3頁
stm32學(xué)習(xí)筆記要點(diǎn)_第4頁
stm32學(xué)習(xí)筆記要點(diǎn)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Stm32學(xué)習(xí)筆記一C語言基礎(chǔ)部分 2Stm32學(xué)習(xí)筆記一GPIO部分 4Stm32學(xué)習(xí)筆記一RCC部分 6Stm32學(xué)習(xí)筆記一AD部分 7Stm32學(xué)習(xí)筆記一CAN部分8Stm32學(xué)習(xí)筆記一TIM 部分8Stm32學(xué)習(xí)筆記一USART部分 11Stm32學(xué)習(xí)筆記一超聲波測(cè)距部分 14Stm32學(xué)習(xí)筆記一程序調(diào)試部分 20Stm32學(xué)習(xí)筆記一C語言基礎(chǔ)部分1、C語言運(yùn)算符優(yōu)先級(jí) 詳細(xì)列表優(yōu)先級(jí)運(yùn)算符名稱或含義使用形式結(jié)合方向說明1數(shù)組下標(biāo)數(shù)組名常量表達(dá)式左到右()圓括號(hào)(表達(dá)式)/函數(shù)名(形 參表)成員選擇(對(duì)象)對(duì)象成員名->成員選擇(指針)對(duì)象指針-> 成員名2-負(fù)號(hào)運(yùn)算符-表

2、達(dá)式右到左單目運(yùn)算符(類型)強(qiáng)制類型轉(zhuǎn)換(數(shù)據(jù)類型)表達(dá)式+自增運(yùn)算符+變量名/變量名+單目運(yùn)算符-自減運(yùn)算符-變量名/變量名-單目運(yùn)算符*取值運(yùn)算符*指針變量單目運(yùn)算符&取地址運(yùn)算符&變量名單目運(yùn)算符!邏輯非運(yùn)算符!表達(dá)式單目運(yùn)算符按位取反運(yùn)算符表達(dá)式單目運(yùn)算符sizeof長(zhǎng)度運(yùn)算符sizeof(表達(dá)式)3/除表達(dá)式/表達(dá)式左到右雙目運(yùn)算符*乘表達(dá)式*表達(dá)式雙目運(yùn)算符%余數(shù)(取模)整型表達(dá)式/整型表達(dá) 式雙目運(yùn)算符4+加表達(dá)式+表達(dá)式左到右雙目運(yùn)算符-減表達(dá)式-表達(dá)式雙目運(yùn)算符5<<左移變量 << 表達(dá)式左到右雙目運(yùn)算符>>右移變量 >

3、;> 表達(dá)式雙目運(yùn)算符6>大于表達(dá)式 > 表達(dá)式左到右雙目運(yùn)算符>=大于等于表達(dá)式 >=表達(dá)式雙目運(yùn)算符<小于表達(dá)式 < 表達(dá)式雙目運(yùn)算符<=小于等于表達(dá)式 <=表達(dá)式雙目運(yùn)算符7=等于表達(dá)式=表達(dá)式左到右雙目運(yùn)算符!=不等于表達(dá)式!=表達(dá)式雙目運(yùn)算符8&按位與表達(dá)式&表達(dá)式左到右雙目運(yùn)算符9A按位異或表達(dá)式A表達(dá)式左到右雙目運(yùn)算符10|按位或表達(dá)式表達(dá)式左到右雙目運(yùn)算符11&&邏輯與表達(dá)式&&表達(dá)式左到右雙目運(yùn)算符12|邏輯或表達(dá)式|表達(dá)式左到右雙目運(yùn)算符13?:條件運(yùn)算符表達(dá)式1?表達(dá)式2

4、:表達(dá)式3右到左三目運(yùn)算符14=賦值運(yùn)算符變量=表達(dá)式右到左/=除后賦值變量/=表達(dá)式*=乘后賦值變量*=表達(dá)式%=取模后賦值變量%=表達(dá)式+=加后賦值變量+=表達(dá)式-=減后賦值變量-=表達(dá)式<<=左移后賦值變量 <<=表達(dá)式>>=右移后賦值變量 >>=表達(dá)式&=按位與后賦值變量&=表達(dá)式A =按位異或后賦值變量A=表達(dá)式|=按位或后賦值變量|=表達(dá)式15,逗號(hào)運(yùn)算符表達(dá)式,表達(dá)式,左到右從左向右順序運(yùn)算2、數(shù)組:在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在

5、C語言中,數(shù)組屬于構(gòu)造數(shù)據(jù)類型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類 別。3、在C語言中,字符常量有以下特點(diǎn):1) 字符常量只能用單引號(hào)括起來,不能用雙引號(hào)或者是括號(hào)2) 字符常量只能是單個(gè)字符,不能是字符串。3) 字符可以是字符集中任意字符。 但數(shù)字被定義為字符之后就不能夠參與運(yùn)算。如'5'和5是不同的。'5'是字符常量,不能參與運(yùn)算。Stm32學(xué)習(xí)筆記一GPIO部分1、函數(shù)名GPIO_ReadlnputDataBit功能描述讀取指定端口

6、管腳的輸入2、對(duì)于GPIO的配置種類有8種之多:(1) GPIO_Mode_AIN 模擬輸入(2) GPIO_Mode_IN_FLOATING 浮空輸入(3) GPIO_Mode_IPD 下拉輸入(4) GPIO_Mode_IPU 上拉輸入(5) GPIO_Mode_Out_OD 開漏輸出(6) GPIO_Mode_Out_PP 推挽輸出(7) GPIO_Mode_AF_OD 復(fù)用開漏輸出(8) GPIO_Mode_AF_PP復(fù)用推挽輸出3、推挽輸出:可以輸出高,低電平,連接數(shù)字器件;推挽結(jié)構(gòu)一般是指兩個(gè)三極管分別受兩互補(bǔ)信號(hào)的控制,總是在一個(gè)三極管導(dǎo)通的時(shí)候另一個(gè)截止。高低電平由IC的電源低

7、定。推挽電路是兩個(gè)參數(shù)相同的三極管或MOSFET,以推挽方式存在于電路中,各負(fù)責(zé)正負(fù)半周的波形放大任務(wù),電路工作時(shí),兩只對(duì)稱的功率開關(guān)管每次只有一個(gè)導(dǎo)通,所以導(dǎo)通損耗小、效率高。輸出既可以向負(fù)載灌電流,也可以從負(fù)載抽取電流。推拉式輸出級(jí)既提高電路的負(fù)載能力,又提高開關(guān)速度。4、 如圖所示,推挽放大器的輸出級(jí)有兩個(gè)“臂”(兩組放大元件),一個(gè)“臂”的電流增加 時(shí),另一個(gè)“臂”的電流則減小,二者的狀態(tài)輪流轉(zhuǎn)換。對(duì)負(fù)載而言,好像是一個(gè)“臂”在推,一個(gè)“臂”在拉,共同完成電流輸出任務(wù)。當(dāng)輸出高電平時(shí),也就是下級(jí)負(fù)載門輸入高 電平時(shí),輸出端的電流將是下級(jí)門從本級(jí)電源經(jīng)VT3拉出。這樣一來,輸出高低電平時(shí)

8、,VT3 一路和 VT5 路將交替工作,從而減低了功耗,提高了每個(gè)管的承受能力。又由于 不論走哪一路,管子導(dǎo)通電阻都很小,使RC常數(shù)很小,轉(zhuǎn)變速度很快。因此,推拉式輸出級(jí)既提高電路的負(fù)載能力,又提高開關(guān)速度。5、 開漏輸出:輸出端相當(dāng)于三極管的集電極 要得到高電平狀態(tài)需要上拉電阻才行適合于 做電流型的驅(qū)動(dòng),其吸收電流的能力相對(duì)強(qiáng)(一般20ma以內(nèi)).開漏形式的電路有以下幾個(gè)特點(diǎn):利用外部電路的驅(qū)動(dòng)能力,減少IC內(nèi)部的驅(qū)動(dòng)。當(dāng)IC內(nèi)部MOSFET導(dǎo)通時(shí),驅(qū)動(dòng)電流是從外部的VCC流經(jīng)R pull-up , MOSFET到GND。IC內(nèi)部?jī)H需很下的柵極驅(qū)動(dòng)電流。一般來說,開漏是用來連接不同電平的器件

9、,匹配電平用的,因?yàn)殚_漏引腳不連接外部的上拉電阻時(shí),只能輸出低電平,如果需要同時(shí)具備輸出高電平的功能,則需要接上拉電阻,很好的 一個(gè)優(yōu)點(diǎn)是通過改變上拉電源的電壓,便可以改變傳輸電平。比如加上上拉電阻就可以提供TTL/CMOS電平輸出等。(上拉電阻的阻值決定了邏輯電平轉(zhuǎn)換的沿的速度。阻值越大,速度越低功耗越小,所以負(fù)載電阻的選擇要兼顧功耗和速度。)6、3. OPEN-DRAIN提供了靈活的輸出方式,但是也有其弱點(diǎn),就是帶來上升沿的延時(shí)。因 為上升沿是通過外接上拉無源電阻對(duì)負(fù)載充電,所以當(dāng)電阻選擇小時(shí)延時(shí)就小,但功耗大; 反之延時(shí)大功耗小。所以如果對(duì)延時(shí)有要求,則建議用下降沿輸出。7、4.可以將多

10、個(gè)開漏輸出的 Pin,連接到一條線上。通過一只上拉電阻,在不增加任何器 件的情況下,形成“與邏輯”關(guān)系。這也是 I2C,SMBus等總線判斷總線占用狀態(tài)的原理。 補(bǔ)充:什么是“線與”?:8、 在一個(gè)結(jié)點(diǎn)(線)上,連接一個(gè)上拉電阻到電源VCC或VDD和n個(gè)NPN或NMOS 晶體管的集電極 C或漏極D,這些晶體管的發(fā)射極 E或源極S都接到地線上,只要有一個(gè)晶體管飽和,這個(gè)結(jié)點(diǎn)(線)就被拉到地線電平上因?yàn)檫@些晶體管的基極注入電流(NPN)或柵極加上高電平(NMOS),晶體管就會(huì)飽和,所以這些基極或柵極對(duì)這個(gè)結(jié)點(diǎn)(線)的關(guān)系是 或非NOR邏輯.如果這個(gè)結(jié)點(diǎn)后面加一個(gè)反相器 ,就是或OR邏輯.9、10、

11、 其實(shí)可以簡(jiǎn)單的理解為:在所有引腳連在一起時(shí), 外接一上拉電阻,如果有一個(gè)引腳輸出為邏輯0,相當(dāng)于接地,與之并聯(lián)的回路“相當(dāng)于被一根導(dǎo)線短路”,所以外電路邏輯電平便為0,只有都為高電平時(shí),與的結(jié)果才為邏輯1。11、關(guān)于推挽輸出和開漏輸出,最后用一幅最簡(jiǎn)單的圖形來概括:12、 該圖中左邊的便是推挽輸出模式,其中比較器輸出高電平時(shí)下面的PNP三極管截止,而上面NPN三極管導(dǎo)通,輸出電平 VS+ ;當(dāng)比較器輸出低電平時(shí)則恰恰相反,PNP三極管導(dǎo)通,輸出和地相連,為低電平。右邊的則可以理解為開漏輸出形式,需要接上拉。13、14、浮空輸入:對(duì)于浮空輸入,一直沒找到很權(quán)威的解釋,只好從以下圖中去理解了15

12、、 由于浮空輸入一般多用于外部按鍵輸入,結(jié)合圖上的輸入部分電路,我理解為浮空輸入 狀態(tài)下,10的電平狀態(tài)是不確定的,完全由外部輸入決定,如果在該引腳懸空的情況下,讀取該端口的電平是不確定的。16、上拉輸入/下拉輸入/模擬輸入:這幾個(gè)概念很好理解,從字面便能輕易讀懂。17、 復(fù)用開漏輸出、復(fù)用推挽輸出:可以理解為GPIO 口被用作第二功能時(shí)的配置情況(即 并非作為通用IO 口使用)18、最后總結(jié)下使用情況:19、在STM32中選用10模式(1)浮空輸入N_FLOATING 浮空輸入,可以做 KEY識(shí)別,RX1(2)帶上拉輸入_IPU IO內(nèi)部上拉電阻輸入(3)帶下拉輸入PD IO內(nèi)部下拉電阻輸入

13、(4) 模擬輸入_AIN 應(yīng)用ADC模擬輸入,或者低功耗下省電(5)開漏輸出_OUT_OD IO輸出0接GND,IO輸出1,懸空,需要外接上拉電阻,才能實(shí)現(xiàn)輸出高電平。當(dāng)輸出為1時(shí),IO 口的狀態(tài)由上拉電阻拉高電平,但由于是開漏輸出模式,這樣IO 口也就可以由外部電路改變?yōu)榈碗娖交虿蛔???梢宰x IO輸入電平變化, 實(shí)現(xiàn)C51的IO雙向功能(6)推挽輸出_OUT_PP IO輸出0-接GND, IO輸出1 -接VCC,讀輸入值是未知的(7)復(fù)用功能的推挽輸出 _AF_PP 片內(nèi)外設(shè)功能(I2C的SCL,SDA )(8)復(fù)用功能的開漏輸出 _AF_OD 片內(nèi)外設(shè)功能(TX1,M0SI,MIS0.SC

14、K.SS )20、STM32設(shè)置實(shí)例:(1) 模擬I2C使用開漏輸出_OUT_OD,接上拉電阻,能夠正確輸出0和1;讀值時(shí)先GPIO_SetBits(GPIOB, GPIO_Pin_0);拉高,然后可以讀 10 的值;使用GPIO_Readl nputDataBit(GPIOB,GPIO_Pin_0);(2) 如果是無上拉電阻,IO默認(rèn)是高電平;需要讀取IO的值,可以使用帶上拉輸入 _IPU 和浮空輸入_IN_FLOATING 和開漏輸出_OUT_OD ;Stm32學(xué)習(xí)筆記一RCC部分1、RCC有多種用途,包括時(shí)鐘設(shè)置,外設(shè)復(fù)位和時(shí)鐘管理。2、RTC時(shí)鐘:系統(tǒng)時(shí)鐘:簡(jiǎn)單的說,就是芯片系統(tǒng)內(nèi)部的

15、時(shí)鐘,程序運(yùn)行的速度是由它來決定的。RTC:實(shí)時(shí)時(shí)鐘,如果供電,它會(huì)按照自己的精確等級(jí)運(yùn)行的,主要用來做日期時(shí)間的顯示用。3、時(shí)鐘樹STM32F10XX時(shí)鐘系統(tǒng)框圖及說明SC OUTOSC IN嶄岀內(nèi)詐時(shí)鐘H5E scMCG 口-.fjM.HET 2-LCLCPLLCLK時(shí)祥竝祀系詵則自動(dòng)切腹至 S¥SCLk=HSlPLL可哄呉用或阿被黃用或礙裁/1Bx2.k1GSMHi共1曰粧禪陽日預(yù)制樂井駆干其有舟選抵fl球?yàn)?1“ 2, 4、S. 16n &J, 130, 255, 512卜4SMHr or 72MlizLSE3Z.7BKH;RTCCLK* RTCH 神OffIWDGC

16、LK 電4廠1剰榊XLSI可譴關(guān)閉HCOSC32_OUiTAPBIPre?cilerUSB+ 1 or* I.1?APSfEfr®.廿頻El千 H有済申選拇舟別 K 2,氛 9, 15IJSBCLK 4SMHZ USRtttfrA HCLK upto72MH3.PCLK1 up to 3&MHZTIMHCLKPCLK2 uip to 7ZMHzMulklpIdET irl or m2TIMZ.3,4 Multiplier k or xZAPB2 PmulfirAPBfE-frmi /U7Jfe1否卻來2ITJMICLK TUMlrtitAE>(-PraxairADCCL

17、KADC覆骨頻.渤 因干共有織申謝軒 井別為2 6. 8STM32 辭 h4、配置時(shí)鐘樹的方法:(1 )定義一個(gè)定義一個(gè)定義一個(gè) ErrorStatu類型的變量 HSEStartUpStatus(2)將時(shí)鐘樹復(fù)位至默認(rèn)設(shè)置(3)開啟HSE晶振;(4) 等待HSE晶振起 振穩(wěn)定,并將起結(jié)果保存HSEStartUpStatus變量中;(5)判斷HSE晶振是否起成功(6)設(shè)置 HCLKHCLK 時(shí)鐘為時(shí)鐘為 SYSCL的 分頻(7)設(shè)置PLCK2時(shí)鐘為 時(shí)鐘為SYSCLK的 分頻;(8)設(shè)置PLCK1時(shí)鐘為 時(shí)鐘為SYSCLK的 分頻;Stm32學(xué)習(xí)筆記一AD部分i采樣保持器:計(jì)算機(jī)系統(tǒng)模擬量輸入通

18、道中的一種模擬量存儲(chǔ)裝置。它是連接采樣器和 模數(shù)轉(zhuǎn)換器的中間環(huán)節(jié)。采樣器是一種開關(guān)電路或裝置,它在固定時(shí)間點(diǎn)上取出被處理信號(hào) 的值。采樣保持器則把這個(gè)信號(hào)值放大后存儲(chǔ)起來,保持一段時(shí)間,以供模數(shù)轉(zhuǎn)換器轉(zhuǎn)換, 直到下一個(gè)采樣時(shí)間再取出一個(gè)模擬信號(hào)值來代替原來的值。在模數(shù)轉(zhuǎn)換器工作期間采樣保持器一直保持著轉(zhuǎn)換開始時(shí)的輸入值,因而能抑制由放大器干擾帶來的轉(zhuǎn)換噪聲,降低模數(shù)轉(zhuǎn)換器的孔徑時(shí)間,提高模數(shù)轉(zhuǎn)換器的精確度和消除轉(zhuǎn)換時(shí)間的不準(zhǔn)確性。一般生產(chǎn)過程控制計(jì)算機(jī)的模擬量輸入可能是每秒幾十點(diǎn)、幾百點(diǎn),對(duì)于大型系統(tǒng)甚至上千點(diǎn),往往需要高速采樣(如500010000點(diǎn)/秒)。為使這些模擬量信號(hào)逐個(gè)地送到模數(shù)轉(zhuǎn)

19、換器,而不至降低 被測(cè)信號(hào)的真實(shí)性,必須采用采樣保持器。在低速系統(tǒng)中一般可以省略這種裝置。原理采樣保持電路由模擬開關(guān)、存儲(chǔ)元件和緩沖放大器A組成。在采樣時(shí)刻,加到模擬開關(guān)上的數(shù)字信號(hào)為低電平,此時(shí)模擬開關(guān)被接通,使存儲(chǔ)元件(通常是電容器)兩端的電壓UB隨被采樣信號(hào)UA變化。當(dāng)采樣間隔終止時(shí),D變?yōu)楦唠娖剑M開關(guān)斷開,UB則保 持在斷開瞬間的值不變。 緩沖放大器的作用是放大采樣信號(hào),它在電路中的連接方式有兩種基本類型:一種是將信號(hào)先放大再存儲(chǔ),另一是先存儲(chǔ)再放大。對(duì)理想的采樣保持電路,要求開關(guān)沒有偏移并能隨控制信號(hào)快速動(dòng)作,斷開的阻抗要無限大,同時(shí)還要求存儲(chǔ)元件的電壓能無延遲地跟蹤模擬信號(hào)的電

20、壓,并可在任意長(zhǎng)的時(shí)間內(nèi)保持?jǐn)?shù)值不變。2、采樣頻率 英文名稱:sampling frequency定義:在模數(shù)轉(zhuǎn)換器中采樣時(shí)間間隔的倒數(shù)。3、Ad轉(zhuǎn)換器的分類4、 Ad轉(zhuǎn)換器的技術(shù)指標(biāo):轉(zhuǎn)換時(shí)間和轉(zhuǎn)換速率分辨率量化誤差轉(zhuǎn)換精度5、Ad位數(shù)的選擇6、Ad轉(zhuǎn)換速率的確定7、工作電壓和基準(zhǔn)電壓8、Ad的工作模式:(1)獨(dú)立模式:分為單通道單次轉(zhuǎn)換模式、多通道(掃描)單次轉(zhuǎn)換模式、單通道連 續(xù)轉(zhuǎn)換模式、多通道連續(xù)轉(zhuǎn)換模式、注入轉(zhuǎn)換模式單次轉(zhuǎn)換模式下,ADC只執(zhí)行一次轉(zhuǎn)換。在連續(xù)轉(zhuǎn)換模式中,當(dāng)前面 ADC轉(zhuǎn)換一結(jié)束馬上就啟動(dòng)另一次轉(zhuǎn)換。掃描模式,此模式用來掃描一組模擬通道。注入轉(zhuǎn)換模式:當(dāng)觸發(fā)方式為軟件

21、出發(fā)或者外部出發(fā)方式時(shí),可以使用此模式。(2)雙adc模式:分為同時(shí)為規(guī)則模式、快速交替模式、慢速交替模式、交替觸發(fā)模式、混合同步注入及+交替模式9、規(guī)則通道和注入通道的區(qū)別:STM32的每個(gè)ADC模塊通過內(nèi)部的模擬多路開關(guān),可以切換到不同的輸入通道并進(jìn)行轉(zhuǎn)換。STM32特別地加入了多種成組轉(zhuǎn)換的模式,可以由程序設(shè)置好之后,對(duì)多個(gè)模擬通 道自動(dòng)地進(jìn)行逐個(gè)地采樣轉(zhuǎn)換。有2種劃分轉(zhuǎn)換組的方式: 規(guī)則通道組和注入通道組。 通常規(guī)則通道組中可以安排最多 16個(gè)通道,而注入通道組可以安排最多4個(gè)通道。在執(zhí)行規(guī)則通道組掃描轉(zhuǎn)換時(shí),如有例外處理則可啟用注入通道組的轉(zhuǎn)換。一個(gè)不太恰當(dāng)?shù)谋扔魇牵阂?guī)則通道組的轉(zhuǎn)換

22、好比是程序的正常執(zhí)行,而注入通道組的轉(zhuǎn)換則好比是程序正常執(zhí)行之外的一個(gè)中斷處理程序。從系統(tǒng)設(shè)計(jì)上,測(cè)量并顯示室內(nèi)溫度的過程中斷了測(cè)量并顯示室外溫度的過程,但程序設(shè)計(jì)上可以在初始化階段分別設(shè)置好不同的轉(zhuǎn)換組,系統(tǒng)運(yùn)行中不必再變更循環(huán)轉(zhuǎn)換的配 置,從而達(dá)到兩個(gè)任務(wù)互不干擾和快速切換的結(jié)果??梢栽O(shè)想一下,如果沒有規(guī)則組和注入組的劃分,當(dāng)你按下按鈕后,需要從新配置AD循環(huán)掃描的通道,然后在施放按鈕后需再次 配置AD循環(huán)掃描的通道。10、SRAMSRAM是英文Static RAM的縮寫,即靜態(tài)隨機(jī)存儲(chǔ)器。它是一種具有靜止存取功能的 內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。11、DMA 原理:DMA

23、(Direct Memory Access,直接內(nèi)存存取)是所有現(xiàn)代電腦的重要特色,它允許不同速度的硬件裝置來溝通,而不需要依于 CPU的大量中斷負(fù)載。否則,CPU需要從來源把每一片段的資料復(fù)制到暫存器,然后把它們?cè)俅螌懟氐叫碌牡胤?。在這個(gè)時(shí)間中,CPU對(duì)于其他的工作來說就無法使用。Stm32學(xué)習(xí)筆記一CAN部分1、bxCAN主要特點(diǎn)支持CAN協(xié)議2.0A和2.0B主動(dòng)模式波特率最高可達(dá)1兆位/秒支持時(shí)間觸發(fā)通信功能發(fā)送3個(gè)發(fā)送郵箱,發(fā)送報(bào)文的優(yōu)先級(jí)特性可軟件配置,發(fā)送SOF時(shí)刻的時(shí)間戳 接收3級(jí)深度的2個(gè)接收FIF0,14個(gè)位寬可變的過濾器組標(biāo)識(shí)符列表FIFO溢出處理方式可配置,記錄接收SO

24、F時(shí)刻的時(shí)間戳,時(shí)間觸發(fā)通信模式,禁止自動(dòng)重傳模 式,16位自由運(yùn)行定時(shí)器,可在最后2個(gè)數(shù)據(jù)字節(jié)發(fā)送時(shí)間戳管理中斷可屏蔽,郵箱占用單獨(dú)1塊地址空間,便于提高軟件效率2、Stm32學(xué)習(xí)筆記一TIM 部分1、通用定時(shí)器(TIM)通用定時(shí)器是一個(gè)通過可編程預(yù)分頻器驅(qū)動(dòng)的16位自動(dòng)裝載計(jì)數(shù)器構(gòu)成。它適用于多種場(chǎng)合,包括測(cè)量輸入信號(hào)的脈沖長(zhǎng)度 (輸入采集)或者產(chǎn)生輸出波形(輸出比較和PWM)。使 用定時(shí)器預(yù)分頻器和 RCC時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾 個(gè)毫秒間調(diào)整。定時(shí)器是完全獨(dú)立的,而且沒有互相共享任何資源。2、 SCB是MDK庫(kù)文件里面定義的一個(gè)結(jié)構(gòu)體,subsystem

25、 control block子系統(tǒng)管理模塊3、TIMER主要是由三部分組成:時(shí)基單元、輸入捕獲、輸出比較,還有兩種模 式控制功能:從模式控制和主模式控制。4、定時(shí)器的計(jì)數(shù)模式:向上計(jì)數(shù)模式,向下計(jì)數(shù)模式,在向下模式中,計(jì)數(shù)器從自動(dòng)裝入的值(TIMx_ARR計(jì)數(shù)器的值)開始向 下計(jì)數(shù)到0,然后從自動(dòng)裝入的值重新開始并且產(chǎn)生一個(gè)計(jì)數(shù)器向下溢出事件。每次計(jì)數(shù)器溢出時(shí)可以產(chǎn)生更新事件,在TIMx_EGR寄存器中設(shè)置UG位(通過軟件方式或者使用從模式控制器)也同樣可以產(chǎn)生一個(gè)更新事件。設(shè)置TIMx_CR1寄存器的UDIS位可以禁止UEV事件。這樣可以避免向預(yù)裝載寄存器 中寫入新值時(shí)更新影子寄存器。因此U

26、DIS位被清為0之前不會(huì)產(chǎn)生更新事件。然而,計(jì)數(shù)器仍會(huì)從當(dāng)前自動(dòng)加載值重新開始計(jì)數(shù),同時(shí)預(yù)分頻器的計(jì)數(shù)器重新從0開始(但預(yù)分頻器的速率不能被修改)。此外,如果設(shè)置了 TIMx_CR1寄存器中的URS位(選擇更新請(qǐng)求),設(shè)置UG位將產(chǎn)生 一個(gè)更新事件 UEV但不設(shè)置UIF標(biāo)志(因此不產(chǎn)生中斷和 DMA請(qǐng)求),這是為了避免在發(fā) 生捕獲事件并清除計(jì)數(shù)器時(shí),同時(shí)產(chǎn)生更新和捕獲中斷。當(dāng)發(fā)生更新事件時(shí),所有的寄存器都被更新,并且(根據(jù)URS位的設(shè)置)更新標(biāo)志位(TIMx_SR寄存器中的UIF位)也被設(shè)置。中央對(duì)齊模式,5、時(shí)基單元包含:計(jì)數(shù)器寄存器(TIMx_CNT)預(yù)分頻器寄存器 (TIMx_PSC),

27、預(yù)分頻器可以將計(jì)數(shù)器的時(shí)鐘頻率按1到65536之間的任意值分頻。自動(dòng)裝載寄存器 (TIMx_ARR),自動(dòng)裝載寄存器是預(yù)先裝載的,寫或讀自動(dòng)重裝載寄 存器將訪問預(yù)裝載寄存器。根據(jù)在TIMX_CR1寄存器中的自動(dòng)裝載預(yù)裝載使能位(ARPE)的設(shè)置,預(yù)裝載寄存器的內(nèi)容被立即或在每次的更新事件UEV時(shí)傳送到影子寄存器。6、可設(shè)置時(shí)長(zhǎng)的定時(shí)器的方法設(shè)置計(jì)數(shù)器的時(shí)鐘頻率。設(shè)置計(jì)數(shù)器的計(jì)數(shù)初值。打開計(jì)數(shù)器開始計(jì)數(shù)。開啟中斷。執(zhí)行中斷服務(wù)程序7、通用定時(shí)器的時(shí)鐘來源:內(nèi)部時(shí)鐘(CK_INT)外部時(shí)鐘模式1:外部輸入腳(TIx)外部時(shí)鐘模式2:外部觸發(fā)輸入(ETR)內(nèi)部觸發(fā)輸入(ITRx):使用一個(gè)定時(shí)器作為

28、另一個(gè)定時(shí)器的預(yù)分頻器,如可以配置一個(gè) 定時(shí)器Timer1而作為另一個(gè)定時(shí)器 Timer2的預(yù)分頻器。8、計(jì)數(shù)器時(shí)鐘頻率的計(jì)算方法-in) Tclk;9、從庫(kù)函數(shù)角度設(shè)置定時(shí)時(shí)間(1) Timx時(shí)鐘使能:通用定時(shí)器掛在 APB仆,通過APB1總線的使能函數(shù)來使能,函數(shù)為 RCC_APB1PeriphClockCmd( RCC_APB1Periph_TIM3,enable)(2)初始化定時(shí)器參數(shù):設(shè)置自動(dòng)重裝值、分頻系數(shù)和計(jì)數(shù)方式等,函數(shù)原形為:TIM_TimeBasel ni t(TIM_TypeDef*TIMx,TIM_TimeBasel ni tTypeDef* TIM_TimeBase

29、In itStruct) 功能描述:根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化 TIMx的時(shí)間基數(shù)單位,輸入?yún)?數(shù)1,TIMx : x可以是2,3或者4,來選擇TIM外設(shè);輸入?yún)?shù) 2TIM-TimeBase_InitStruct :指向結(jié)構(gòu)TIM_TimeBaselnitTypeDef的指針,包含了 TIMx時(shí)間基 數(shù)單位的配置 信息。 TIM_TimeBaselnitTypeDef 定義于文件 Stm32f10x_tim.h ”: typedef structu16 TIM_Period;u16 TIM_Prescaler;u8 TIM_ClockDivisio n

30、;u16 TIM_Cou nterMode; TIM_TimeBaseI ni tTypeDef;TIM_Period設(shè)置了在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值。它的取值必須在 0x0000 和 OxFFFF 之間。TIM_PrescalerTIM_Prescaler設(shè)置了用來作為 TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值。它的取值必須在0x0000和0xFFFF 之間。TIM_ClockDivisio nTIM_ClockDivision設(shè)置了時(shí)鐘分割(3) 設(shè)置 timx-dier 允許更新中斷:函數(shù)原形 void TIMTConfig(TIM_TypeDef*TIMx,u16 TIM

31、T, FunctionalState NewState)功能描述,使能或者失能指定的TIM中斷,輸入?yún)?shù)1TIMx : x可以是2, 3或者4,來選擇TIM外設(shè);輸入?yún)?shù)2,TIMT :待使能或者失能的TIM 中斷源,輸入?yún)?shù)3NewState: TIMx中斷的新狀態(tài),這個(gè)參數(shù)可以?。篍NABLE或者DISABLE 輸入?yún)?shù)TIM_IT使能或者失能TIM的中斷??梢匀∠卤淼囊粋€(gè)或者多個(gè)取值的組合作 為該參數(shù)的值。TIMT_Update TIM中斷源,TIMT_CC1 TIM捕獲/比較1中斷源,TIMT_CC2 TIM捕獲/比較2中斷源,TIMT_CC3,TIM捕獲/比較3中斷源TIMT_CC4

32、 TIM捕獲/比較4中斷源,TIMT_Trigger TIM 觸發(fā)中斷源(4) 設(shè)置中斷優(yōu)先級(jí),在nvic的寄存器中設(shè)置(5) 使能 timx(6) 編寫中斷服務(wù)函數(shù)10、TIM_ClearFlag 函數(shù)原形 void TIM_ClearFlag(TIM_TypeDef* TIMx, u32 TIM_FLAG)功能描述,清除TIMx的待處理標(biāo)志位,輸入?yún)?shù)1,TIMx : x可以是2,3或者4,來選擇TIMTIM_FLAG 值: TIM_FLAG_Update TIM_FLAG_CC1 TIM_FLAG_CC2 TIM_FLAG_CC3 TIM_FLAG_CC4 TIM_FLAG_Trigge

33、r TIM_FLAG_CC1OF TIM_FLAG_CC2OF TIM_FLAG_CC3OF TIM_FLAG_CC4OF外設(shè),輸入?yún)?shù)2,TIM_FLAG :待清除的TIM標(biāo)志位TIM更新標(biāo)志位TIM捕獲/比較1標(biāo)志位TIM捕獲/比較2標(biāo)志位TIM捕獲/比較3標(biāo)志位TIM捕獲/比較4標(biāo)志位TIM觸發(fā)標(biāo)志位TIM捕獲/比較1溢出標(biāo)志位TIM捕獲/比較2溢出標(biāo)志位TIM捕獲/比較3溢出標(biāo)志位TIM捕獲/比較4溢出標(biāo)志位 11、函數(shù)名:TIM_GetCou nter函數(shù)原形:u16 TIM_GetCou nter(TIM_TypeDef* TIMx) 功能描述:獲得 TIMx計(jì)數(shù)器的值輸入?yún)?shù):T

34、IMx : x可以是2, 3或者4,來選擇TIM外設(shè)12、函數(shù)名 TIM_ GetITStatus函數(shù)原形 TIM_GetlTStatus(TIM_TypeDef* TIMx, u16 TIMT)功能描述檢查指定的 TIM中斷發(fā)生與否輸入?yún)?shù)1TIMx : x可以是2,3或者4,來選擇TIM外設(shè)輸入?yún)?shù)2TIMT :待檢查的TIM中斷源13、函數(shù)名 TIM_ITConfig函數(shù)原形 void TIMTConfig(TIM_TypeDef* TIMx, u16 TIMT, FunctionalState NewState)功能描述使能或者失能指定的TIM中斷輸入?yún)?shù)1TIMx : x可以是2,3

35、或者4,來選擇TIM外設(shè)輸入?yún)?shù)2TIM_IT :待使能或者失能的 TIM中斷源輸入?yún)?shù)3NewState: TIMx中斷的新狀態(tài)這個(gè)參數(shù)可以?。篍NABLE或者DISABLETIMTTIMT_UpdateTIM 中斷源TIMT_CC1TIM 捕獲/比較1中斷源TIMT_CC2TIM 捕獲/比較2中斷源TIMT_CC3TIM 捕獲/比較3中斷源TIMT_CC4TIM 捕獲/比較4中斷源TIMT_TriggerTIM 觸發(fā)中斷源14、函數(shù)名 TIM_ ClearITPendingBit函數(shù)原形 void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, u16 T

36、IMT)功能描述清除TIMx的中斷待處理位輸入?yún)?shù)1TIMx : x可以是2,3或者4,來選擇TIM外設(shè)輸入?yún)?shù)2TIM_IT :待檢查的TIM中斷待處理位15、 STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì) PWM互補(bǔ)輸出的高 級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí) 器,時(shí)鐘由APB1的輸出產(chǎn)生。Stm32學(xué)習(xí)筆記一USART部分1、簡(jiǎn)單的define定義#defi ne MAXTIME 1000一個(gè)簡(jiǎn)單的MAXTIME 就定義好了,它代表1000,如果在程序里面寫if(i<MAXTIME)編譯器在處理這個(gè)代碼之前會(huì)對(duì)M

37、AXTIME進(jìn)行處理替換為1000。這樣的定義看起來類似于普通的常量定義CONST,但也有著不同,因?yàn)?define的定義更像是簡(jiǎn)單的文本替換,而不是作為一個(gè)量來使用,這個(gè)問題在下面反映的尤為突出。2、常見的頭文件#include <stdio.h> /定義輸入/輸出函數(shù)#include <stdlib.h> /定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù)#include <string.h> / 字符串處理#include <time.h> /定義關(guān)于時(shí)間的函數(shù)#include <stdio.h> /定義輸入/輸出函數(shù)#include <cty

38、pe.h> / 字符處理#include <misc.h> /中斷優(yōu)先級(jí)分組#include<math.h>數(shù)學(xué)函數(shù)庫(kù)包含一些數(shù)學(xué)計(jì)算的公式3、UART : universal asynchronous receiver and transmitter 通用異步收發(fā)器USART:universal synchronous asynchronous receiver and transmitter 通用同步異步收發(fā)器都是指單片機(jī)的串口通訊,工作方式不一樣而已!4、USART主要特性全雙工的,異步通信 NRZ標(biāo)準(zhǔn)格式分?jǐn)?shù)波特率發(fā)生器系統(tǒng)一發(fā)送和接收共用的可編程波特率,

39、最高達(dá) 4.5Mbits/s可編程數(shù)據(jù)字長(zhǎng)度(8位或9位)可配置的停止位-支持1或2個(gè)停止位可配置的使用 DMA的多緩沖器通信在SRAM里利用集中式 DMA緩沖接收/發(fā)送字節(jié)單獨(dú)的發(fā)送器和接收器使能位檢測(cè)標(biāo)志一接收緩沖器滿一發(fā)送緩沖器空一傳輸結(jié)束標(biāo)志校驗(yàn)控制一發(fā)送校驗(yàn)位一對(duì)接收數(shù)據(jù)進(jìn)行校驗(yàn)5、 異步串行通信協(xié)議需要定義以下5個(gè)內(nèi)容: 起始位、數(shù)據(jù)位、奇偶校撿位、停止位、波特率設(shè)置6、 應(yīng)用場(chǎng)合:芯片之間近距離,與PC機(jī)之間的通信和模塊之間遠(yuǎn)距離通信7、 串口通信(Serial Communication),是指外設(shè)和計(jì)算機(jī)間,通過數(shù)據(jù)信號(hào)線、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。這種

40、通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)汀?、PC的串口就是 COM 口,TxD和RxD和GND就是包括在 COM 口中。接口通過三個(gè)引 腳與其他設(shè)備連接在一起(見圖236)。任何USART雙向通信至少需要兩個(gè)腳:接收數(shù)據(jù)輸 入(RX)和發(fā)送數(shù)據(jù)輸出(TX)。9、函數(shù) USART_SendData,,函數(shù)原形 void USART_SendData(USART_TypeDef* USARTx, u8 Data),功能描述通過外設(shè) USARTx發(fā)送單個(gè)數(shù)據(jù),USARTx : x可以是1, 2或者3,來選擇 USART外設(shè),輸入?yún)?shù)2, Data:待發(fā)送的數(shù)

41、據(jù)10、函數(shù) USART_ReceiveData,函數(shù)原形 u8 USART_ReceiveData(USART_TypeDef*USARTx),功能描述,返回 USARTx最近接收到的數(shù)據(jù)輸入?yún)?shù),USARTx : x可以是1, 2或者3,來選擇USART外設(shè)11、USART_GetFlagStatus ,函 數(shù)原形 FlagStatus USART_GetFlagStatus(USART_TypeDef*USARTx, u16 USART_FLAG),功能描述,檢查指定的 USART標(biāo)志位設(shè)置與否,輸入?yún)?shù)1USARTx : x可以是1, 2或者3,來選擇USART外設(shè),輸入?yún)?shù) 2 ,

42、USART_FLAG :待檢查 的USART標(biāo)志位CTS標(biāo)志位LIN中斷檢測(cè)標(biāo)志位發(fā)送數(shù)據(jù)寄存器空標(biāo)志位發(fā)送完成標(biāo)志位接收數(shù)據(jù)寄存器非空標(biāo)志位12、USART_FLAG 值 USART_FLAG_CTS USART_FLAG_LBD USART_FLAG_TXE USART_FLAG_TC USART FLAG RXNE空閑總線標(biāo)志位 溢出錯(cuò)誤標(biāo)志位噪聲錯(cuò)誤標(biāo)志位 幀錯(cuò)誤標(biāo)志位 奇偶錯(cuò)誤標(biāo)志位13、USART_ ClearFlag 函數(shù)原形void USART_ClearFlag(USART_TypeDef* USARTx, u16USART_FLAGDLE USART_FLAG_ORE US

43、ART_FLAG_NE USART_FLAG_FE USART_FLAG_PE18USART_FLAG)功能描述,清除 USARTx的待處理標(biāo)志位,輸入?yún)?shù) 1,USARTx : x可以 是1, 2或者3,來選擇USART外設(shè),輸入?yún)?shù) 2,USART_FLAG :待清除的USART標(biāo)志 位。14、 USART_ITConfig ,函數(shù)名函數(shù)原形 void USART_ITConfig(USART_TypeDef* USARTx, u16 USART_IT, FunctionalState NewState)功能描述,使能或者失能指定的USART中斷,輸入?yún)?shù)1,USARTx : x可以是1,

44、 2或者3,來選擇USART外設(shè),輸入?yún)?shù) 2,USART_IT : 待使能或者失能的 USART中斷源,輸入?yún)?shù) 3,NewState: USARTx中斷的新狀態(tài),這個(gè) 參數(shù)可以?。篍NABLE或者DISABLEUSART_IT 值 USART_IT_PE USART_IT_TXE USART_IT_TC USART_IT_RXNE USART_IT_IDLE USART_IT_LBD USART_IT_CTS USART_IT_ERR奇偶錯(cuò)誤中斷發(fā)送中斷傳輸完成中斷接收中斷空閑總線中斷LIN中斷檢測(cè)中斷CTS中斷錯(cuò)誤中斷15、USART1重映像STM32上有很多I/O 口,也有很多的內(nèi)置外

45、設(shè)想I2C,ADC,ISP,USART 等,為了節(jié)省引出管腳,這些內(nèi)置外設(shè)基本上是與I/O 口共用管腳的,也就是I/O管腳的復(fù)用功能。但是STM32還有一特別之處就是:很多復(fù)用內(nèi)置的外設(shè)的I/O引腳可以通過重映射功能,從不同的I/O管腳引出,即復(fù)用功能的引腳是可通過程序改變的讀到這里相信大家都應(yīng)該了解了端口重映射的一些概念了良用功能USARTIREMAP = DUSART1_REMAP = 1USART1 TXPA9PBSUSART1 RXPA10PB716、串口是需要使用IO 口來進(jìn)行發(fā)送和接收的。17 函數(shù)名 USART_ SendData函數(shù)原形 void USART_SendData(

46、USART_TypeDef* USARTx, u8 Data)功能描述通過外設(shè) USARTx發(fā)送單個(gè)數(shù)據(jù)輸入?yún)?shù)1 USARTx : x可以是1,2或者3,來選擇USART外設(shè)輸入?yún)?shù)2 Data:待發(fā)送的數(shù)據(jù)Stm32學(xué)習(xí)筆記一超聲波測(cè)距部分1程序目的:使用STM32控制超聲波模塊并使用USART顯示#i nclude "stm32f10x.h" #in elude "math.h"#i nclude "stdio.h"#in clude "time.h" void Tim2_I nit(void);void G

47、PIO_C on figuratio n( void);void RCC_Co nfiguratio n( void);void USART_Co nfiguratio n( void);u16 Sen sor_us in g(void);void delay(void);main ()u16 result=0;u8 i;FlagStatus Status;/*system clock init*/RCC_Co nfiguratio n();/*IO ini t*/GPIO_C on figuratio n();/*TIM初始化*/USART_Co nfiguratio n();Tim2n i

48、t();while(1)u16 m;result=Se nsor_us in g();i=(u8)(result&0xff00)>>8);/ 輸出高八位 /RESET);RESET);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)= USART_Se ndData(USART1,i);i=(u8)result&OxOOff);輸出低八位 /while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)= USART_Se ndData(USART1,i);for(m=800;m&

49、gt;0;m-)delay();void RCC_Co nfiguratio n( void)ErrorStatus HSEStartUpStatus;RCC_Del nit();RCC_HSECo nfig(RCC_HSE_ON);/時(shí)鐘控制寄存器全部恢復(fù)默認(rèn)值/外部高速時(shí)鐘源開啟(8M晶振)HSEStartUpStatus = RCC_WaitForHSEStartUp(); if(HSEStartUpStatus = SUCCESS)RCC_HCLKCo nfig(RCC_SYSCLK_Div1); 時(shí)鐘1分頻RCC_PCLK2Co nfig(RCC_HCLK_Div1);HCLK時(shí)鐘1

50、分頻RCC_PCLK1Co nfig(RCC_HCLK_Div2);為HCLK時(shí)鐘2分頻RCC_PLLCo nfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); 部高速時(shí)鐘的 9倍頻,8MHz * 9 = 72 MHzRCC_PLLCmd(ENABLE);while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET)完成準(zhǔn)備就緒RCC_SYSCLKCo nfig(RCC_SYSCLKSource_PLLCLK);系統(tǒng)時(shí)鐘源while(RCC_GetSYSCLKSource() != 0x08)認(rèn)為外部高速晶振,8M晶振。等待

51、外部時(shí)鐘就緒如果時(shí)鐘啟動(dòng)成功/定義AHB設(shè)備時(shí)鐘為系統(tǒng)定義APB2設(shè)備時(shí)鐘為定義APB1設(shè)備時(shí)鐘配置PLL時(shí)鐘為外使能PLL時(shí)鐘等待PLL時(shí)鐘設(shè)置使用PLL時(shí)鐘作為返回系統(tǒng)所用時(shí)鐘源確RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOE , ENABLE); void GPIO_C on figuratio n(void)GPIO_I ni tTypeDef GPIO_I nitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Perip

52、h_GPIOE|RCC_APB2Periph_GPIOB,ENABLE);/*Echo pin defi ne*/GPIO_I nitStructure.GPIO_P in = GPIO_P in _9;GPIO_I ni tStructure.GPIO_Mode = GPIO_Mode_IPU;/GPIO_Mode_IN_FLOATING;GPIO_I nit(GPIOE, & GPIO_I nitStructure);/*Trigle pin defi ne*/GPIO_I ni tStructure.GPIO_Pin = GPIO_Pin_10;GPIO_I ni tStruct

53、ure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_I nitStructure.GPIO_Speed = GPIO_Speed_5OMH z;GPIO_I nit(GPIOE, & GPIO_I nitStructure);GPIO_I ni tStructure.GPIO_P in=GPIO_Pin_9;GPIO_I ni tStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_I nit(GPIOA,&GPIO_I nitStructure);GPIO_I ni tStructure.GPIO_Pi n=GPIO_Pin

54、_1O;GPIO_I ni tStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_I nit(GPIOA,&GPIO_I nitStructure);void USART_Co nfiguratio n(void)/ 串口配置程序USART_I ni tTypeDef USART_I ni tStructure;USART_I nitStructure.USART_BaudRate =115200;/ 設(shè)置串口波特率USART_I nitStructure.USART_WordLe ngth = USART_WordLe ngth_8b;/ 設(shè)置數(shù)據(jù)長(zhǎng)度為 8位USART_I n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論