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