查看: 2946|回復: 0
打印 上一主題 下一主題

帶你走進(jìn)STM32的世界

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2017-8-7 14:16:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: 刪帖嗎2
STM32F10xx時(shí)鐘系統框圖:時(shí)鐘是整個(gè)系統的脈搏
下圖是STM32F10xx時(shí)鐘系統的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計算出各部分的時(shí)鐘頻率。
STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標出;圖中間的時(shí)鐘監視系統(CSS)是在很多ST7的單片機中就出現的安全設置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據前一級的APB預分頻器的輸出自動(dòng)選擇,當APB預分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當APB預分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。
STM32上很多管腳功能可以重新映射
STM32上有很多I/O口,也有很多的內置外設,為了節省引出管腳,這些內置外設都是與I/O口共用引出管腳,ST稱(chēng)其為I/O管腳的復用功能,相信這點(diǎn)大家都很清楚,因為基本上所有單片機都是這么做的。但不知有多少人知道,很多復用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復用功能的引出腳位是可通過(guò)程序改變的。
這一功能的直接好處是,PCB電路板的設計人員可以在需要的情況下,不必把某些信號在板上繞一大圈完成聯(lián)接,方便了PCB的設計同時(shí)潛在地減少了信號的交叉干擾。復用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復用功能時(shí),虛擬地增加復用功能的數量。例如,STM32上最多有3個(gè)USART接口,當你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現更多的UART接口。
下述復用功能的引出腳具有重映射功能:
- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口
- CAN模塊
- JTAG調試接口
- 大部分定時(shí)器的引出接口
- 大部分USART的引出接口
- I2C1的引出接口
- SPI1的引出接口
詳細內容請看STM32的技術(shù)參考手冊。
請務(wù)必記。喝绻褂昧巳我庖环N重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。
下圖示出了部分復用功能引出腳的重映射結果:
【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子
硬件連接:串口線(xiàn)連至板子的UART-0端口。超級終端設置為:
Bits Per seconds: 115200
Data bits: 8
Parity: none
Stop bits: 1
Flow control Hardware
板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。
根據超級終端上的提示,一次輸入年,月,日,時(shí),分,秒
1月就輸入01,10月直接輸入10;同理3號就輸入03)
隨后當前的時(shí)間就顯示到了超級終端上,并且每秒刷新。
沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區域有被設置過(guò)時(shí)間的標志,不再進(jìn)入時(shí)間設置階段,而是直接到時(shí)間顯示間斷,在超級終端上,每秒刷新。
當然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線(xiàn)帽中的從下往上數的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區域中的記號,一樣直接進(jìn)入時(shí)間顯示。因為斷電后,back up區域由電池供電,其中記錄的記號不會(huì )由于系統掉電而消失。
【演示實(shí)例】使用EK-STM32F板測量STM32的功耗
這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評估板測量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(xiàn)(VDD、VREF+和VDDA)測量功耗。
本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶(hù)可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶(hù)選好的配置存到后備寄存器,再次復位后STM32將進(jìn)入之前選定的模式。
附件包中包含了一個(gè)說(shuō)明文件,詳細說(shuō)明了如何設置板上的跳線(xiàn)和操作的過(guò)程。
STM32 GPIO的十大優(yōu)越功能綜述
前幾天Hotpower邀請大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。
下面我就在做個(gè)拋磚引玉,根據ST手冊上的內容,簡(jiǎn)單地綜述一下GPIO的功能:
一、共有8種模式,可以通過(guò)編程選擇:
1. 浮空輸入
2. 帶上拉輸入
3. 帶下拉輸入
4. 模擬輸入
5. 開(kāi)漏輸出——(此模式可實(shí)現hotpower說(shuō)的真雙向IO)
6. 推挽輸出
7. 復用功能的推挽輸出
8. 復用功能的開(kāi)漏輸出
模式7和模式8需根據具體的復用功能決定。
二、專(zhuān)門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現對GPIO口的原子操作,即回避了設置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設置或清除I/O端口的操作不會(huì )被中斷處理打斷而造成誤動(dòng)作。
三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統靈活設計。
四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。
五、所有I/O口兼容CMOS和TTL,多數I/O口兼容5V電平。
六、大電流驅動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。
七、具有獨立的喚醒I/O口。
八、很多I/O口的復用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。
九、GPIO口的配置具有上鎖功能,當配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復位才能解鎖。此功能非常有利于在程序跑飛的情況下保護系統中其他的設備,不會(huì )因為某些I/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。
十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現真正的雙向I/O功能。
STM32內置參照電壓的使用
每個(gè)STM32芯片都有一個(gè)內部的參照電壓,相當于一個(gè)標準電壓測量點(diǎn),在芯片內部連接到ADC1的通道17。
根據數據手冊中的數據,這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。
不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號,Vref+引到了片外,引腳名稱(chēng)為Vref+;64腳和小于64腳的型號,Vref+在芯片內部與VCC信號線(xiàn)相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。
ADC的外部參考電壓波動(dòng),或因為Vref+在芯片內部與VCC相連而VCC變化的情況下,如果對于A(yíng)DC測量的準確性要求不高時(shí),可以使用這個(gè)內部參照電壓得到ADC測量的電壓值。
具體方法是在測量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測量數值,記為ADrefint;再讀出要測量通道的ADC轉換數值,記為ADchx;則要測量的電壓為:
Vchx = Vrefint * (ADchx/ADrefint)
其中Vrefint為參照電壓=1.20V。
上述方法在使用內置溫度傳感器對因為溫度變化,對系統參數進(jìn)行補償時(shí)就十分有效。
STM32的ADC輸入通道配置
STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對應的通道不完全重疊。
下圖是STM32F103CDE數據手冊中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通
道。

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页