女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

電子發(fā)燒友網(wǎng)>LEDs>LED照明>不可見(jiàn)光應(yīng)用 - 猴年走進(jìn)“多彩”的LED世界

不可見(jiàn)光應(yīng)用 - 猴年走進(jìn)“多彩”的LED世界

上一頁(yè)123全文

本文導(dǎo)航

收藏

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

評(píng)論

查看更多

相關(guān)推薦

LED產(chǎn)品應(yīng)用大突破 創(chuàng)意設(shè)計(jì)盤(pán)點(diǎn)

其實(shí)除了平常所見(jiàn)毫無(wú)亮點(diǎn)的應(yīng)用外,還有很多別具一格的創(chuàng)意應(yīng)用,下面帶你走進(jìn)LED另類(lèi)應(yīng)用的世界
2014-09-10 09:05:011150

美輪美奐 家居創(chuàng)意LED燈產(chǎn)品

美輪美奐 家居創(chuàng)意LED燈產(chǎn)品,這是一系列創(chuàng)意家居用品LED燈,有了它們,會(huì)讓我們的生活更加豐富多彩,一起來(lái)欣賞下吧。
2011-11-30 17:19:411902

LED——世界未來(lái)之光

字。Sharenow說(shuō),相當(dāng)于60W的LED燈泡上市后,Switch相當(dāng)于75W白熾燈的LED將會(huì)在11月上市,100W的模型將在2012年2月份發(fā)布。Sharenow 說(shuō):“這些燈泡終將改變世界!”
2011-09-23 16:29:14

世界著名的HiFi功放都有哪些?

世界著名的HiFi功放都有哪些?
2022-03-28 11:26:27

走進(jìn)MEasy的世界:基于STM32MP1的IOT參考設(shè)計(jì)

`走進(jìn)MEasy的世界:基于STM32MP1的IOT參考設(shè)計(jì) 在萬(wàn)物互聯(lián)快速發(fā)展的趨勢(shì)下,板卡處理器性能、內(nèi)存大小、接口外設(shè)等都是人們非常關(guān)心的硬件參數(shù),但是如何讓硬件的作用實(shí)現(xiàn)它的功能最大化,一套
2020-02-24 15:46:30

走進(jìn)嵌入式

零基礎(chǔ)要怎么樣學(xué)習(xí)嵌入式希望可以通過(guò)這一篇帖子讓大家走進(jìn)嵌入式,對(duì)嵌入式的學(xué)習(xí)不再那么陌生。嵌入式Linux工程師的學(xué)習(xí)需要具備一定的C語(yǔ)言基礎(chǔ),因此面對(duì)許多朋友只是在大一或者大二學(xué)習(xí)過(guò)C(還不
2022-02-23 07:29:56

Accessory Shield學(xué)習(xí)4:多彩LED

學(xué)會(huì)了如何發(fā)聲,下來(lái)就要開(kāi)始學(xué)如何發(fā)光;雖然一開(kāi)始在按鍵掃描那章有看到LED閃爍,但,,,,那真的太簡(jiǎn)單了。本章我們學(xué)習(xí)高大上的多彩LED。原理大放送:多彩LED又稱為RGB燈,內(nèi)置紅(R)、綠(G
2016-03-28 14:49:55

BakeBit - LED-Bar+ Light Sensor,完成外界亮度控制led燈效果

BakeBit - LED-Bar是一個(gè)多彩led模塊,模塊使用了五個(gè)內(nèi)部集成了Ws2812控制芯片的多彩LED,每個(gè)LED內(nèi)部有R、G、B三個(gè)發(fā)光二極管。Ws2812控制芯片串行讀取控制信號(hào),并從
2017-02-21 17:45:01

HBO超現(xiàn)實(shí)VR體驗(yàn)帶你走進(jìn)西部世界 年度最期待的情景模式與現(xiàn)實(shí)世界的結(jié)合!

祝我們逛得開(kāi)心。  下午2點(diǎn)30分,我舒服地坐在《西部世界》展臺(tái)的沙發(fā)上,服務(wù)員走過(guò)來(lái),陪我走進(jìn)這段神秘的虛擬現(xiàn)實(shí)體驗(yàn)。她的做法就像是,《西部世界》是真實(shí)的存在,而不是電視劇。  她再次與我確認(rèn),我
2016-10-24 10:57:50

HarmonyOS IoT首著,走進(jìn)萬(wàn)物互聯(lián)的世界

無(wú)邊際的設(shè)備網(wǎng)絡(luò),除了手機(jī),還包括平板、電視和海量可穿戴設(shè)備。為了讓廣大技術(shù)開(kāi)發(fā)者由淺入深,逐步構(gòu)建HarmonyOS(鴻蒙操作系統(tǒng))硬件知識(shí)體系,實(shí)現(xiàn)IoT設(shè)備開(kāi)發(fā),讓鴻蒙系統(tǒng)更快地走進(jìn)萬(wàn)物互聯(lián)
2021-06-16 16:45:05

HarmonyOS IoT首著,走進(jìn)萬(wàn)物互聯(lián)的世界

無(wú)邊際的設(shè)備網(wǎng)絡(luò),除了手機(jī),還包括平板、電視和海量可穿戴設(shè)備。為了讓廣大技術(shù)開(kāi)發(fā)者由淺入深,逐步構(gòu)建HarmonyOS(鴻蒙操作系統(tǒng))硬件知識(shí)體系,實(shí)現(xiàn)IoT設(shè)備開(kāi)發(fā),讓鴻蒙系統(tǒng)更快地走進(jìn)萬(wàn)物互聯(lián)的世界
2021-06-16 17:08:43

PSoC 4試用+第一個(gè)項(xiàng)目:PWM控制多彩LED輸出

,做了一個(gè)LED多彩燈!把我用的文檔也分享給大家吧!其實(shí)官網(wǎng)上都有!使用心得:總體感覺(jué)有很多東西都不需要你自己去寫(xiě)!比如PWM,電路搭建好后它會(huì)自動(dòng)給你生成程序文件!CLOCK也是一樣!感覺(jué)和STM32
2013-10-18 00:13:45

SH381同步多彩LED驅(qū)動(dòng)集成電路相關(guān)資料分享

SH-381它采用DIP-8與SOP-8兩種封裝形式。是采用CMOS工藝制造的三路多模式多彩同步LED閃光集成電路,配合高亮度紅、綠、藍(lán)色發(fā)光二極管可產(chǎn)生絢麗多彩的變色光效果。
2021-04-28 06:14:21

labview學(xué)習(xí)走進(jìn)盲區(qū),期待您的指點(diǎn)

學(xué)習(xí)labview斷斷續(xù)續(xù)將近一個(gè)月了,基礎(chǔ)知識(shí)都學(xué)習(xí)了一遍,現(xiàn)在開(kāi)始看別人的程序以及一些高級(jí)編程的書(shū)籍,感覺(jué)還有好多好多都不懂,就是那種高深點(diǎn)不懂,基礎(chǔ)的一看就會(huì)的狀態(tài)。感覺(jué)現(xiàn)在的學(xué)習(xí)走進(jìn)了盲區(qū),希望高手們結(jié)合以前的學(xué)習(xí)過(guò)程指點(diǎn)下在下,感激不盡!
2013-04-06 22:34:13

“數(shù)字世界”基本的工作原理

而且可以不依賴人類(lèi)自身的可以自動(dòng)運(yùn)行的數(shù)字世界,而計(jì)算機(jī)則是這個(gè)數(shù)字世界的基石。隨著計(jì)算機(jī)應(yīng)用的普及和深入,這個(gè)數(shù)字世界的能力越來(lái)越強(qiáng)大,形式也越來(lái)越豐富多彩。所以,計(jì)算機(jī)的誕生意味著現(xiàn)代意義下完
2020-07-06 08:34:53

《從零開(kāi)始走進(jìn)FPGA世界》中的流水燈程序是不是錯(cuò)了啊?

首先clk_design.v 模塊產(chǎn)生的使能時(shí)鐘頻率不是10Hz,其次led_display.v 模塊的遞增方式也無(wú)法產(chǎn)生流水燈效果啊?
2015-08-20 09:40:39

【GoKit申請(qǐng)】多彩智能云燈

本帖最后由 andy_wsj 于 2015-4-27 11:31 編輯 項(xiàng)目名稱:多彩智能云燈市場(chǎng)觀察: wifi聯(lián)網(wǎng)控制的LED最早的項(xiàng)目查到出現(xiàn)在澳大利亞,是一款比較新穎的產(chǎn)品。 市面常見(jiàn)
2015-04-27 11:26:22

【VEML6040環(huán)境顏色檢測(cè)試用體驗(yàn)】感受多彩世界——Vishay VEML6040 環(huán)境顏色檢測(cè)開(kāi)發(fā)套件評(píng)測(cè)一

感受多彩世界——Vishay VEML6040 環(huán)境顏色檢測(cè)開(kāi)發(fā)套件評(píng)測(cè)近日,世平集團(tuán)推出基于Vishay VEML 6040 ,藝術(shù)感超強(qiáng)的環(huán)境顏色檢測(cè)方案。此方案包含了Vishay 公司
2017-03-25 12:41:24

【廣東龍芯2K500先鋒板試用體驗(yàn)】點(diǎn)亮RGB多彩發(fā)光板

LED很相似。1.2 龍芯2K0500開(kāi)發(fā)板龍芯2K0500開(kāi)發(fā)板的IO擴(kuò)展口上預(yù)留了PWM的引腳,具體如下圖:這里使用PWM0、PWM1、PWM2三個(gè)引腳連接到多彩發(fā)光板,連接關(guān)系如下:10號(hào)針
2023-01-30 19:08:15

什么是“PSoC世界

你好朋友們,我正在張貼一個(gè)視頻鏈接,它將簡(jiǎn)要地介紹什么是“PSoC世界”。http://Visual.CyPress .com /視頻庫(kù)/搜索/PSoC+世界/我想發(fā)布許多其他的視頻鏈接,促進(jìn)
2019-07-24 06:51:32

從零開(kāi)始走進(jìn)FPGA-例程匯總

從零開(kāi)始走進(jìn)FPGA-例程匯總
2013-08-27 10:03:03

從零開(kāi)始走進(jìn)FPGA世界

從零開(kāi)始走進(jìn)FPGA世界
2020-03-12 13:11:17

從零開(kāi)始走進(jìn)FPGA世界 V2.0【轉(zhuǎn)】

` 本帖最后由 普萊斯隊(duì)長(zhǎng) 于 2013-3-3 09:07 編輯 從零開(kāi)始走進(jìn)FPGA,總結(jié)我大學(xué)FPGA所學(xué),并不能把您帶到多高的深度,只為將您帶進(jìn)FPGA世界,希望能給你一點(diǎn)幫助,有
2012-08-10 11:03:44

你好,放大器 ~帶你走進(jìn)運(yùn)放的世界 快速上手設(shè)計(jì)運(yùn)放電路

你好,放大器 ~帶你走進(jìn)運(yùn)放的世界 快速上手設(shè)計(jì)運(yùn)放電路
2015-11-20 21:19:58

分析一線公司當(dāng)前產(chǎn)品,看LED世界走向

分析一線公司當(dāng)前產(chǎn)品,看LED世界走向
2021-06-01 07:08:32

廈門(mén)多彩光電子科技有限公司招聘LED技術(shù)員

針對(duì)客戶提出的各參數(shù)做出相應(yīng)的配比; 3.對(duì)新的原材料進(jìn)行試驗(yàn),降低成本等!職位要求1、國(guó)家重點(diǎn)大學(xué)理工科專業(yè)畢業(yè)或有LED行業(yè)相關(guān)工作經(jīng)驗(yàn)一年以上; 2、能吃苦耐勞,為人誠(chéng)肯、好學(xué);廈門(mén)多彩
2013-09-24 09:55:38

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

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

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

STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。STM32上很多管腳功能可以重新映射STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。下述復(fù)用功能的引出腳具有重映射功能:- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口- CAN模塊- JTAG調(diào)試接口- 大部分定時(shí)器的引出接口- 大部分USART的引出接口- I2C1的引出接口- SPI1的引出接口詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子硬件連接:串口線連至板子的UART-0端口。超級(jí)終端設(shè)置為:Bits Per seconds: 115200Data bits: 8Parity: noneStop bits: 1Flow control Hardware板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(VDD、VREF+和VDDA)測(cè)量功耗。本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線和操作的過(guò)程。STM32 GPIO的十大優(yōu)越功能綜述前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:一、共有8種模式,可以通過(guò)編程選擇:1. 浮空輸入2. 帶上拉輸入3. 帶下拉輸入4. 模擬輸入5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)6. 推挽輸出7. 復(fù)用功能的推挽輸出8. 復(fù)用功能的開(kāi)漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。二、專門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。七、具有獨(dú)立的喚醒I/O口。八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。STM32內(nèi)置參照電壓的使用每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:Vchx = Vrefint * (ADchx/ADrefint)其中Vrefint為參照電壓=1.20V。上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。STM32的ADC輸入通道配置STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓: 關(guān)于STM32 ADC速度的問(wèn)題STM32F103xx系列稱為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱為Performance Line。STM32F101xx系列稱為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱為Access Line。根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和: 即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期在STM32中,ADC的采樣時(shí)間是由用戶程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇: 1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。STM32內(nèi)置CRC模塊的使用所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1寫(xiě)成16進(jìn)制就是:0x04C11DB7使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪問(wèn)的不同物理寄存器。有幾點(diǎn)需要說(shuō)明:1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。例如:如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63STM32中定時(shí)器的時(shí)鐘源STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。STM32中外部中斷與外部事件這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號(hào)線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套。圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋€(gè)單脈沖,輸出到芯片中的其它功能模塊。在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。在圖上部的APB總線和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪問(wèn)各個(gè)功能模塊,這里就不再贅述了。STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。南寧STM32技術(shù)實(shí)訓(xùn)提升QQ2532176025這是STM32技術(shù)參考手冊(cè)中的一頁(yè):在STM32中如何配置片內(nèi)外設(shè)使用的IO端口首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
2016-09-14 10:58:12

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

STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。STM32上很多管腳功能可以重新映射STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。下述復(fù)用功能的引出腳具有重映射功能:- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口- CAN模塊- JTAG調(diào)試接口- 大部分定時(shí)器的引出接口- 大部分USART的引出接口- I2C1的引出接口- SPI1的引出接口詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子硬件連接:串口線連至板子的UART-0端口。超級(jí)終端設(shè)置為:Bits Per seconds: 115200Data bits: 8Parity: noneStop bits: 1Flow control Hardware板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(VDD、VREF+和VDDA)測(cè)量功耗。本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線和操作的過(guò)程。STM32 GPIO的十大優(yōu)越功能綜述前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:一、共有8種模式,可以通過(guò)編程選擇:1. 浮空輸入2. 帶上拉輸入3. 帶下拉輸入4. 模擬輸入5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)6. 推挽輸出7. 復(fù)用功能的推挽輸出8. 復(fù)用功能的開(kāi)漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。二、專門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。七、具有獨(dú)立的喚醒I/O口。八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。STM32內(nèi)置參照電壓的使用每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:Vchx = Vrefint * (ADchx/ADrefint)其中Vrefint為參照電壓=1.20V。上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。STM32的ADC輸入通道配置STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓: 關(guān)于STM32 ADC速度的問(wèn)題STM32F103xx系列稱為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱為Performance Line。STM32F101xx系列稱為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱為Access Line。根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和: 即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期在STM32中,ADC的采樣時(shí)間是由用戶程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇:1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。STM32內(nèi)置CRC模塊的使用所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1寫(xiě)成16進(jìn)制就是:0x04C11DB7使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪問(wèn)的不同物理寄存器。有幾點(diǎn)需要說(shuō)明:1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。例如:如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63STM32中定時(shí)器的時(shí)鐘源STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。STM32中外部中斷與外部事件這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號(hào)線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套。圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋€(gè)單脈沖,輸出到芯片中的其它功能模塊。在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。在圖上部的APB總線和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪問(wèn)各個(gè)功能模塊,這里就不再贅述了。STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。在STM32中如何配置片內(nèi)外設(shè)使用的IO端口首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
2017-10-07 11:44:54

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

STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。STM32上很多管腳功能可以重新映射STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。下述復(fù)用功能的引出腳具有重映射功能:- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口- CAN模塊- JTAG調(diào)試接口- 大部分定時(shí)器的引出接口- 大部分USART的引出接口- I2C1的引出接口- SPI1的引出接口詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子硬件連接:串口線連至板子的UART-0端口。超級(jí)終端設(shè)置為:Bits Per seconds: 115200Data bits: 8Parity: noneStop bits: 1Flow control Hardware板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(VDD、VREF+和VDDA)測(cè)量功耗。本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線和操作的過(guò)程。STM32 GPIO的十大優(yōu)越功能綜述前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:一、共有8種模式,可以通過(guò)編程選擇:1. 浮空輸入2. 帶上拉輸入3. 帶下拉輸入4. 模擬輸入5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)6. 推挽輸出7. 復(fù)用功能的推挽輸出8. 復(fù)用功能的開(kāi)漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。二、專門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。七、具有獨(dú)立的喚醒I/O口。八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。STM32內(nèi)置參照電壓的使用每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:Vchx = Vrefint * (ADchx/ADrefint)其中Vrefint為參照電壓=1.20V。上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。STM32的ADC輸入通道配置STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓: 關(guān)于STM32 ADC速度的問(wèn)題STM32F103xx系列稱為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱為Performance Line。STM32F101xx系列稱為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱為Access Line。根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和: 即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期在STM32中,ADC的采樣時(shí)間是由用戶程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇:1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。STM32內(nèi)置CRC模塊的使用所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1寫(xiě)成16進(jìn)制就是:0x04C11DB7使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪問(wèn)的不同物理寄存器。有幾點(diǎn)需要說(shuō)明:1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。例如:如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63STM32中定時(shí)器的時(shí)鐘源STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。STM32中外部中斷與外部事件這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號(hào)線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套。圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋€(gè)單脈沖,輸出到芯片中的其它功能模塊。在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。在圖上部的APB總線和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪問(wèn)各個(gè)功能模塊,這里就不再贅述了。STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。在STM32中如何配置片內(nèi)外設(shè)使用的IO端口首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
2017-10-11 09:30:36

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

STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。STM32上很多管腳功能可以重新映射STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。下述復(fù)用功能的引出腳具有重映射功能:- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口- CAN模塊- JTAG調(diào)試接口- 大部分定時(shí)器的引出接口- 大部分USART的引出接口- I2C1的引出接口- SPI1的引出接口詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子硬件連接:串口線連至板子的UART-0端口。超級(jí)終端設(shè)置為:Bits Per seconds: 115200Data bits: 8Parity: noneStop bits: 1Flow control Hardware板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(VDD、VREF+和VDDA)測(cè)量功耗。本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線和操作的過(guò)程。STM32 GPIO的十大優(yōu)越功能綜述前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:一、共有8種模式,可以通過(guò)編程選擇:1. 浮空輸入2. 帶上拉輸入3. 帶下拉輸入4. 模擬輸入5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)6. 推挽輸出7. 復(fù)用功能的推挽輸出8. 復(fù)用功能的開(kāi)漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。二、專門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。七、具有獨(dú)立的喚醒I/O口。八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。STM32內(nèi)置參照電壓的使用每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:Vchx = Vrefint * (ADchx/ADrefint)其中Vrefint為參照電壓=1.20V。上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。STM32的ADC輸入通道配置STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓: 關(guān)于STM32 ADC速度的問(wèn)題STM32F103xx系列稱為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱為Performance Line。STM32F101xx系列稱為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱為Access Line。根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和: 即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期在STM32中,ADC的采樣時(shí)間是由用戶程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇:1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。STM32內(nèi)置CRC模塊的使用所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1寫(xiě)成16進(jìn)制就是:0x04C11DB7使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪問(wèn)的不同物理寄存器。有幾點(diǎn)需要說(shuō)明:1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。例如:如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63STM32中定時(shí)器的時(shí)鐘源STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。STM32中外部中斷與外部事件這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號(hào)線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套。圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋€(gè)單脈沖,輸出到芯片中的其它功能模塊。在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。在圖上部的APB總線和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪問(wèn)各個(gè)功能模塊,這里就不再贅述了。STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。在STM32中如何配置片內(nèi)外設(shè)使用的IO端口首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
2016-09-21 09:43:16

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

STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分的時(shí)鐘頻率。STM32的四個(gè)時(shí)鐘源(HSI、HSE、LSI和LSE)也在圖中標(biāo)出;圖中間的時(shí)鐘監(jiān)視系統(tǒng)(CSS)是在很多ST7的單片機(jī)中就出現(xiàn)的安全設(shè)置。特別注意:圖的右邊,輸出定時(shí)器時(shí)鐘之前有一個(gè)乘法器,它的操作不是由程序控制的,是由硬件根據(jù)前一級(jí)的APB預(yù)分頻器的輸出自動(dòng)選擇,當(dāng)APB預(yù)分頻器的分頻因子為1時(shí),這個(gè)乘法器無(wú)作用;當(dāng)APB預(yù)分頻器的分頻因子大于1時(shí),這個(gè)乘法器做倍頻操作,即將APB預(yù)分頻器輸出的頻率乘2,這樣可以保證定時(shí)器可以得到最高的72MHz時(shí)鐘脈沖。STM32上很多管腳功能可以重新映射STM32上有很多I/O口,也有很多的內(nèi)置外設(shè),為了節(jié)省引出管腳,這些內(nèi)置外設(shè)都是與I/O口共用引出管腳,ST稱其為I/O管腳的復(fù)用功能,相信這點(diǎn)大家都很清楚,因?yàn)榛旧纤袉纹瑱C(jī)都是這么做的。但不知有多少人知道,很多復(fù)用功能的引出腳可以通過(guò)重映射,從不同的I/O管腳引出,即復(fù)用功能的引出腳位是可通過(guò)程序改變的。這一功能的直接好處是,PCB電路板的設(shè)計(jì)人員可以在需要的情況下,不必把某些信號(hào)在板上繞一大圈完成聯(lián)接,方便了PCB的設(shè)計(jì)同時(shí)潛在地減少了信號(hào)的交叉干擾。復(fù)用功能引出腳的重映射功能所帶來(lái)的潛在好處是,在你不需要同時(shí)使用多個(gè)復(fù)用功能時(shí),虛擬地增加復(fù)用功能的數(shù)量。例如,STM32上最多有3個(gè)USART接口,當(dāng)你需要更多UART接口而又不需要同時(shí)使用它們時(shí),可以通過(guò)這個(gè)重映射功能實(shí)現(xiàn)更多的UART接口。下述復(fù)用功能的引出腳具有重映射功能:- 晶體振蕩器的引腳在不接晶體時(shí),可以作為普通I/O口- CAN模塊- JTAG調(diào)試接口- 大部分定時(shí)器的引出接口- 大部分USART的引出接口- I2C1的引出接口- SPI1的引出接口詳細(xì)內(nèi)容請(qǐng)看STM32的技術(shù)參考手冊(cè)。請(qǐng)務(wù)必記住:如果使用了任意一種重映射功能,在初始化和使用之前,一定要打開(kāi)AFIO時(shí)鐘。下圖示出了部分復(fù)用功能引出腳的重映射結(jié)果:【演示實(shí)例】一個(gè)在EK-STM32F板子上的RTC作為calender的例子硬件連接:串口線連至板子的UART-0端口。超級(jí)終端設(shè)置為:Bits Per seconds: 115200Data bits: 8Parity: noneStop bits: 1Flow control Hardware板子第一次跑這個(gè)程序時(shí),進(jìn)入時(shí)間配置。根據(jù)超級(jí)終端上的提示,一次輸入年,月,日,時(shí),分,秒(1月就輸入01,10月直接輸入10;同理3號(hào)就輸入03)隨后當(dāng)前的時(shí)間就顯示到了超級(jí)終端上,并且每秒刷新。沒(méi)有斷電的情況下再跑這個(gè)程序,由于看到bake up區(qū)域有被設(shè)置過(guò)時(shí)間的標(biāo)志,不再進(jìn)入時(shí)間設(shè)置階段,而是直接到時(shí)間顯示間斷,在超級(jí)終端上,每秒刷新。當(dāng)然如果在EK-STM32F板子上將Vbat和電池相接,具體就是:將紅色的電源跳線帽中的從下往上數(shù)的第5個(gè)取下,從原來(lái)的水平放置改成豎直放置(和上面的VBAT相連)。就算斷電,只要再上電,看到back up區(qū)域中的記號(hào),一樣直接進(jìn)入時(shí)間顯示。因?yàn)閿嚯姾螅琤ack up區(qū)域由電池供電,其中記錄的記號(hào)不會(huì)由于系統(tǒng)掉電而消失。【演示實(shí)例】使用EK-STM32F板測(cè)量STM32的功耗這個(gè)例子演示了如何使用EK-STM32F開(kāi)發(fā)評(píng)估板測(cè)量STM32F103VBT6在各種模式下的功耗。例子中演示了如何進(jìn)入STM32的各種模式(RUN、SLEEP、STOP、STANDBY),使用這個(gè)例子您可以通過(guò)EK-STM32F板上的紅色跳線(VDD、VREF+和VDDA)測(cè)量功耗。本實(shí)例首先通過(guò)UART與Windows的Hyperterminal通信,用戶可以選擇需要進(jìn)入的功耗模式,然后這個(gè)例程把用戶選好的配置存到后備寄存器,再次復(fù)位后STM32將進(jìn)入之前選定的模式。附件包中包含了一個(gè)說(shuō)明文件,詳細(xì)說(shuō)明了如何設(shè)置板上的跳線和操作的過(guò)程。STM32 GPIO的十大優(yōu)越功能綜述前幾天Hotpower邀請(qǐng)大家討論一下GPIO的功能、性能和優(yōu)缺點(diǎn)(STM32的GPIO很強(qiáng)大~~~),等了幾天沒(méi)見(jiàn)太多人發(fā)言,但綜合來(lái)看提到了3點(diǎn):1)真雙向IO,2)速度快,3)寄存器功能重復(fù)。關(guān)于第3點(diǎn)有說(shuō)好,有說(shuō)多余的,見(jiàn)仁見(jiàn)智。下面我就在做個(gè)拋磚引玉,根據(jù)ST手冊(cè)上的內(nèi)容,簡(jiǎn)單地綜述一下GPIO的功能:一、共有8種模式,可以通過(guò)編程選擇:1. 浮空輸入2. 帶上拉輸入3. 帶下拉輸入4. 模擬輸入5. 開(kāi)漏輸出——(此模式可實(shí)現(xiàn)hotpower說(shuō)的真雙向IO)6. 推挽輸出7. 復(fù)用功能的推挽輸出8. 復(fù)用功能的開(kāi)漏輸出模式7和模式8需根據(jù)具體的復(fù)用功能決定。二、專門(mén)的寄存器(GPIOx_BSRR和GPIOx_BRR)實(shí)現(xiàn)對(duì)GPIO口的原子操作,即回避了設(shè)置或清除I/O端口時(shí)的“讀-修改-寫(xiě)”操作,使得設(shè)置或清除I/O端口的操作不會(huì)被中斷處理打斷而造成誤動(dòng)作。三、每個(gè)GPIO口都可以作為外部中斷的輸入,便于系統(tǒng)靈活設(shè)計(jì)。四、I/O口的輸出模式下,有3種輸出速度可選(2MHz、10MHz和50MHz),這有利于噪聲控制。五、所有I/O口兼容CMOS和TTL,多數(shù)I/O口兼容5V電平。六、大電流驅(qū)動(dòng)能力:GPIO口在高低電平分別為0.4V和VDD-0.4V時(shí),可以提供或吸收8mA電流;如果把輸入輸出電平分別放寬到1.3V和VDD-1.3V時(shí),可以提供或吸收20mA電流。七、具有獨(dú)立的喚醒I/O口。八、很多I/O口的復(fù)用功能可以重新映射,見(jiàn):你知道嗎?STM32上很多管腳功能可以重新映射。九、GPIO口的配置具有上鎖功能,當(dāng)配置好GPIO口后,可以通過(guò)程序鎖住配置組合,直到下次芯片復(fù)位才能解鎖。此功能非常有利于在程序跑飛的情況下保護(hù)系統(tǒng)中其他的設(shè)備,不會(huì)因?yàn)槟承㊣/O口的配置被改變而損壞——如一個(gè)輸入口變成輸出口并輸出電流。十、輸出模式下輸入寄存器依然有效,在開(kāi)漏配置模式下實(shí)現(xiàn)真正的雙向I/O功能。STM32內(nèi)置參照電壓的使用每個(gè)STM32芯片都有一個(gè)內(nèi)部的參照電壓,相當(dāng)于一個(gè)標(biāo)準(zhǔn)電壓測(cè)量點(diǎn),在芯片內(nèi)部連接到ADC1的通道17。根據(jù)數(shù)據(jù)手冊(cè)中的數(shù)據(jù),這個(gè)參照電壓的典型值是1.20V,最小值是1.16V,最大值是1.24V。這個(gè)電壓基本不隨外部供電電壓的變化而變化。不少人把這個(gè)參照電壓與ADC的參考電壓混淆。ADC的參考電壓都是通過(guò)Vref+提供的。100腳以上的型號(hào),Vref+引到了片外,引腳名稱為Vref+;64腳和小于64腳的型號(hào),Vref+在芯片內(nèi)部與VCC信號(hào)線相連,沒(méi)有引到片外,這樣AD的參考電壓就是VCC上的電壓。在ADC的外部參考電壓波動(dòng),或因?yàn)閂ref+在芯片內(nèi)部與VCC相連而VCC變化的情況下,如果對(duì)于ADC測(cè)量的準(zhǔn)確性要求不高時(shí),可以使用這個(gè)內(nèi)部參照電壓得到ADC測(cè)量的電壓值。具體方法是在測(cè)量某個(gè)通道的電壓值之前,先讀出參照電壓的ADC測(cè)量數(shù)值,記為ADrefint;再讀出要測(cè)量通道的ADC轉(zhuǎn)換數(shù)值,記為ADchx;則要測(cè)量的電壓為:Vchx = Vrefint * (ADchx/ADrefint)其中Vrefint為參照電壓=1.20V。上述方法在使用內(nèi)置溫度傳感器對(duì)因?yàn)闇囟茸兓瑢?duì)系統(tǒng)參數(shù)進(jìn)行補(bǔ)償時(shí)就十分有效。STM32的ADC輸入通道配置STM32中最多有3個(gè)ADC模塊,每個(gè)模塊對(duì)應(yīng)的通道不完全重疊。下圖是STM32F103CDE數(shù)據(jù)手冊(cè)中的總框圖的左下角,圖中可以看出有8個(gè)外部ADC管腳分別接到了3個(gè)ADC模塊,有8個(gè)外部ADC管腳只分別接到了2個(gè)ADC模塊,還有5個(gè)外部ADC管腳只接到了ADC3模塊,這樣總共是21個(gè)通道。下表是這些ADC管腳與每個(gè)ADC模塊的對(duì)應(yīng)關(guān)系,表中可以看出ADC1還有2個(gè)內(nèi)部通道,分別接到內(nèi)部的溫度傳感器和內(nèi)部的參照電壓: 關(guān)于STM32 ADC速度的問(wèn)題STM32F103xx系列稱為增強(qiáng)型產(chǎn)品,增強(qiáng)型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到72MHz。增強(qiáng)型產(chǎn)品的英文名稱為Performance Line。STM32F101xx系列稱為基本型產(chǎn)品,基本型產(chǎn)品的最高時(shí)鐘頻率可以達(dá)到36MHz。基本型產(chǎn)品的英文名稱為Access Line。根據(jù)設(shè)計(jì),當(dāng)ADC模塊的頻率為14MHz時(shí),可以達(dá)到ADC的最快采樣轉(zhuǎn)換速度。要得到14MHz的ADC頻率,就要求SYSCLK的頻率是14MHz的倍數(shù),即14MHz、28MHz、42MHz、56MHz、70MHz、84MHz等;對(duì)于基本型產(chǎn)品14MHz和28MHz處于它的最大允許頻率范圍內(nèi);對(duì)于增強(qiáng)型產(chǎn)品,14MHz、28MHz、42MHz、56MHz和70MHz幾種頻率都在它的最大允許頻率范圍內(nèi),但因?yàn)锳DC預(yù)分頻器的分頻系數(shù)只有2、4、6、8這幾個(gè),使用70MHz不能得到最大的14MHz,所以要想得到最快的ADC轉(zhuǎn)換速度,在增強(qiáng)型產(chǎn)品上能用的最快SYSCLK頻率是56MHz。ADC的速度由2個(gè)參數(shù)決定,它是采樣時(shí)間和轉(zhuǎn)換時(shí)間之和: 即:TCONV = 采樣時(shí)間 + 12.5個(gè)ADC時(shí)鐘周期在STM32中,ADC的采樣時(shí)間是由用戶程序在一組預(yù)定的數(shù)值中選擇,按照ADC的時(shí)鐘周期計(jì)算,共有8種選擇:1.5、7.5、13.5、28.5、41.5、55.5、71.5和239.5按最小的1.5個(gè)時(shí)鐘周期的采樣時(shí)間計(jì)算,最短的TCONV等于14個(gè)時(shí)鐘周期,如果ADC的時(shí)鐘頻率是14MHz,則ADC的速度為每秒100萬(wàn)次。注意:當(dāng)ADC的時(shí)鐘頻率超過(guò)14MHz時(shí),ADC的精度將會(huì)顯著下降。STM32內(nèi)置CRC模塊的使用所有的STM32芯片都內(nèi)置了一個(gè)硬件的CRC計(jì)算模塊,可以很方便地應(yīng)用到需要進(jìn)行通信的程序中,這個(gè)CRC計(jì)算模塊使用常見(jiàn)的、在以太網(wǎng)中使用的計(jì)算多項(xiàng)式:X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 +X8 + X7 + X5 + X4 + X2 + X + 1寫(xiě)成16進(jìn)制就是:0x04C11DB7使用這個(gè)內(nèi)置CRC模塊的方法非常簡(jiǎn)單,既首先復(fù)位CRC模塊(設(shè)置CRC_CR=0x01),這個(gè)操作把CRC計(jì)算的余數(shù)初始化為0xFFFFFFFF;然后把要計(jì)算的數(shù)據(jù)按每32位分割為一組數(shù)據(jù)字,并逐個(gè)地把這組數(shù)據(jù)字寫(xiě)入CRC_DR寄存器(既下圖中的綠色框),寫(xiě)完所有的數(shù)據(jù)字后,就可以從CRC_DR寄存器(既下圖中的蘭色框)讀出計(jì)算的結(jié)果。注意:雖然讀寫(xiě)操作都是針對(duì)CRC_DR寄存器,但實(shí)際上是訪問(wèn)的不同物理寄存器。有幾點(diǎn)需要說(shuō)明:1)上述算法中變量CRC,在每次循環(huán)結(jié)束包含了計(jì)算的余數(shù),它始終是向左移位(既從最低位向最高位移動(dòng)),溢出的數(shù)據(jù)位被丟棄。2)輸入的數(shù)據(jù)始終是以32位為單位,如果原始數(shù)據(jù)少于32位,需要在低位補(bǔ)0,當(dāng)然也可以高位補(bǔ)0。3)假定輸入的DWORD數(shù)組中每個(gè)分量是按小端存儲(chǔ)。4)輸入數(shù)據(jù)是按照最高位最先計(jì)算,最低位最后計(jì)算的順序進(jìn)行。例如:如果輸入0x44434241,內(nèi)存中按字節(jié)存放的順序是:0x41, 0x42, 0x43, 0x44。計(jì)算的結(jié)果是:0xCF534AE1如果輸入0x41424344,內(nèi)存中按字節(jié)存放的順序是:0x44, 0x43, 0x42, 0x41。計(jì)算的結(jié)果是:0xABCF9A63STM32中定時(shí)器的時(shí)鐘源STM32中有多達(dá)8個(gè)定時(shí)器,其中TIM1和TIM8是能夠產(chǎn)生三對(duì)PWM互補(bǔ)輸出的高級(jí)定時(shí)器,常用于三相電機(jī)的驅(qū)動(dòng),它們的時(shí)鐘由APB2的輸出產(chǎn)生。其它6個(gè)為普通定時(shí)器,時(shí)鐘由APB1的輸出產(chǎn)生。下圖是STM32參考手冊(cè)上時(shí)鐘分配圖中,有關(guān)定時(shí)器時(shí)鐘部分的截圖:從圖中可以看出,定時(shí)器的時(shí)鐘不是直接來(lái)自APB1或APB2,而是來(lái)自于輸入為APB1或APB2的一個(gè)倍頻器,圖中的藍(lán)色部分。下面以定時(shí)器2~7的時(shí)鐘說(shuō)明這個(gè)倍頻器的作用:當(dāng)APB1的預(yù)分頻系數(shù)為1時(shí),這個(gè)倍頻器不起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率;當(dāng)APB1的預(yù)分頻系數(shù)為其它數(shù)值(即預(yù)分頻系數(shù)為2、4、8或16)時(shí),這個(gè)倍頻器起作用,定時(shí)器的時(shí)鐘頻率等于APB1的頻率兩倍。假定AHB=36MHz,因?yàn)锳PB1允許的最大頻率為36MHz,所以APB1的預(yù)分頻系數(shù)可以取任意數(shù)值;當(dāng)預(yù)分頻系數(shù)=1時(shí),APB1=36MHz,TIM2~7的時(shí)鐘頻率=36MHz(倍頻器不起作用);當(dāng)預(yù)分頻系數(shù)=2時(shí),APB1=18MHz,在倍頻器的作用下,TIM2~7的時(shí)鐘頻率=36MHz。有人會(huì)問(wèn),既然需要TIM2~7的時(shí)鐘頻率=36MHz,為什么不直接取APB1的預(yù)分頻系數(shù)=1?答案是:APB1不但要為T(mén)IM2~7提供時(shí)鐘,而且還要為其它外設(shè)提供時(shí)鐘;設(shè)置這個(gè)倍頻器可以在保證其它外設(shè)使用較低時(shí)鐘頻率時(shí),TIM2~7仍能得到較高的時(shí)鐘頻率。再舉個(gè)例子:當(dāng)AHB=72MHz時(shí),APB1的預(yù)分頻系數(shù)必須大于2,因?yàn)锳PB1的最大頻率只能為36MHz。如果APB1的預(yù)分頻系數(shù)=2,則因?yàn)檫@個(gè)倍頻器,TIM2~7仍然能夠得到72MHz的時(shí)鐘頻率。能夠使用更高的時(shí)鐘頻率,無(wú)疑提高了定時(shí)器的分辨率,這也正是設(shè)計(jì)這個(gè)倍頻器的初衷。STM32中外部中斷與外部事件這張圖是一條外部中斷線或外部事件線的示意圖,圖中信號(hào)線上劃有一條斜線,旁邊標(biāo)志19字樣的注釋,表示這樣的線路共有19套。圖中的藍(lán)色虛線箭頭,標(biāo)出了外部中斷信號(hào)的傳輸路徑,首先外部信號(hào)從編號(hào)1的芯片管腳進(jìn)入,經(jīng)過(guò)編號(hào)2的邊沿檢測(cè)電路,通過(guò)編號(hào)3的或門(mén)進(jìn)入中斷“掛起請(qǐng)求寄存器”,最后經(jīng)過(guò)編號(hào)4的與門(mén)輸出到NVIC中斷控制器;在這個(gè)通道上有4個(gè)控制選項(xiàng),外部的信號(hào)首先經(jīng)過(guò)邊沿檢測(cè)電路,這個(gè)邊沿檢測(cè)電路受上升沿或下降沿選擇寄存器控制,用戶可以使用這兩個(gè)寄存器控制需要哪一個(gè)邊沿產(chǎn)生中斷,因?yàn)檫x擇上升沿或下降沿是分別受2個(gè)平行的寄存器控制,所以用戶可以同時(shí)選擇上升沿或下降沿,而如果只有一個(gè)寄存器控制,那么只能選擇一個(gè)邊沿了。接下來(lái)是編號(hào)3的或門(mén),這個(gè)或門(mén)的另一個(gè)輸入是“軟件中斷/事件寄存器”,從這里可以看出,軟件可以優(yōu)先于外部信號(hào)請(qǐng)求一個(gè)中斷或事件,既當(dāng)“軟件中斷/事件寄存器”的對(duì)應(yīng)位為“1”時(shí),不管外部信號(hào)如何,編號(hào)3的或門(mén)都會(huì)輸出有效信號(hào)。一個(gè)中斷或事件請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入掛起請(qǐng)求寄存器,到此之前,中斷和事件的信號(hào)傳輸通路都是一致的,也就是說(shuō),掛起請(qǐng)求寄存器中記錄了外部信號(hào)的電平變化。外部請(qǐng)求信號(hào)最后經(jīng)過(guò)編號(hào)4的與門(mén),向NVIC中斷控制器發(fā)出一個(gè)中斷請(qǐng)求,如果中斷屏蔽寄存器的對(duì)應(yīng)位為“0”,則該請(qǐng)求信號(hào)不能傳輸?shù)脚c門(mén)的另一端,實(shí)現(xiàn)了中斷的屏蔽。明白了外部中斷的請(qǐng)求機(jī)制,就很容易理解事件的請(qǐng)求機(jī)制了。圖中紅色虛線箭頭,標(biāo)出了外部事件信號(hào)的傳輸路徑,外部請(qǐng)求信號(hào)經(jīng)過(guò)編號(hào)3的或門(mén)后,進(jìn)入編號(hào)5的與門(mén),這個(gè)與門(mén)的作用與編號(hào)4的與門(mén)類(lèi)似,用于引入事件屏蔽寄存器的控制;最后脈沖發(fā)生器把一個(gè)跳變的信號(hào)轉(zhuǎn)變?yōu)橐粋€(gè)單脈沖,輸出到芯片中的其它功能模塊。在這張圖上我們也可以知道,從外部激勵(lì)信號(hào)來(lái)看,中斷和事件是沒(méi)有分別的,只是在芯片內(nèi)部分開(kāi),一路信號(hào)會(huì)向CPU產(chǎn)生中斷請(qǐng)求,另一路信號(hào)會(huì)向其它功能模塊發(fā)送脈沖觸發(fā)信號(hào),其它功能模塊如何相應(yīng)這個(gè)觸發(fā)信號(hào),則由對(duì)應(yīng)的模塊自己決定。在圖上部的APB總線和外設(shè)模塊接口,是每一個(gè)功能模塊都有的部分,CPU通過(guò)這樣的接口訪問(wèn)各個(gè)功能模塊,這里就不再贅述了。STM32的USART發(fā)送數(shù)據(jù)時(shí)如何使用TXE和TC標(biāo)志在USART的發(fā)送端有2個(gè)寄存器,一個(gè)是程序可以看到的USART_DR寄存器(下圖中陰影部分的TDR),另一個(gè)是程序看不到的移位寄存器(下圖中陰影部分Transmit Shift Register)。對(duì)應(yīng)USART數(shù)據(jù)發(fā)送有兩個(gè)標(biāo)志,一個(gè)是TXE=發(fā)送數(shù)據(jù)寄存器空,另一個(gè)是TC=發(fā)送結(jié)束;對(duì)照下圖,當(dāng)TDR中的數(shù)據(jù)傳送到移位寄存器后,TXE被設(shè)置,此時(shí)移位寄存器開(kāi)始向TX信號(hào)線按位傳輸數(shù)據(jù),但因?yàn)門(mén)DR已經(jīng)變空,程序可以把下一個(gè)要發(fā)送的字節(jié)(操作USART_DR)寫(xiě)入TDR中,而不必等到移位寄存器中所有位發(fā)送結(jié)束,所有位發(fā)送結(jié)束時(shí)(送出停止位后)硬件會(huì)設(shè)置TC標(biāo)志。另一方面,在剛剛初始化好USART還沒(méi)有發(fā)送任何數(shù)據(jù)時(shí),也會(huì)有TXE標(biāo)志,因?yàn)檫@時(shí)發(fā)送數(shù)據(jù)寄存器是空的。TXEIE和TCIE的意義很簡(jiǎn)單,TXEIE允許在TXE標(biāo)志為'1'時(shí)產(chǎn)生中斷,而TCIE允許在TC標(biāo)志為'1'時(shí)產(chǎn)生中斷。至于什么時(shí)候使用哪個(gè)標(biāo)志,需要根據(jù)你的需要自己決定。但我認(rèn)為T(mén)XE允許程序有更充裕的時(shí)間填寫(xiě)TDR寄存器,保證發(fā)送的數(shù)據(jù)流不間斷。TC可以讓程序知道發(fā)送結(jié)束的確切時(shí)間,有利于程序控制外部數(shù)據(jù)流的時(shí)序。STM32設(shè)置了很多非常有用和靈活的控制和狀態(tài)位,只要你很好地掌握了它們的用法,可以讓你的應(yīng)用更加精確和高效。在STM32中如何配置片內(nèi)外設(shè)使用的IO端口首先,一個(gè)外設(shè)經(jīng)過(guò)配置輸入的時(shí)鐘和初始化后即被激活(開(kāi)啟)。如果需要使用該外設(shè)的輸入輸出管腳,則需要配置相應(yīng)的GPIO端口;否則該外設(shè)對(duì)應(yīng)的輸入輸出管腳可以做普通GPIO管腳使用。
2017-10-25 10:04:38

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

帶你走進(jìn)STM32的世界STM32F10xx時(shí)鐘系統(tǒng)框圖:時(shí)鐘是整個(gè)系統(tǒng)的脈搏下圖是STM32F10xx時(shí)鐘系統(tǒng)的框圖,通過(guò)這個(gè)圖可以一目了然地看到各個(gè)部件時(shí)鐘產(chǎn)生的路徑,還可以很方便地計(jì)算出各部分
2017-11-05 11:29:45

帶你走進(jìn)單片機(jī)程序設(shè)計(jì)大門(mén)

帶你走進(jìn)單片機(jī)程序設(shè)計(jì)大門(mén)。
2012-08-04 11:34:54

帶大家走進(jìn)嵌入式Linux-arm驅(qū)動(dòng)開(kāi)發(fā)

一、本文將會(huì)以最簡(jiǎn)單的LED驅(qū)動(dòng)程序帶大家走進(jìn)嵌入式Linux-arm驅(qū)動(dòng)開(kāi)發(fā),首先,來(lái)了解一下最簡(jiǎn)單的驅(qū)動(dòng)框架。1.首先struct file_operations led_fops()函數(shù),它是
2021-12-15 07:59:57

怎么才能防止系統(tǒng)受干擾而使程序丟失,或者走進(jìn)死循還而使系統(tǒng)死機(jī)?

AT89C52的主要性能參數(shù)有哪些怎么才能防止系統(tǒng)受干擾而使程序丟失,或者走進(jìn)死循還而使系統(tǒng)死機(jī)?
2021-04-14 07:03:12

數(shù)字世界里的模擬技術(shù)看完你就懂了

數(shù)字世界里的模擬技術(shù)看完你就懂了
2021-04-22 06:10:03

新手教程書(shū)籍《從零開(kāi)始走進(jìn)FPGA世界

;三、高速的圖像和視頻處理,因?yàn)镕PGA內(nèi)部嵌入了大量的乘法器或者DSPBlock,所以在這些領(lǐng)域應(yīng)用頗廣,此外各大FPGA公司也提供了相應(yīng)的參考設(shè)計(jì);四、大型LED面板驅(qū)動(dòng)和高分辨率LCD驅(qū)動(dòng);四、協(xié)
2018-12-14 17:47:38

無(wú)線多彩LED照明控制方案

智能照明時(shí)代降臨 無(wú)線多彩LED照明控制方案橫空出世:本方案是大聯(lián)大集團(tuán)在LED智能家居照明領(lǐng)域的研發(fā)成果之一。通過(guò)該方案,您的LED產(chǎn)品就可以告別開(kāi)關(guān)、遙控器的桎梏,邁入智能照明的產(chǎn)品的行列。詳細(xì)方案及技術(shù)參數(shù)請(qǐng)到大聯(lián)大云端wpgcloud了解>>>
2013-11-01 10:09:28

智能家居控制系統(tǒng)如何走進(jìn)生活?

  智能家居控制系統(tǒng)如何走進(jìn)生活?對(duì)于未來(lái)的住宅,你有怎樣的期待?隨著科技的發(fā)展,智能家居離我們?cè)絹?lái)越近。想象一下,在未來(lái)的住宅中,輕輕一點(diǎn),家里的環(huán)境模式就能隨意切換。如晨起、離家、就餐、會(huì)客
2018-05-02 11:47:38

智能照明光照你我他,關(guān)愛(ài)每一個(gè)家

在都市里 ,到處?kù)乓孱伒闹悄軣艄庹彰飨到y(tǒng)色彩,這是一個(gè)五彩斑斕的世界,下面小編就帶你走進(jìn)智能家居系統(tǒng)中的姹紫嫣紅在室內(nèi),智能燈光照明系統(tǒng)慢慢已經(jīng)走進(jìn)人們的生活,讓室內(nèi)變得五彩斑斕,暖意濃濃。在
2016-05-16 16:31:37

未來(lái)世界如何供電

未來(lái)世界如何供電:無(wú)線傳輸或成主流
2021-01-07 06:56:18

格林代爾多彩竹木纖維多姿色彩

格林代爾多彩竹木纖維異型產(chǎn)品暢銷(xiāo)全國(guó),格林代爾集成墻飾,格林代爾集成墻,主蕭亞軒與男友調(diào)情用于作為室內(nèi)裝飾,是建筑裝潢首要選擇產(chǎn)品,格林代爾集成墻飾,以全國(guó)為主章子怡集齊12個(gè)影后服務(wù)地區(qū),客戶
2016-03-28 16:35:48

求大牛DIY一個(gè)世界地圖形狀LED點(diǎn)陣(4米寬,2000點(diǎn))

`有個(gè)展廳項(xiàng)目需要做一個(gè)世界地圖形狀的展品,整體形狀是由2000根亞克力管構(gòu)成的一幅4米寬世界地圖,每根亞克力管的截面構(gòu)成地圖的一個(gè)像素點(diǎn),亞克力管頂部封裝不同的種子,底部安裝LED燈珠以照亮頂部
2018-01-18 17:09:09

電子單片機(jī)教案 循環(huán)漸進(jìn)走進(jìn)電子世界

電子單片機(jī)教案 循環(huán)漸進(jìn)走進(jìn)電子世界
2013-07-28 12:41:24

要過(guò)年啦,小編這里給大家拜個(gè)早年!

` 小編這里給位英雄“猴”杰,綠林“猴”士,“猴”門(mén)貴胄拜年啦,在這空前絕猴”的 花“猴”月圓之夜,小編有很多的”猴”情壯志 ,“猴”言壯語(yǔ)溢于言表,2015年大家在論壇的猴”謀善斷,讓論壇增添多彩
2016-01-29 10:12:53

迷失的arm世界。。

接觸電子的東西已經(jīng)快一年了,但是就是感覺(jué)很無(wú)助,單片機(jī)會(huì)點(diǎn)51,自學(xué)了些模電數(shù)電,其他什么的也了解了一點(diǎn),現(xiàn)在我想自學(xué)arm,但是又不知道現(xiàn)在夠格學(xué)了沒(méi),so,真心希望你能給小弟指點(diǎn)一下怎樣走進(jìn)arm。。
2013-06-11 16:48:05

多彩305攝像頭驅(qū)動(dòng)下載

多彩305攝像頭驅(qū)動(dòng)下載
2008-01-11 22:55:595

LED顯示精彩世界

LED顯示精彩世界,LED顯示屏在各大人流場(chǎng)所隨處可見(jiàn).為人們的眼界開(kāi)拓了新的空間.
2021-11-22 09:26:58

啟動(dòng)數(shù)碼能量,豐富多彩生活

             啟動(dòng)數(shù)碼能量,豐富多彩生活
2009-01-15 12:39:13358

走進(jìn)比亞迪

走進(jìn)比亞迪  比亞迪股份有限公司始建于1995年,由 20 多人的規(guī)模起步,短短十年時(shí)間內(nèi)迅速成長(zhǎng)為 IT 及電子零部件的世界級(jí)
2009-10-27 11:43:01429

走進(jìn)雙鹿電池

走進(jìn)雙鹿電池 中銀(寧波)電池有限
2009-10-28 14:56:591121

多彩節(jié)能的夏日平板挑選法則

多彩節(jié)能的夏日平板挑選法則 前言: 09平板市場(chǎng)三軍鼎立,以三星、索尼為代表的合資品牌從背光源著力,主推LED電視;而部分國(guó)
2010-02-11 11:56:20356

目前世界上最大的led顯示屏在哪里

目前世界上最大的led顯示屏在哪里
2010-03-10 10:56:565686

我國(guó)LED專利僅占世界的十分之一

我國(guó)LED專利僅占世界的十分之一   如今,中國(guó)已經(jīng)成為世界上重要的中低端LED封裝生產(chǎn)基地,預(yù)計(jì)2010年中國(guó)LED產(chǎn)業(yè)將達(dá)到1000億元
2010-03-23 09:02:59568

車(chē)用LED頭燈組研發(fā)介紹

隨著半導(dǎo)體材料的突破與白光發(fā)光二極體的問(wèn)世,被譽(yù)為照亮未來(lái)技術(shù)的LED(發(fā)光二極體)漸漸走進(jìn)了我們的日常生活當(dāng)中,并帶領(lǐng)我們迎向固態(tài)照明世界。因此白光LED是固態(tài)照明中一
2011-04-14 15:06:1036

LED驅(qū)動(dòng)——點(diǎn)亮世界

一直以來(lái)驅(qū)動(dòng)電路是LED應(yīng)用產(chǎn)品的重要組成部分,如何設(shè)計(jì)一個(gè)優(yōu)秀的LED驅(qū)動(dòng)電路也是困擾著工程師的難題之一。本專題從LED原理出發(fā),分析LED驅(qū)動(dòng)設(shè)計(jì)所要注意的問(wèn)題。LED驅(qū)動(dòng)解決方案難點(diǎn)在于:電流
2012-03-14 16:30:38

世界主要LED生產(chǎn)廠家介紹

世界主要LED生產(chǎn)廠家介紹:日亞化工是GaN系的開(kāi)拓者,在LED和激光領(lǐng)域居世界首位。豐田合成提出了車(chē)體和輪胎的概念。
2012-03-29 10:05:567289

LED的應(yīng)用設(shè)計(jì)

隨著LED技術(shù)的不斷成熟,LED的成本和價(jià)格降了下來(lái),加之政府對(duì)新能源的大力支持,使得LED在各個(gè)行業(yè)的使用越來(lái)越廣泛,LED開(kāi)始走進(jìn)我們的日常生活!本專題主要從LED應(yīng)用介紹、LED照明應(yīng)用、LED驅(qū)動(dòng)設(shè)計(jì)應(yīng)用、LED應(yīng)用電路圖和LED顯示設(shè)計(jì)應(yīng)用五個(gè)方面來(lái)介紹LED的應(yīng)用設(shè)計(jì)!
2012-08-01 15:21:37

圖說(shuō)LED基礎(chǔ)小常識(shí)(一)

今天,LED已經(jīng)走進(jìn)千家萬(wàn)戶,成為我們生活中常見(jiàn)的一項(xiàng)技術(shù)。在可見(jiàn)光LED問(wèn)世50周年之際,讓我們一起回顧LED的發(fā)展,認(rèn)識(shí)LED的類(lèi)型,以及你將可以怎樣利用LED技術(shù)。
2012-11-13 17:17:368343

LED照明應(yīng)對(duì)世界末日

日前關(guān)于世界末日的傳聞常見(jiàn)報(bào)端,人們對(duì)謠言的辨別能力真是令人揪心,本文從科學(xué)角度分析即使連黑三天,有了LED照明又有何懼,LED燈應(yīng)用于各個(gè)領(lǐng)域,給人帶來(lái)光明。
2012-12-07 09:50:28839

Kick:可由WiFi控制的多彩LED

今天推薦個(gè)更給力的Kick——能夠用智能手機(jī)通過(guò)WiFi進(jìn)行控制的可調(diào)色LED燈。通過(guò)iPhone上的應(yīng)用程序,用戶就能夠遠(yuǎn)程調(diào)節(jié)任何想要的彩虹色。
2013-05-31 11:25:032832

[1.1.1]--走進(jìn)世界

電子技術(shù)電工技術(shù)
jf_75936199發(fā)布于 2023-03-11 01:40:28

走進(jìn)2016“多彩”的LED世界:百家爭(zhēng)鳴,精彩紛呈

過(guò)去一年,我們?cè)?jīng)為LED照明需求不斷攀升而雀躍,為LED產(chǎn)品單價(jià)大幅下滑而訝異,為硅襯底技術(shù)自主化而歡呼……這些復(fù)雜表情背后,實(shí)際上反映的是LED產(chǎn)業(yè)大幅發(fā)展過(guò)程中所遭遇的不確定性,這種不確定性也是勃勃生機(jī)的表現(xiàn)。
2016-02-16 11:15:481080

Delphi教程_多彩的數(shù)據(jù)報(bào)表

Delphi教程多彩的數(shù)據(jù)報(bào)表,很好的Delphi的學(xué)習(xí)資料。
2016-03-16 14:55:524

吹逼技術(shù)只服華為,華為P10真機(jī)圖曝光,死磕三星S8!配隱藏式指紋+多彩金屬機(jī)身!

華為P10在顏值方面主打多彩配色,會(huì)有淡綠,騷紫,海藍(lán)等顏色,滿足年輕人的不同需求,而湊巧的是,三星S8也會(huì)主打多彩機(jī)身,顯示出科技和時(shí)尚活力相結(jié)合。
2017-02-17 09:28:21473

還記得那些年的華碩筆記本電腦嗎?讓我們一起走進(jìn)華碩筆記本世界吧!

在過(guò)去的華碩筆記本電腦世界你對(duì)這些又有哪些了解呢?和小編一起走進(jìn)華碩筆記版電腦世界去了解它吸引人的一面吧!
2017-03-24 09:40:031943

索尼4K液晶電視X9300E 帶你走進(jìn)炫彩世界

大千世界風(fēng)光無(wú)限好,當(dāng)你沒(méi)有時(shí)間去旅游,沒(méi)有時(shí)間去欣賞外界美麗風(fēng)景的時(shí)候,那就讓索尼4K液晶電視帶你去游覽世界,帶你走進(jìn)大千世界,帶你享受生活的樂(lè)趣。
2017-07-07 10:00:031122

LED屏顯世界專訪】封裝小尺寸化是趨勢(shì),但更應(yīng)關(guān)注可靠性(一)

LED顯屏世界專題報(bào)道
2017-08-30 11:22:081331

英特爾將繼續(xù)致力于自動(dòng)駕駛領(lǐng)域的技術(shù)創(chuàng)新,推動(dòng)自動(dòng)駕駛走進(jìn)真實(shí)世界

不論是和華納兄弟的合作,還是對(duì)Mobileye的收購(gòu),都體現(xiàn)了英特爾在自動(dòng)駕駛行業(yè)的野心和堅(jiān)定。未來(lái),英特爾將繼續(xù)致力于自動(dòng)駕駛領(lǐng)域的技術(shù)創(chuàng)新,推動(dòng)自動(dòng)駕駛走進(jìn)真實(shí)世界
2018-01-03 17:27:462946

飛利浦幻彩LED冰酒燈 給你最浪漫的氛圍

浪漫的飲酒環(huán)境需要多彩的氛圍,飛利浦幻彩 LED 冰酒燈就用多彩LED 芯片為用戶打造舒適的環(huán)境。這款冰酒燈的外觀設(shè)計(jì)簡(jiǎn)約時(shí)尚,透明的主體搭配銀色邊框簡(jiǎn)約時(shí)尚,內(nèi)置的多光色 LED 芯片可以為用戶打造時(shí)尚溫馨的飲酒環(huán)境,無(wú)線充電方式也可以帶來(lái)時(shí)尚的使用體驗(yàn)。
2018-04-27 04:30:004699

巨頭力推LED大屏,LED屏幕是否能走進(jìn)影院?

看大片無(wú)放映機(jī)?在三星、索尼都在力推LED大屏,尤其是三星已在上海建立LED屏幕影院后,業(yè)界開(kāi)始對(duì)LED屏進(jìn)入電影院市場(chǎng)有所遐想和期待,未來(lái)LED屏幕是否會(huì)成為電影屏幕的新標(biāo)準(zhǔn)?
2018-09-13 15:06:039370

羽博猴年限量版移動(dòng)電源評(píng)測(cè) 可以說(shuō)是羽博移動(dòng)產(chǎn)品的一項(xiàng)代表作

此時(shí)移動(dòng)電源發(fā)揮最大作用的時(shí)刻到了,一路上的充電需求,全由它來(lái)保證。SO,今天,評(píng)測(cè)室為大家?guī)?lái)了一款“限量版”移動(dòng)電源——羽博P10000猴年日歷粉色版。
2018-10-23 10:03:421605

LED多彩燈旋轉(zhuǎn)燈的程序和原理圖資料免費(fèi)下載

多彩燈旋轉(zhuǎn)燈,此燈由多塊副板組成旋轉(zhuǎn),可產(chǎn)生旋轉(zhuǎn),流水,漸變色,混色,交叉旋轉(zhuǎn)異色,雙燈同亮不同速旋轉(zhuǎn),聲控,無(wú)聲自變色,無(wú)聲滅燈,有聲換色,有聲旋轉(zhuǎn)色換色。
2018-10-29 08:00:0033

LED多彩聲控旋轉(zhuǎn)燈的詳細(xì)資料合集免費(fèi)下載

本文檔的主要內(nèi)容詳細(xì)介紹的是LED多彩聲控旋轉(zhuǎn)燈的詳細(xì)資料合集免費(fèi)下載主要內(nèi)容包括了:電路原理圖,三維組裝PCB,三維組裝圖片,視頻效果
2018-10-30 08:00:0031

帶你走進(jìn)手機(jī)的集成電路世界

住在海底世界中心的是CPU家族,他們是整個(gè)動(dòng)物世界的最強(qiáng)大腦。起初CPU家族只有1個(gè)兄弟,但隨著功能需求越來(lái)越多,發(fā)展到現(xiàn)在有的CPU家族已經(jīng)有8個(gè)兄弟啦!
2018-12-07 16:14:487649

嵌入式ARM與MMU神秘的內(nèi)部世界!一目了然

帶你走進(jìn)嵌入式ARM與MMU神秘的內(nèi)部世界
2019-03-01 15:02:328942

神奇的微納米機(jī)器人走進(jìn)人體

機(jī)器人界的老頑童福田敏男教授多次出席中國(guó)機(jī)器人峰會(huì),在去年的峰會(huì)上,他帶來(lái)了更新穎更具創(chuàng)新的研究報(bào)告,帶領(lǐng)我們走進(jìn)了一個(gè)神奇的微型生物細(xì)胞機(jī)器人世界
2019-03-20 15:38:087891

科大訊飛用AI為世界留下多彩鄉(xiāng)音

在剛剛更新的第二集《我用AI修文物 人工智能復(fù)活千年歷史》中,令人震驚的是聯(lián)合國(guó)教科文組織發(fā)布:在世界范圍內(nèi),每?jī)芍芫陀幸环N語(yǔ)言從地球上消失。
2019-10-08 11:14:532560

多彩貴州航空正式引進(jìn)了一架A320neo飛機(jī)

多彩貴州航空公司引進(jìn)的第一架A320neo飛機(jī)是空中客車(chē)公司最新一代的A320飛機(jī),裝有CFM公司生產(chǎn)的最新Leap-1A發(fā)動(dòng)機(jī),比老一代A320飛機(jī)燃油效率提高15%以上,是當(dāng)前世界最高效環(huán)保的單通道飛機(jī)。
2019-10-25 11:25:382036

華為8款機(jī)型明年將更新多彩AOD滅屏顯示功能

所謂“多彩AOD”就是EMUI10的新功能之一,即多彩AOD滅屏顯示,不僅可以讓用戶隨時(shí)看到時(shí)間、信息、電量等手機(jī)基本信息,還能根據(jù)時(shí)間的變化而改變字體的顏色。
2019-12-09 14:46:363772

如何測(cè)試LED顯示屏是否存在故障問(wèn)題

隨著LED電子顯示屏以及LED全彩屏的普及應(yīng)用,LED顯示屏已經(jīng)成為了當(dāng)今信息社會(huì)的一到美麗的風(fēng)景線,特別是在夜幕來(lái)臨時(shí),LED顯示屏綻放出璀璨的畫(huà)面令人們能夠感覺(jué)世界的繽紛多彩
2019-12-31 16:40:471516

vr技術(shù)如何帶你走進(jìn)動(dòng)物的世界

VR技術(shù)的出現(xiàn)讓我們對(duì)世界有了更加廣闊的認(rèn)識(shí),讓我們有機(jī)會(huì)領(lǐng)略到不一樣的風(fēng)采,VR技術(shù)也讓我們重新認(rèn)識(shí)大自然。
2020-03-16 15:38:191796

人工智能走進(jìn)現(xiàn)實(shí)世界的切入點(diǎn)是

人工智能(AI)是研究、開(kāi)發(fā)用于模擬、延伸和擴(kuò)展人的智能的理論、方法、技術(shù)及應(yīng)用系統(tǒng)的一門(mén)新的技術(shù)科學(xué)。而人工智能走進(jìn)現(xiàn)實(shí)世界的切入點(diǎn)是什么? 想要知道人工智能走進(jìn)現(xiàn)實(shí)世界的切入點(diǎn)是什么這個(gè)
2021-06-04 14:39:442007

人工智能走進(jìn)現(xiàn)實(shí)世界的切入點(diǎn) 用戶體驗(yàn)是關(guān)鍵

人工智能AI從理論走進(jìn)現(xiàn)實(shí),真正走進(jìn)大家的生活。
2021-06-05 12:20:091841

蘋(píng)果助力Mini LED技術(shù)再次走進(jìn)產(chǎn)業(yè)鏈視野

在蘋(píng)果的“助攻”下,Mini LED技術(shù)再次走進(jìn)產(chǎn)業(yè)鏈視野。近日,蘋(píng)果在2021年第2場(chǎng)秋季新品發(fā)布會(huì)上帶來(lái)3款新品,其中包括被稱為“Mac筆記本電腦中歷代之最”的新款Macbook Pro,搭載
2021-10-27 09:26:393959

洲明LED煥新一座城驚艷全世界

絢爛的光影、豐富多彩的活動(dòng)、沉浸式的游玩體驗(yàn),這里一直都是光影的世界、歡樂(lè)的海洋。 以裸眼3D等原創(chuàng)內(nèi)容為牽引,以LED顯示屏為交互窗口,將整個(gè)城市打造成耀眼的多媒體藝術(shù)裝置,這樣的大手筆,正是出自洲明。 項(xiàng)目所使用的全部
2021-11-06 11:01:421605

洲明LED光顯方案成功走進(jìn)世博會(huì)

在眾多展館中,美國(guó)、梵蒂岡、以色列等國(guó)家館,及迪拜環(huán)球港務(wù)集團(tuán)、阿聯(lián)酋國(guó)家石油公司等合作伙伴展館,共計(jì)近3000㎡LED大屏均由中國(guó)的洲明科技提供。
2021-12-13 09:50:314797

HT66FB574/572多彩流光USB鼠標(biāo)應(yīng)用范例

電玩產(chǎn)業(yè)對(duì)鼠標(biāo)需求越來(lái)越高,在鼠標(biāo)上增加大量 RGB LED,并且可產(chǎn)生不同顏色與明亮 變化多種炫酷燈光效果,使游戲鼠標(biāo)更加多彩多姿,其中多顆 RGB LED 在鼠標(biāo)外圍圍繞, 并可產(chǎn)生如流水效果顏色變化的鼠標(biāo),稱為多彩流光鼠標(biāo)。
2022-06-26 09:43:412

HT66FB576多彩獨(dú)立光USB鍵盤(pán)應(yīng)用范例

HOLTEK 針對(duì)多顆多彩燈效產(chǎn)品領(lǐng)域,開(kāi)發(fā)提供應(yīng)用于多顆 RGB LED 的產(chǎn)品,HT66FB576 最多可應(yīng)用在 128 顆 RGB LED 的產(chǎn)品,本身又具 USB 接口,用于多彩獨(dú)立光鍵盤(pán)相當(dāng)合 適,本文將介紹使用 HT66FB576 開(kāi)發(fā)多彩獨(dú)立光鍵盤(pán)方案。
2022-06-26 09:42:122

用蜂鳴器制作多彩LED

電子發(fā)燒友網(wǎng)站提供《用蜂鳴器制作多彩LED流.zip》資料免費(fèi)下載
2022-11-10 14:43:180

世界上最薄的NeoPixel LED矩陣

電子發(fā)燒友網(wǎng)站提供《世界上最薄的NeoPixel LED矩陣.zip》資料免費(fèi)下載
2022-11-21 10:55:410

多彩世界地圖上的物聯(lián)網(wǎng)圣誕老人追蹤器

電子發(fā)燒友網(wǎng)站提供《多彩世界地圖上的物聯(lián)網(wǎng)圣誕老人追蹤器.zip》資料免費(fèi)下載
2022-12-09 16:14:590

走進(jìn)LED顯示屏的異形世界

異形LED顯示屏以絢麗多彩的顯示效果,靈活多變的畫(huà)面表現(xiàn)力,細(xì)膩清晰的視覺(jué)效果,使精彩的畫(huà)面效果得到了淋漓盡致的顯現(xiàn)。為人們?cè)诰o張的工作之余帶來(lái)輕松愉快的氣氛,享受音樂(lè)、美酒以及無(wú)拘無(wú)束的人際交流所帶來(lái)了無(wú)窮的樂(lè)趣。
2023-04-06 16:46:47502

MP3320A | 這顆芯,律動(dòng)多彩呼吸節(jié)奏

點(diǎn)擊標(biāo)題下「MPS芯源系統(tǒng)」可快速關(guān)注 WLED(白光LED)為我們帶來(lái)了白色光芒,但生活也應(yīng)該充滿絢麗多彩的景象,RGB(紅綠藍(lán))LED 就是色彩的使者, RGB+W 驅(qū)動(dòng)精靈 MP3320A
2023-07-20 12:10:02441

LED球型屏驚艷世界的背后,洲明的厚積與薄發(fā)

LED行業(yè)的發(fā)展史上,LED顯示與LED照明曾因主要功能不同而被劃分為兩個(gè)行業(yè)陣營(yíng),前者注重展示信息,后者注重照亮和裝飾。
2023-07-27 14:09:23648

已全部加載完成

主站蜘蛛池模板: 枝江市| 莱阳市| 屯门区| 潮州市| 建始县| 陕西省| 鄂托克旗| 赞皇县| 正安县| 兴海县| 汾阳市| 如皋市| 洞口县| 富顺县| 肥乡县| 稻城县| 清丰县| 深泽县| 教育| 宜章县| 洞口县| 长宁县| 抚顺县| 安宁市| 丰城市| 宿松县| 上思县| 西青区| 当涂县| 泰州市| 潞西市| 城口县| 宁安市| 固安县| 巴彦淖尔市| 论坛| 明星| 门头沟区| 胶南市| 孝义市| 吉林市|