久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> STM32 >> 瀏覽文章

對位操作,由別名轉(zhuǎn)換到位的方法以及一些stm32硬件知識

作者:誰心鎖欲   來源:誰心鎖欲   點擊數(shù):  更新時間:2014年07月05日   【字體:
Stm32相對于51復雜了太多,之前自己學習方法不對,所以導致花了時間也沒什么效果,現(xiàn)在工作了自己也知道該怎么來更好學習了,準備花兩周左右看一下stm32中文手冊及固件庫手冊,然后再按照正點原子的不完全手冊結(jié)合這開發(fā)板來學習,也記下學習筆記總結(jié)學習、加深記憶。

 

此次的學習是以STM32F103RBT6作為核心MCU的,其有128k flash20k sram2spi3個串口、1usb1can212位的adcrtc以及51個可用的IO口。

筆記一 存儲器及總線架構(gòu)

1.Stm32主系統(tǒng)由以下部分構(gòu)成:

 四個驅(qū)動單元:  Cortex??-M3內(nèi)核DCode總線(D-bus),和系統(tǒng)總線(S-bus)  通用DMA1和通用DMA2

 四個被動單元  內(nèi)部SRAM

 內(nèi)部閃存存儲器

 FSMC

 AHBAPB的橋(AHB2APBx),它連接所有的APB設備。

2.在每一次復位以后,所有除SRAMFLITF以外的外設都被關閉,在使用一個外設之前,必須設置寄存器RCC_AHBENR來打開該外設的時鐘。所以以后編程的時候要記住設置RCC_AHBENR來使能外設。

3.memory map是很重要的,以前一直沒有引起足夠的重視,程序存儲器、數(shù)據(jù)存儲器、寄存器和輸入輸出端口被組織在同一個4GB的線性地址空間內(nèi)

4. 兩個位段(bit-band)區(qū),下面的映射公式給出了別名區(qū)中的每個字是如何對應位帶區(qū)的相應位的(相當于51單片機中的P0口操作轉(zhuǎn)換到P0^1的操作)

bit_word_addr = bit_band_base + (byte_offset×32) + (bit_number×4)

其中: bit_word_addr是別名存儲器區(qū)中字的地址,它映射到某個目標位。

bit_band_base是別名區(qū)的起始地址。

byte_offset是包含目標位的字節(jié)在位段里的序號

 bit_number是目標位所在位置(0-31)

例子: 下面的例子說明如何映射別名區(qū)中SRAM地址為0x20000300的字節(jié)中的位2 0x22006008 = 0x22000000 + (0x300×32) + (2×4). 0x22006008地址的寫操作與對SRAM中地址0x20000300字節(jié)的位2執(zhí)行讀--寫操作有著相同的效果。

5.boot0boot1可以設置stm32啟動模式

 

啟動模式選擇引腳       啟動模式          說明

BOOT1 BOOT0 

               主閃存存儲器    主閃存存儲器被選為啟動區(qū)域

               系統(tǒng)存儲器       系統(tǒng)存儲器被選為啟動區(qū)域

               內(nèi)置SRAM        內(nèi)置SRAM被選為啟動區(qū)域

當使用ISP下載的時候,選擇第三種啟動方式。

 

筆記二  CRC計算單元

對于本章,不知道要用到什么地方,不過等以后遇到再說。

CRC用兩個數(shù)據(jù)寄存器和一個控制寄存器,一個數(shù)據(jù)寄存器用來做計算寄存器,對其寫操作作為輸入寄存器,輸入計算數(shù)據(jù);對其讀操作作為輸出寄存器,輸出計算結(jié)果。另一個數(shù)據(jù)寄存器只有低8位有效,可以用來寄存數(shù)據(jù);控制寄存器只有0位有效,作為reset位,只能寫1,硬件自動清零。

 

筆記三  電源控制及管理

      之前學51什么的,電源啊時鐘呀都只有一個不需要設置選擇,后來工作接觸了增強型8051后了解了多個時鐘電源后再來學32已經(jīng)不像之前那樣對這么多的時鐘電源感到畏懼了,呵呵。。Stm32的工作電壓(vdd)在2-3.6v,可以通過內(nèi)置的電壓調(diào)節(jié)器提供所需的1.8v電源。當主電源(vdd)掉電后,可以通過VBAT引腳為實時時鐘(RTC)和備份寄存器提供電源,當主電路中沒有設計使用外部電源時,則必須將VBAT連接到VDD引腳上面。還有一點需注意,VDDVBAT在某些情況下會存在注入電流,所以在外部VBA和電源之間要接一個低壓降二極管。

       為了提高轉(zhuǎn)換精度,stm32adc提供了一個獨立的電源供電,過濾和屏蔽來自印刷電路板上面的毛刺干擾。

       電壓調(diào)節(jié)器總是使能的在復位后,有運轉(zhuǎn)模式、停止模式、待機模式三種工作模式。

       Stm32中有一個完整的上電復位(POR)和掉電復位電路(PDR),只要供電電壓達到2v則能正常工作。當VDD/VDDA低于VPORVPDR時則保持為復位狀態(tài)。對于可編程電壓檢測器(PVD可以利用PVDVDD電壓與電源控制寄存器(PWR_CR)中的PLS[2:0]位進行比較來監(jiān)控電源,這幾位選擇監(jiān)控電壓的閥值。

       因為之前研究過silab公司出的低功耗無線芯片si100x(增強型8051內(nèi)核的),所以對stm32的低功耗模式就比較容易理解了,32有睡眠模式、停止模式和待機模式三種低功耗模式,可以通過不同的寄存器操作去實現(xiàn),這個就不詳細說了,了解了大概,以后需要用的時候再詳細研究吧。32還提供了一個低功耗模式下的自動喚醒模式,主要依靠rtc(和si100x差不多的,不過si100x還要強大的多)。

       對寄存器什么的就等以后用到的時候再查閱相關資料吧,相信那樣記憶也會更深刻。

 

筆記四  復位和時鐘電路

      32芯片支持三種復位形式,系統(tǒng)復位、上電復位和備份區(qū)域復位。

除了時鐘控制器的RCC_CSR寄存器中的復位標志位和備份區(qū)域中的寄存器以外,系統(tǒng)復位將復位所有寄存器至它們的復位狀態(tài)。

當發(fā)生以下任一事件時,產(chǎn)生一個系統(tǒng)復位:

1. NRST引腳上的低電平(外部復位)

2. 窗口看門狗計數(shù)終止(WWDG復位)

3. 獨立看門狗計數(shù)終止(IWDG復位)

4. 軟件復位(SW復位)

5. 低功耗管理復位

可通過查看RCC_CSR控制狀態(tài)寄存器中的復位狀態(tài)標志位識別復位事件來源。還存在軟件復位和低功耗復位,詳細參考中文手冊吧。

 

當以下事件中之一發(fā)生時,產(chǎn)生電源復位:

1. 上電/掉電復位(POR/PDR復位)

2. 從待機模式中返回

電源復位將復位除了備份區(qū)域外的所有寄存器。

 

備份區(qū)域擁有兩個專門的復位,它們只影響備份區(qū)域

當以下事件中之一發(fā)生時,產(chǎn)生備份區(qū)域復位。

 1. 軟件復位,備份區(qū)域復位可由設置備份域控制寄存器 (RCC_BDCR)中的BDRST位產(chǎn)生。

2. VDDVBAT兩者掉電的前提下,VDDVBAT上電將引發(fā)備份區(qū)域復位。

 

時鐘 有三種不同的時鐘源可以被用來驅(qū)動系統(tǒng)時鐘(SYSCLK

     HSI振蕩器時鐘  HSE振蕩器時鐘  PLL時鐘

這些設備有以下2種二級時鐘源:

 40kHz低速內(nèi)部RC,可以用于驅(qū)動獨立看門狗和通過程序選擇驅(qū)動RTCRTC用于從停機/待機模式下自動喚醒系統(tǒng)。

 32.768kHz低速外部晶體也可用來通過程序選擇驅(qū)動RTC(RTCCLK) 當不被使用時,任一個時鐘源都可被獨立地啟動或關閉,由此優(yōu)化系統(tǒng)功耗。

高速外部時鐘由(HSE)以下兩種時鐘源組成:

     HSE外部晶體/陶瓷諧振器  HSE用戶外部時鐘

為了減少時鐘輸出的失真和縮短啟動穩(wěn)定時間,晶體/陶瓷諧振器和負載電容器必須盡可能地靠近振蕩器引腳。負載電容值必須根據(jù)所選擇的振蕩器來調(diào)整。外部時鐘信號(50%占空比的方波、正弦波或三角波)必須連到SOC_IN引腳,同時保證OSC_OUT引腳懸空。

還有HSI時鐘、PLL時鐘、LSE時鐘、LSI時鐘、時鐘安全選擇、RTC時鐘、看門狗時鐘等等也應該理解的這里就不一一做筆記了,反正以后遇到了后再來查閱。

       關于系統(tǒng)時鐘的選擇,當系統(tǒng)復位的時候HIS被默認選為系統(tǒng)時鐘,當其他時鐘源被選為系統(tǒng)時鐘之前,不能被停止。只有當目標時鐘源準備就緒了(經(jīng)過啟動穩(wěn)定階段的延遲或PLL穩(wěn)定),從一個時鐘源到另一個時鐘源的切換才會發(fā)生。在被選擇時鐘源沒有就緒時,系統(tǒng)時鐘的切換不會發(fā)生。直至目標時鐘源就緒,才發(fā)生切換。 在時鐘控制寄存器(RCC_CR)里的狀態(tài)位指示哪個時鐘已經(jīng)準備好了,哪個時鐘目前被用作系統(tǒng)時鐘。

       微控制器允許輸出時鐘信號到外部MCO引腳。 相應的GPIO端口寄存器必須被配置為相應功能。

以下四個時鐘信號可被選作MCO時鐘:

     SYSCLK  HSI  HSE  2PLL時鐘

時鐘的選擇由時鐘配置寄存器(RCC_CFGR)中的MCO[2:0]位控制。

 

筆記五  GPIOAFIO(復用功能I/O

相當于51單片機I/O口來說,stm32I/O就要復雜得多了,不僅有多種輸入輸出方式,還需要配置不同的寄存器來達到相應的功能。

 

(一)       每個 GPIO端口有兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH,兩個32位數(shù)據(jù)寄存器)(GPIOx_IDRGPIOx_ODR),一個32為置位/復位寄存器(GPIOx_BSRR),一個16位復位寄存器(GPIOx_BRR)及一個32為鎖定寄存器(GPIOx_LCKR)。可以將其配置如下模式:

 輸入浮空、 輸入上拉 、 輸入下拉 、 模擬輸入

 開漏輸出 、 推挽式輸出、 推挽式復用功能、 開漏復用功能

可以按照下面的表格對其配置:

表一 端口位配置表



    表二 輸出模式位

 

復位期間和剛復位后,復用功能未開啟,I/O口被配置為浮空輸入模式(CNFx[1:0]=01b,MODEx[1:0]=00b)。復位后JTAG相關的引腳被置位上拉或者下拉模式。

所有的端口都可以配置為外部中斷模式,不過首先必須配置為輸入模式。對于復用功能現(xiàn)在不怎么了解怎么用,可能今天頭腦不清晰的原因,不過先不管吧,等以后碰到再說。對gpio還可以進行重新映射以及鎖定(即使端口位的配置在下一次復位之前不能改變),關于對輸入輸出等等功能的配置等以及寄存器以后用的時候一點點的積累吧,現(xiàn)在記住也沒用。

關閉窗口

相關文章

主站蜘蛛池模板: 亚洲日韩中文字幕 | 中文字幕一区二区视频 | 日韩欧美一二三区 | 91精品国产综合久久久久蜜臀 | 97色伦网| 国产精品免费在线 | 亚洲精品黑人 | 欧美精品福利视频 | 男人的天堂在线视频 | 中文字幕一区二区三区四区五区 | 成人天堂 | 欧美国产日韩成人 | 色综合一区二区三区 | 国产一级免费在线观看 | 99精品国产一区二区青青牛奶 | 久久综合一区二区 | 激情五月综合网 | 精品伊人| 五月花丁香婷婷 | 免费午夜视频 | 久久久久久久一区二区三区 | 久久在线 | 久久久片 | 黄色一级大片视频 | 久久精品国产亚洲一区二区 | 国产精品久久久久一区二区三区 | 久久精品在线 | 99精品国产一区二区青青牛奶 | 男女视频在线观看 | 国产真实乱全部视频 | 国产精品mv在线观看 | 亚洲在线视频 | 91毛片在线看 | 国产九九九九 | 99精品国自产在线 | 精品久久久久一区二区国产 | 一区二区精品视频 | 亚洲成人三区 | 日韩a在线 | 精品久久久久久久久久 | 99久久日韩精品免费热麻豆美女 |