28、定時(shí)器的輸出比較模式:Timing(凍結(jié),什么都不做,普通定時(shí)),Active(OCxREF輸出高電平有效),Inactive(OCxREF輸出低電平),Toggle(比較成功后翻轉(zhuǎn)電平)。
29、STM32的定時(shí)器從0開始計(jì)數(shù),滿足一些條件,給出標(biāo)志位(比如匹配成功、時(shí)間更新、溢出等)然后從0開始計(jì)數(shù)。這一點(diǎn)和51不同。
30、OCx=OCxREF+極性
31、自動(dòng)裝載寄存器和影子寄存器:前者相當(dāng)于51當(dāng)中的溢出設(shè)定數(shù)值。而影子寄存器顧名思義是影子,就是寄存器的另一分copy。實(shí)際起作用的是影子寄存器,而程序員操縱的則是自動(dòng)裝載寄存器。如果APPE位使能,表明自動(dòng)裝載寄存器的值在下一次更新事件發(fā)生后才寫入新值。否則,寫入自動(dòng)裝載寄存器的值會(huì)被立即更新到影子寄存器。
32、RCC_PCLK1Config(RCC_HCLK_Div4);PCLK1的4分頻給定時(shí)器基準(zhǔn)時(shí)鐘
33、定時(shí)器配置:RCC、NVIC、GPIO(OC輸出或者PWM)、TIMx
34、通用定時(shí)器可以輸出4路不同的PWM,高級(jí)定時(shí)器可以輸出4路不同的PWM外,還可以輸出3路互補(bǔ)的PWM信號(hào)(驅(qū)動(dòng)三相電機(jī)),一共有7路。這樣算出來(lái)STM32可以產(chǎn)生30路PWM=7*2+4*4
35、
36、高級(jí)定時(shí)器時(shí)鐘源掛在了APB2上,而通用定時(shí)器掛在APB1上。AHB(72mhz)→APB1分頻器(默認(rèn)2)→APB1時(shí)鐘信號(hào)(36mhz)→倍頻器(*2倍)→通用定時(shí)器時(shí)鐘信號(hào)(72mhz)。如果APB1沒(méi)有分頻,那么通用定時(shí)器的時(shí)鐘信號(hào)頻率就直接等于APB1的時(shí)鐘頻率,沒(méi)有上述的倍頻器*2過(guò)程。TIM_SetAutoreload()用來(lái)改變PWM的頻率,TIM_SetCompare1()用來(lái)改變占空比
37、有刷電機(jī)一般啟動(dòng)力矩大一些,無(wú)刷電機(jī)啟動(dòng)力矩小,運(yùn)行起來(lái)力矩大。有刷電機(jī)采用電刷機(jī)械電流換向,而無(wú)刷電機(jī)則通過(guò)霍爾傳感器測(cè)出轉(zhuǎn)子的電流來(lái)判斷電機(jī)的運(yùn)動(dòng)位置和方向,返回給控制回路。
38、死區(qū)是必須要有的,因?yàn)檫@涉及到電路的短路問(wèn)題。
39、剎車功能用來(lái)在控制回路出現(xiàn)問(wèn)題時(shí),硬件自動(dòng)給予外部電機(jī)進(jìn)行緊急剎車制動(dòng),反應(yīng)在PWM上持續(xù)給出一個(gè)固定的占空比?(三相驅(qū)動(dòng)也是?)
40、PWM輸出最好采用PWM模式,其他的比較輸出模式相位會(huì)慢慢改變,不精準(zhǔn)
41、對(duì)FLASH的讀寫需要先解鎖后加鎖。FLASH寫0容易,寫1難。
42、下載程序有兩種方式,一種為ICP(在線編程),適用于JTAG或SWD協(xié)議下的燒寫程序。另一種成為IAP(在應(yīng)用編程),適用于很多接口(USB,串口,CAN)下載到存儲(chǔ)器中,IAP允許在程序運(yùn)行時(shí)重新燒寫FLASH
43、FLASH分為主存儲(chǔ)器(這里放置用戶的程序代碼)和信息塊(啟動(dòng)代碼),除此之外,還有一部分叫做系統(tǒng)存儲(chǔ)器,這一塊用戶不可操作,為ST公司出產(chǎn)后固化,為系統(tǒng)的上電自舉程序
44、FLASH在寫的時(shí)候,一定不能讀,如果有讀操作,那么將會(huì)鎖住總線
45、對(duì)FLASH操作時(shí),必須打開HIS
46、STM32有兩種看門狗(IWDG獨(dú)立看門狗《獨(dú)立時(shí)鐘》,WWDG窗口看門狗《由APB1分頻而來(lái)》)
47、SPI的的最高頻率為36MHz(fpclk/2)
48、 TIM1和TIM8高級(jí)定時(shí)器在輸出PWM時(shí),需要配置一下主輸出功能(CtrlPWMOutputs)才能輸出PWM。其他的通用定時(shí)器不需要這樣配置。但是TIM6和TIM7沒(méi)有PWM輸出功能。
49、Code為程序代碼部分
RO-data 表示程序定義的常量(如:const temp等);
RW-data 表示已初始化的全局變量
ZI-data 表示未初始化的全局變量,以及初始化為0的變量
Code, RO-data,RW-data..............flash
RW-data, ZIdata...................RAM
初始化時(shí)RW-data從flash拷貝到RAM
50、STM32F103ZET6有144個(gè)引腳(Z為144),其中,可用IO口為112個(gè)(7X16=112,ABCDEFG口)
51、ARM公司只生產(chǎn)內(nèi)核標(biāo)準(zhǔn),不生產(chǎn)芯片。ST、TI這樣的公司從ARM公司那里購(gòu)買內(nèi)核,然后外加自己的總線結(jié)構(gòu)、外設(shè)、存儲(chǔ)器、始終和復(fù)位、I/O后就組成了自己的芯片。
52、CMSIS標(biāo)準(zhǔn)用于在向上的用戶層和下面的硬件層交換信息。這個(gè)架構(gòu)當(dāng)然可以自己定義,但是這樣的話就會(huì)沒(méi)有標(biāo)準(zhǔn)。所以強(qiáng)制使用CMSISI標(biāo)準(zhǔn)來(lái)設(shè)計(jì)芯片。通俗點(diǎn)的講就是系統(tǒng)初始化的函數(shù)名稱CMSIS定義為SystemInit(),GPIO_ResetBits()等
53、端口復(fù)用和端口重映射是兩個(gè)概念:前者在使能其對(duì)應(yīng)的端口和對(duì)應(yīng)的功能時(shí)鐘即可。后者需要打開AFIO時(shí)鐘,然后進(jìn)行端口的重映射GPIO_PinRemapConfig()
54、下載程序只能使用串口1,在硬件設(shè)計(jì)時(shí)一定要注意!
55、J-TAG調(diào)試頻率一般設(shè)定為2MHz,而SWD調(diào)試頻率可以設(shè)定為10MHz