開發板wifi ver224stm32相關手冊the insiders guide to_第1頁
開發板wifi ver224stm32相關手冊the insiders guide to_第2頁
開發板wifi ver224stm32相關手冊the insiders guide to_第3頁
開發板wifi ver224stm32相關手冊the insiders guide to_第4頁
開發板wifi ver224stm32相關手冊the insiders guide to_第5頁
已閱讀5頁,還剩103頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

定義了8位,而STM32只實現了4位。簡 什么是 一起來看看 復雜 STM32系 Cortex概 ARM體系結構版 Cortex處理器和Cortex Cortex 流水 CPU工作模 Thumb-2指令 非對齊的內存.............................................................................................................位 Cortex處理 總 NVIC操作異常的進入和退 尾 遲 NVIC的配置和使 CoreSight調試支 指令..........................................................................................................................Cortex微控制器軟件接口標 封裝類型和PCB封 電 振蕩 啟動引腳和編 3.4.6調試端 STM32的系統架 鎖相 FLASH緩沖 直接內存.....................................................................................................................外 通用 基本ADC配 DMA支 編接 RTC和備份寄存 互聯 內部集成音頻I2S外 CAN和USB控制 CAN控制 SLEEP模 STOP模 Standby模 看門 GPIO端口鎖 FLASH模 內部FLASH的安全性和編 寫保 讀保 靈活的靜態器控制 NAND和PC PC SDIO接 SDIO外 數據..................................................................................................................... 結束 什么是有足夠低的成本,足以傳統的8位和16位微控制器。CortexM3CCCortex以用C編碼。12ADC,具有一個集成的溫度傳感器和多個轉換模式,并且雙ADC可以主從組合成態。SPI816CRCSDMMCRC振蕩器上。指令集和Cortex系列。的情況是需要軟件升級,以獲得必要的支持。ST還提供了外設驅動程序庫,USBANSICSTR7STR9RTOS(TCP/IP,文件系統等)CortexCortex-M3全新的調試系統CoreSight。CoreSight系統是通過一個支持標準JTAG的接口或串行線(2線)接口來。STM32的CoreSight系統提供調試運行控制的同時,還提供了一個STM32量大小為256KB到512KB,并且具有最豐富的外設集。在72MHz,并提供的設備。USB型添加一個USBdevice,用于對成本敏感的USBCortex持ARM,Thumb和Thumb-2指令集。Thumb-2指令集。ARM系等)CortexM3的體系結構版本是ARMv7M.這些文件可以從ARM上 CortexCortex關鍵特性,然后再Cortex處理器(STM32)的系統設備。CortexCPU百為技百為技 網店tt/ 殊的功能寄存器R13用堆棧指針。這個寄存是分塊的,它允許在CortexCPU 操作模式(線程模和處理模式),每操作模式 自獨立的棧空間。通常用于RTOS中,即可以在保護模式下運行“系”代碼。CortexCPU有兩個堆棧稱為主堆和進堆得CortexCPU可以 幾級子程序編譯器將自動把R14它

像其寄存器一樣進行讀寫操作。 寄存器之外,還有有一單獨的寄存器

xPSR的寄存器 進行。前5位條件代碼標志,別名是應用程序狀態寄存器(ApplicationProgramatusRegister。前四個條件代 標志N,Z,C,V(負數,零,進 出)將據數 器的件碼標狀態時才被執行。如果該令條件不配,則該指令通過流水線時作NOPCortexCPU中,執行程狀態寄存器(utiProgramStatusRegister)使得這一技以268xPSRIFthen”區,“中斷-指令ThumbThumb-2IFthen”指時,有有效的方法當條件測試為真,可以在“IFthen”位CPU可執個典型的流水線C將被編碼如下:If(r0CMP ;comparer0toITTEE ;iftrueexecutethenexttwoThenr0=*r1LDRr0,[r1] ;loadcontentsofmemorylocationintor0 ;add2卻需要多個周期。因此,CortexCPU中斷狀態寄存器(InterruptStatusRegisters)包含當前被激活的中斷編號。CPU指令集。在非模式下某些指令將被禁用(如允許xPSR和它的別名的MRS和MSR指令Cortex可以被配置為使用進程堆棧(R13bank寄存器。Cortex系統控制寄存器。致RTOS。Thumb-2Cortex處理器benarks提供1.2百為技百為技 網店tt/Thumb-2指令 改進的分支指令,包測試和比較,IFthen條件執 字節序和字和半字提取指令。作為一個RISC處理器,CortexCPU還具 用最少的非ANSI鍵字, 有異常向量表是匯 Cortex-M3處 一個準的微控制器核,具有一個明定義的內存映射。管有多個內部總線,個內存映射是線性的4G字節的地址空間。取,這將會產生額的等待狀態。這很可能是因為從SRAM上運行,比從位于代區 FLASH器上運行代速度要慢。接下來的0.5GB的儲 片外設區。所有由微控 以用個字或位的方式進行操作的接下來的2GB的地址空間被分配給CortexCPU有字,半字和字節尋址模式,但能夠對非對齊的內存進行。這使得編早期的ARM7和ARM9的CPU只能在SRAM和外設器位置上通過使用AND和OR指令執帶別名地址。計算別名地址的如下:位帶別名區的地址=位帶別名區的址+位帶字偏移位帶字偏移=位帶址偏移*32+位號*4我們可以使用上面的來設置和清除這個字的第8位。 PortBbit8(*((volatileunsignedlong*)0x422181A0PortBbit8= //led PortBbit8= //led 和OR方法進行同樣的設置和清除操作: |=0x ;//LEDon bit_word_addr=bit_band_base+(byte_offsetx32)+(bit_numberx是在位帶區的偏移=位帶區地址-位帶區址,bit_number表示位帶區地址中的第幾#defineVar_ResetBit_BB(VarAddr, (*(vu32*)(RAM_BB_BASE|((VarAddr-RAM_BASE)<<5)|((BitNumber)<<2))=0) (*(vu32*)(RAM_BB_BASE|((VarAddr-RAM_BASE)<<5)|((BitNumber)<<2))=1) (*(vu32*)(RAM_BB_BASE|((VarAddr-RAM_BASE)<<5)|((BitNumber)<<2)))Cortex-M3ICode總線和DCode總線。這些總線都可以地址范圍0X-0x1FFFFFFF的代碼和數據。另外,系統總線是用來地址范圍為0x-0xDFFFFFFF和0xE1/8。處理器內部的24位的自動重裝定時百為技百為技 網店tt/SysTick重裝載值寄存,地址為0xE000E014,位[23:0]RELOAD表 器到達0

default)EnleSTickcounter erCdEnleSTickinterruptSysTick

的ARMCPU 比,Cortex的主改之一是它的中斷 和ARM9的CPU有兩中斷信號線:快中斷和普通中斷線。這兩個中斷信號線必須支持指 的技術大致相同,體實現因廠商而異。ARM7和ARM9的中斷結構有兩個問題。首先,不確定性。當中斷發生時它止或退 前正在執行的指令花費的時間是可變的。 用序說這可能是一個問題,在實時控制系中它是一個大問題。其次,ARM7和ARM9 不支持嵌套中斷,需要進一的不 宏匯編還是RTOS軟件實現。Cortex核

嵌套向量中斷控器是Cortex核內的一個標準單元。這意味著,無論

易從一個微

)是被中斷的。中斷CANSI己內部的內部異常。STM32的NVIC已經集成了最多43個可的中斷線。NVICNVIC6個周期的延遲來響應堆棧幀包含了程序狀態寄存器,程序計數器和寄存器。這樣就保存了CortexCPU代碼自動恢復,同時返回地址被取出,這樣背景代碼可以在12個周期內恢復執行。有至少6個周期。NVICCortex 每個中斷向量是4字節寬的,并保存有每個中斷服務程序的起始地址。開始的15項表示Cortex內發生的異常。這些包括復位向量,不可的中斷,故障和錯誤 RESET,DATA,Vectors

;Topof ;NMIHandler ;HardFaultHandler ;MPUFaultHandler ;BusFaultHandler UsageFault_Handler;UsageFaultHandler ;SVCall ;DebugMonitorHandler SysTick_Handler;SysTickHandlervoidSysTick_Handler{…}SysTickCurrent=0x9000;//StartvalueforthesysTickcounterSysTickReload=0x9000;//ReloadvalueSysTickControl=0x07;//Startandenable或或

每個中斷源在每個中斷源在NVIC在都有共有16個優先級寄存器(0xE000E400-0xE000E41F)。 優先級寄存器被分成4個8的 段表一個獨的中向量的優先級。31

STM3216的16級是最高,15最低。外,以把這個優先級字段分為優先級組和子組 中斷和復控制寄存器(xE000ED0C)中的PRIGROUP[10:8]字段來實現,這不會產生額外的優先級,但有大的中斷可以幫助管理優先級。你可以將4位的優先 段劃分成組和子組。例如PRIGROUP[10:8]值為2 每組有4 級的優先級。現在你可以在你的應用程序代碼里,定義一個高優先級組和一個低優先級組。在一組中,你可以指定分里低,中,和非常高4 正如以上所提到的,沒有提供額外的中斷優先級,但提供了中斷結構的一個更抽象的視圖,當員理大量中斷是這是非常有用的。配置一個外設中斷和配一個Cortex內部異常是非常相似的。//2搶占優先級,2位優先級 //2,子優先級 {}/*ConfigurethePriorityGrouwith1bit*/NVIC_InitStructure.NVIC_IRQChannel=ADC1_2_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; = = //Selectnumberofchannels =sequence2; //andselectchannelstoconvert =sequence3; = //Rewriteon = //Startregularchannel//enableADCinterrupt =0x //SetLEDpinstooutputNVIC->Enable[0]=0x //EnableADCinterruptNVIC->Enable[1]=0x 醒Cortex。會自動進入休眠模式。WFE中斷允許Cortex從它進入休眠模式的地方開始恢復執行。它并沒有跳轉到一SLEEPDEEPCoreSight新的調試系統,稱為CoreSight已經推出。CortexCoreSight調試系統采用了JTAG和串行線接口。STM32運行在低功耗模式下它仍然可以繼續保持運行。這對于標準的JTAG調試來說是一個很大的一步宏單元(ETM)的CoreSight調試系統。結構,在仍然采用相同的低成本硬件的情況下,顯著地提高了STM32的實時調試能力。指令內解決。在過去幾年里這些工具的成本已經急劇下降,現在每個開發人員都有一個JTAG和如果當你遇到復雜的bug時,你可以有使用工具的選擇。于代碼的可移植性和重用來說是一個重大的,推倒重來所花費的時間是不言而喻的。為了滿足新的設計一個新的設計行業標準驅動程序-CMSIS抽象層在此背景下,領先的供應商和工具的公司已經定義了一個新的軟件標準稱為Cortex-M3設備的通用驅動程序庫:Cortex-M3內核的庫和Cortex-M3CMSIS的規范在單片機開發領域創建了一個新的時代。了解了CCMSIS PCBSTM322.0V3.6V的簡單供電。一個內部穩壓器用來為ADC轉換器提供的電源(僅144針。接到ADC空比,最大頻率為25MHz。的時鐘,可以是一個,正弦波或三角波形,只要是50%的占空比。在這兩種情況下的使用RTC,任何程度上,你應該都使用LSE振蕩器。 百為技百為技 網店tt/啟動引腳和編BOOT0BOOT1決定。通過改變啟動模式,器將映射別名不同的區域到底部的內存。這使得我們能夠從用戶,內部SRAM系統內存執行代碼。如果系統內存模式被選擇時STM32始執行一個工廠預編程好的引導程序它允許戶閃存重新編程。上提供跳線以允許同的設置。

啟引2k的SRAM這是必要的,如果你想使用內部的導載序現場升級。如果你計劃使用引導加載,USART1是用于從PC代碼的默認串行接口,所需要添加一個RS2323.4.6最后我們要添加件調試端口以許調試器連接到STM32。CortexCoreSight調試系統支持兩種連接標準:五針JTAG口和2針Cortex串行端口。這兩種配置中都需犧牲GPIO引腳被調試器使。復位后,CortexCPU 默認打開這些引的復用功能, 試。如果你想使用他們,必須對復用功能寄存器進行設置,將它們轉 鐘和PA14端口作為串數據。STM32(AHB0x開始。片上SRAM0xSRAM0x開始,也位于外設位帶區域。最后,所有的Cortex位于它們的標準位置,是從0xE開始的。FLASH器區域是由三個部分組成。首先是用戶FLASH從0X開始。其次是系BOO1固定在這個模式中,開機后系統區會被映射到0x。復位后STM32將開始可以從ST的。這項程序將與引導加載程序通信,可以用來擦除和重新編程用戶射為0x。這使得處于開發中的程序,可以從內部SRAM并執行。這加快了器。FSMC提供了一個從0x 到0x9FFFFFFF的地址范圍。在這個地址范圍內FSMC提片選2和3支持NANDFLASH,片選4支持PC卡。FSMC在后面的章節中討論。STM32 1寄存器組其始地址:然后上表第一列地址就是對應模塊的址,而STM32中每個章節介 只是以移地址的形式給出。這樣寄存器的地址就等于址加上偏移量。如時控制寄存器(RCC_CR)的地址就等于復位和時鐘控(RCC) 地址0x 時配置寄存器(RCC_CFGR)的地址等于復位和時鐘控制(RCC) 偏移地址0x04=0x

標稱8MHz kHz振蕩器。此振蕩器用于實時時鐘和看門狗。 個兩個外部兩個內部振蕩器再加上鎖相環的復雜時鐘樹 部或外部高速振蕩器或內部鎖相環提供。相環可以由內部或外部高速振蕩器驅動。此無需外部振蕩器,STM32也可以運行在72MHz。足之處是,部振蕩器并不是準確的和穩定的8MHz時鐘源。為了使串行通信外或任何精確的計時功能,應使用外部振蕩器。無哪個蕩器被選擇,鎖相環(PLL) 為Cortex推導全速72MHz的時鐘頻率。所有的振蕩器鎖相環(PLL)和總線配的寄運行STM32HSE到。這里寄存器是在STM32的,從STM32里查到。) STM32從內部高速振蕩器運RCC->CR|= //WaituntilHSEstablewhile(!(RCC->CR&0x {;}以被選擇作為CortexCPU的時鐘源。 一旦HSE振蕩器打開,它可以用來驅動RCC->CR|=0x {;}RCC->CR|=0x AHB,APBAHB,APB//EnableclockstotheAHB,APB1andAPB2bussesRCC-AHBENR=0x //ReleaseperipheralresetlineonAPB1andAPB2busesRCC->APB2RSTR=0x void{/*打開HSE振蕩器*//*等待HSEHSEStartUpStatus={/*使能預取指緩沖*//*設置flash器2個等待時鐘周期*//*HCLK=SYSCLK/*PCLK2=HCLK/*PCLK1=HCLK/2*//*PLLCLK=8MHz*9=72MHz*//*打開PLL*//*等待PLL就緒*/{}/*選擇PLL作為系統時鐘源*//*判斷PLL是否已經是系統時鐘源*/{}}}FLASH0<SYSCLK<24MHz024<SYSCLK<48MHz1waitstate48<SYSCLK<72MHz2每個階段各為1個周期長。總線剩下3CortexCPU。這意味著,即使在連續的最大數據傳輸的情況下,DMA =(2APBcycles+2AHBcycles)+2AHBcycles+1AHB=2APBCycles+5AHBRCC->AHBENR|= ;//enabletheDMA義DMA傳輸的整體特征。每個DMA通道由四個寄存器控制。 //configurefor DMA_Channel1->CNDTR=0x000A; //setsizeoftransferTIM2->CR1=0x //startatimerDMA_Channel1->CCR|=0x //starttheDMAtransferwhile(!(DMA->ISR&0x //waittillthetransferends{;}TIM2->CR1= //halttheTIM2->CNT= //CleartheTIM2->CR1= for(index=0;index< //usingthe{}TIM2->CR1= //haltthe}DMA220CPU536根據自己的需要接收或發送數據,而不需要CPU的干預。DMA,CortexCPUADCCPU的ADCSRAMADC數STM32外設不包含任何內部緩沖DMA循環模式,任何大小的內存都可以被用作外設DMA的完成中斷和半完成中斷結合起來提供DMA通道。例如,SPI可以同時在兩個方向上傳輸數據。/*DMA1channel1configuration*/DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;DMA_InitStructure.DMA_MemoryBaseAddr=(u32)&ADCConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=1;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Disable;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;DMA_InitStructure.DMA_Priority=DMA_Priority_High;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;/*EnableDMA1channel1*//*ADC1configuration*/ADC_InitStructure.ADC_ScanConvMode=ENABLE;ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel=1;/*ADC1regularchannel14configuration*//*EnableADC1DMA*//*EnableADC1*/CPU哪些在哪些STM32變種上可用。通用16IO線。16個外部中斷線之一。GPIO16個外部中斷線。百為技百為技 網店tt/每個GPIO端口有個32位寬的配置寄存器,這 寄存器組成一64 為輸入或輸出,而置字段定義了驅動特性:除了夠定義一個端口引腳為輸入或輸出,其 性可以選擇。在輸入情況下,電阻以連接個上拉或下拉電阻。對于輸出,每個端口腳可以被配置為推挽輸出或 輸出腳也可被 一旦該端口的配置已定,些 存器每個引腳都一個鎖定,一旦置位,將防任何相應的配置和模式域的寫入當所有所需的鎖位已經被設置,可以通過對鎖定寄存器的第16 列1,0,1,跟著對相同位的兩次讀將返回0,1進行激活。如鎖已經被成功激活。輸入和輸數據寄存器允許對IO 腳進行端口范圍的。原子位操作可以通過在輸入輸出數據寄存 端口置位復位寄存是一個同樣,寫一個邏輯“1”到低16位將置位相應的端口引腳。第二個位操作寄存器是一

IO//GPF6//GPF7//GPF8//GPF9#defineGPIOF_CRL(*(volatileunsignedint#defineGPIOF_CRH(*(volatileunsignedint#defineGPIOF_ODR(*(volatileunsignedint#defineRCC_APB2ENR(*(volatileunsignedint )void{unsignedinti;}int{intGPIOF_CRL=(GPIOF_CRL&0x00ffffff)| GPIOF_CRH=(GPIOF_CRH&0xffffff00)|0x {{GPIOF_ODR=(GPIOF_ODR&0xfffffc3f)|(1<<i);}}}/*打開LED對應GPIO的時鐘*//*IO端口的工作模式,通用推挽輸出,時鐘為50MHz*/GPIO_InitStructure.GPIO_PinGPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOF,&GPIO_InitStructure);while{/*打開LED1*//*1s*//*關閉LED1*//*打開LED2*//*1s*//*關閉LED2*//*打開LED3*//*1s*//*關閉LED3*//*打開LED4*//*延時1s*//*關閉LED4*/}復用能寄 許你重新映射GPIO端口引 復外設功能。為了增加硬件設計的靈活性,個給的外設能可以被映射到幾個引腳之一。占晚到的高優先級中將搶低優先級占STM32復用功能是映射和調試IO寄存器中控制的。每個用戶外設(USART,CAN,定時器,I2C和SPI)有1位或2位可以映射到幾個不同的PIN組合。一旦復用功引 置寄存器必須用來從IO切換到復用功能。映射寄存器也控制JTAG調端口式(2引腳調試)或 用,在這兩種情況下,未使的 可以用作GPIO。Cortex處理器可以生一個輸出脈沖,目的是從低功耗模式喚一個單獨的微控制器。通常情況下,輸出脈沖將被連接至第二個STM32的喚醒引腳。事 件配置到選定的GPIO引腳的。控制存器包含選擇端口和端口引腳的字段。一 時,設輸出使能位即完成配置。 產生中斷,或上升沿和下降沿都產生中斷。下 中斷線被連接到RTC中斷,USB RTC,電源電壓檢測和USB喚醒提供獨立的中斷向量。 它EXTI 組和線10–15組連接至兩額外中斷向量。EXTI在STM32 為它是一個不需要時鐘的設備它可以被用來把微控制器從STOP模式 是停止的喚醒。EXTI 退等待 STM3216個外部中斷AFIO->EXTICR[0]= //EnableExternalinterruptsourcesEXTI->IMR=0x //EnablewakeupeventsEXTI->EMR= //SelectfallingedgetriggersourcesEXTI->FTSR=0x //SelectRisingedgetriggersourcesEXTI->RTSR=0x //EnableinterruptsourcesintheNVICNVIC->Enable[0]=0x NVIC->Enable[1]= 產生中斷或。軟件也可以通過寫軟件中斷寄存器的相應位強制產生EXTI中斷。/*配置1位搶占優先級,*/NVIC_InitStructure.NVIC_IRQChannel=EXTI9_5_IRQChannel;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;/*KeyEXTILineKeyGPIO引腳*//*KeyEXTILine,下降沿產生中斷*/EXTI_InitStructure.EXTI_Line=EXTI_Line8;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_LineCmd=ENABLE;個的DMA通道,可用于將每個轉換值從結果寄存器傳輸到內存中的緩沖區。1216位結果寄存器中可以是左對式在硬件控制下放置很多ADC處理結果。ADC1DMA支持,它可以自動將結果傳輸到SRAM中用戶自定義注射組結果寄存器是符ADC

制寄存器定義了ADC的操作配置。 =0x005E7003;//SwitchontheADCandenablecontinuousconversionADC1->SQR1=0x0000; //setsequencelengthtooneADC1->SQR2=0x0000; //selectconversiononchannelzeroADC1->SQR3=0x0001; |=0x005E7003;//rewriteon = //Startconversionofregularchannels,enableNVIC->Enable[0]=0x ;//enableADCinterruptNVIC->Enable[1]=0x ;voidADC_IRQHandler{GPIOB->ODR=ADC1->DR<<5;//CopyADCresulttoport}DMA_Channel1->CCR= //Circular//peripheralandmemoryincrement//Loaddestinationaddressintoperipheralregister,GPIOportdataregisterDMA_Channel1->CPAR=(unsignedint)0x //LoadsourceaddressintomemoryregisterDMA_Channel1->CMAR=(unsignedint)0x40010C0C;DMA_Channel1->CNDTR=0x1; //LoadnumberofwordstotransferDMA_Channel1->CCR|=0x ;//EnabletheDMAtransfer在ADC中DMAADC1->CR2|=ADCADC8個額外上封裝上由一個外部引腳提供的。DAC2.4V3.6V的范圍內。12位分辨率的DAC,可用DMADAC均是由一組寄存器控制。可DMA時器觸發輸出(定時器2,4,5,6和7)或控制寄存器中的一個軟件觸發位。于外部負載和電源。各DAC的輸出電壓由方程器。和噪聲發生器一樣,MapX個定時器都有中斷和DMA支持。同的功能。在捕獲模式下,它有輸入濾波器和一個特殊的測量模式,再加上編輸入支持。在比較模式下,它有標準比較功能和加上單脈沖模式的選項。時器計數器可被復位或停止。同時,一個中斷或DMA傳輸可以被觸發。在測量模式下,兩個通道用來自動捕捉波形的周期和占M3->CR1= TIM3->PSC=0x000000FF; //setmaxprescalerTIM3->ARR=0x00000FFF; //setmaxreloadcountTIM3->CCMR1=0x //InputIC1mappedtoTI1TIM3->CCER|=0x //IC1triggersonrisingedgeTIM3->CCMR1|=0x //InputIC2mappedtoTI1TIM3->CCER|=0x //IC2triggersonfallingedgeTIM3->SMCR= //SelectTI1FP1asinput,risingedge//resetstheTIM3->CCER|=0x TIM3->CR1=0x //enablethetimer12被再次觸發,復位計數器,并捕獲的周期值。 或DMA傳輸。 此模式下的周期是由在定時器自動重載寄存器中的值來定義的。占空比的值是由存正如會看到的,幾個定時器可以同步在一起,所以有可能產生多達16個同步信TIM2->CR1=0x;TIM2->PSC=0x000000FF; //setmaxprescalerTIM2->ARR=0x00000FFF; //setmaxreloadcountTIM2->CCMR1=0x //SetmodeTIM2->CCR1=0x000000FF;//Setstart=;CH1=;updateTIM2->EGR=;//enableTIM2->CR1=;//enable在基本的比較和模式下,定時器單元將產生續的輸出波形。每一個定時器都比較通有互補輸出功能。另情況下,它也可以保證的輸出是在一個安全的狀態下。一個也可以觸發一個本地的DMA傳輸。狗可以保持繼續運行以用于喚醒STM32主系統,或執行系統復位。CRC32以太網誤差檢測和校正。CRC單元提供了簡單的三個寄存32CRC校驗。百為技百為技 網店tt/計算時CPU將被擱置。 過數據寄存器讀出的。數據 時候,計算出的CRC會與以前的CRC 容易地算出一定范圍的數據的正確CRC值。一旦CRC 完成,CRC單元可 受CRC單元復位或CRC計算本身影響的。除了有出色的通用外設,STM32還有五種不類型的通信設備。在同一PCB上STM32SPII2C接口對于同模間通信,有一個CAN為方集成間的快速通信,STM323供全通信速率高達18MHzSPISPIAPB2外設總線,速72MHz。下APB1上,它在達36MHz度。位APB1SPII2S(部音頻總線)外設。SPI外設有可編的

機,因它可以與任何其他SPI設備進行通信。件的SPI外設還提供了I2S功能。是特別有用的,尤其是如果你想使用SPIMMC/SD卡時。SPI外設包含了一個被設計來支持多和SD卡接口的硬件CRC單元。I2SI2S外設支持一個三線數字串行接口連接到外部音頻編時鐘信號到外部的編器。這個時鐘信號被固定為256×音頻采樣率。I2SMSBLSBPCM。每個I2S外設與位于APB1的SPI外設共享寄存器和引腳。MCLK引腳為外部編PECPECUSART能夠支持和串口或調制LINIrDA和智能卡。USART對于調制解調器通信和硬件流控制,每個USART有額外的CTS和RTS控制線。之間時,可在低功耗模式運行時采用半雙工NRZ調制。每個USART有一個額外的符合ISO7618-3標準的智能卡模式。任何SPI從機進行通信。CANUSB協議,你應該閱讀伴隨這本書的CAN或USB。USB

溫馨提示

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

評論

0/150

提交評論