www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 技術(shù)學院 > 技術(shù)前線
[導讀]STM32F103C8T6是一款由意法半導體公司(ST)推出的基于Cortex-M3內(nèi)核的32位微控制器,硬件采用LQFP48封裝,屬于ST公司微控制器中的STM32系列。除了被我們熟知的STM32,ST公司還有SPC5X系列、STM8系列等,具體參數(shù)如下:

內(nèi)核 Cortex-M3

Flash 64K x 8bit

SRAM 20K x 8bit

GPIO 37個GPIO,分別為PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1

ADC 2個12bit ADC合計12路通道(外部通道:PA0到PA7+PB0到PB1,內(nèi)部通道:)

Timers

4個16bit定時器/計數(shù)器,分別為TIM1、TIM2、TIM3、TIM4

TM1帶死區(qū)插入,常用于產(chǎn)生PWM控制電機

2個看門狗定時器(獨立看門狗IWDG、窗口看門狗WWDG)

1個24bit向下計數(shù)的滴答定時器systick

工作電壓、溫度 2V~3.6V、-40°C ~ 85°C

通信串口

2*IIC,2*SPI,3*USART,1*CAN

系統(tǒng)時鐘 內(nèi)部8MHz時鐘HSI最高可倍頻到64MHz,外部8MHz時鐘HSE最高可倍頻到72MHz

ARM公司在ARM11以后改用Cortex命名,并分成A、R和M三類,M系列有M0、M0+、M3、M4、M7。 Cortex-M3是ARM公司推出的基于ARMv7架構(gòu)的MCU內(nèi)核,ST公司在此內(nèi)核的基礎上完成了USART、DMA、GPIO等外圍電路的設計。在M系列不同內(nèi)核開發(fā)下的STM32,大致可分成低功耗系列、主流系列、高性能系列3個部分,其具體信息如下圖所示:

相同系列的內(nèi)核一般相同,如F1系列都采用Cortex-M3內(nèi)核開發(fā),但根據(jù)Flash大小不同可將STM32分成小容量產(chǎn)品(<64K)、中等容量產(chǎn)品(介于64K-128K)、大容量產(chǎn)品3個部分,各部分容量產(chǎn)品在使用標準庫SPL開發(fā)時需要使用不同的啟動文件并在預編譯處做好修改,其具體信息如下圖所示:

STM32F103C8T6整個系統(tǒng)結(jié)構(gòu)可以分為由ARM公司設計的Cortex-M3內(nèi)核和ST公司在此基礎上優(yōu)化的總線矩陣、DMA(Direct Memory Access,直接內(nèi)存讀取)、AHB、APB1以及APB2上掛載的外設等兩個部分,詳細結(jié)構(gòu)如下圖所示:

Cortex-M3摒棄了馮· 諾依曼結(jié)構(gòu)(普林斯頓結(jié)構(gòu)),采用了將指令存儲和數(shù)據(jù)存儲分開的 的哈佛結(jié)構(gòu)(Harvard Architecture ),這樣一來Cortex-M3同時擁有了獨立的32-bit指令總線和32-bit數(shù)據(jù)總線,數(shù)據(jù)訪問將不再占用指令總線,同時讀取指令和數(shù)據(jù)后提升了MCU運行速度。馮諾依曼和哈弗結(jié)構(gòu)的宏觀對比如下圖所示:

Cortex-M3是一個 32 位處理器內(nèi)核,正因如此,STM32才被稱作為32-bit微控制器,他擁有32條地址總線,也就是說最大尋址空間為。此外,Cortex-M3的寄存器是32 位的,存儲器接口也是 32 位的,其詳細結(jié)構(gòu)如下圖所示:

二、最小系統(tǒng)板

或許大家有經(jīng)常聽起過最小系統(tǒng)板這個詞兒,那么什么是最小系統(tǒng)板呢?其實最小系統(tǒng)板就是一個最精簡的電路,精簡到只能維持MCU的最基本的正常工作。最小系統(tǒng)一般由外部復位電路、外部時鐘電路以及MCU本體構(gòu)成,除此之外沒有其他諸如藍牙、外置EEPROM、時鐘芯片DS1302、SPI接口顯示屏等外接設備。(注:STM32支持內(nèi)部時鐘和上電復位,但從傳統(tǒng)意義上講最小系統(tǒng)就是由外部復位電路、外部時鐘電路以及MCU本體構(gòu)成。)我在淘寶上買了一塊STM32F103C8T6的最小系統(tǒng)板,板子的設計很精致。喏,它長這個樣子:

如果你對最小系統(tǒng)仍一知半解,那你看看下面這個正點原子開發(fā)的開發(fā)板就能夠明白,最小系統(tǒng)是真的精簡到不能再精簡了。

其實淘寶買來的最小系統(tǒng)板和10塊錢包郵的那個藍色最小系統(tǒng)板區(qū)別不大,只是將一些引腳引出好插諸如顯示屏類的外設。板子設計的很巧妙,所有引腳都引出來了,同時預留四個接口方便接入顯示屏等設備,預留了SWD調(diào)試接口,可以使用ST-LINK下載程序與仿真。

跟STC89C52RC單片機不一樣的是,STM32F103C8T6的GPIO有8種模式,其中包含上拉、下拉輸入模式,所以外接按鈕時可不設計上下拉電阻。根據(jù)他的原理圖顯示:按鍵KEY0一端接到3.3V的VCC,一端接到PA0引腳。發(fā)光二極管LED0一端也同樣經(jīng)1KΩ電阻接到3.3V的VCC,另一端則接到PC13上。因此,想要讓二極管發(fā)光的話需要讓PC13輸出低電平。STM32最大工作電壓3.6V,使用了LDO(低壓差線性穩(wěn)壓器)將輸入電壓VIN降到3.3v給微控制器供電。3.3V和GND之間的4個0.1uf的旁路電容(去除高頻交流信號)接到了芯片的4個VDD和4個VSS上(WHAT?芯片為啥整四個VDD和四個VSS?我猜應該是增強供電能力,保證供電的可靠性)。

三、命名規(guī)則

我在網(wǎng)上找到了STM32F103中文手冊,單片機命名原理如下圖所示:

四、引腳排布&引腳復用

根據(jù)命名規(guī)則可知,STM32F103C8T6中的C代表著這款芯片有48個引腳,其引腳排布如下圖所示:

STM32微控制器有著豐富的功能,僅靠48個引腳是不夠分配所有功能的,所以有的引腳可以實現(xiàn)好幾種功能,這就叫引腳復用。一般而言,大部分引腳的第一功能是GPIO(通用輸入輸出口)。但值得注意的是:PA13、PA14、P15、PB3、PB4、PC14、PC15、PD0、PD1的默認功能并不是GPIO,使用時需要開啟AFIO時鐘,注意一下這一點。B站某UP制作了一個直觀的圖片,如下圖所示:

圖片來源:公眾號"電子開發(fā)學習"

官方手冊提供的STM32F103系列微控制器引腳的默認功能如下圖所示:

五、程序下載

STM32單片機支持3種程序下載方式,根據(jù)原理不同可分為ISP串口下載(使用USB-TTL接PA9、PA10)、SWD下載(使用ST-LINK接PA13、PA14)、JTAG下載(使用JLINK接PA13、PA14、PA15、PB3、PB4)。

1.ISP下載

ISP的全程是In-System Programming,在線系統(tǒng)編程的意思。STM32單片機一般可通過UART1引腳進行程序燒錄,燒錄的時候需要配合BOOT0、BOOT1接地與否來實現(xiàn)。BOOT0、BOOT1可以組合出四種狀態(tài),不同位置的含義如下圖所示,其中X是無關(guān)項。

使用ISP串口下載前,將單片機上電之前需要先用跳線帽把BOOT0短接到1的位置,BOOT1短接到0的位置,即系統(tǒng)存儲器模式,然后才能通過串口下載程序。ISP串口下載完成后斷電,在單片機上電之前需要先用跳線帽把BOOT0短接到0的位置,即主閃存存儲器模式。

由于單片機使用的TTL電平通信協(xié)議,與電腦的USB口進行串口通信時需要使用轉(zhuǎn)串口芯片,常見的有CH340系列(如CH340N)、FT232、PL2303等等,下圖以CH340T為例。

下載器GND與單片機GND相連(連一個就行),下載器3.3V與單片機3.3V相連(或者下載器5V與單片機VIN相連)、下載器RXD與單片機PA9(U1TX)相連,下載器TXD與單片機PA10(U1RX)相連。

了解接線后,可以嘗試編譯下載。下載軟件有很多,ST官方出了Flash Loader Demonstrator軟件用于程序下載,國內(nèi)也有一款FLYMCU的下載軟件。

Flash Loader Demonstrator

2.SWD下載

使用SWD接口下載只需要連接3.3V(如果燒錄程序的板子自帶供電的話3.3V引腳也不用連)、GND、SWDIO(PA13)、 SWCLK(PA14)、RST(非必要連線),可以從淘寶購買十幾塊的ST-LINK下載器(這種U盤形狀的其實不是ST公司出品的,但是燒錄了他們的固件,也是可以用滴)。使用SWD接口除了可以燒錄程序外,還可以實現(xiàn)在線仿真(debug),仿真過程可以監(jiān)視寄存器等數(shù)據(jù),非常適合軟件開發(fā)(找問題)。值得注意的是,ST-LINK/V2只支持給自家的STM32和STM8燒錄程序,不支持為其他公司的單片機燒錄程序(即使同樣搭載Cortex-M3內(nèi)核)。

ST-LINK/V2

3.JTAG下載

JTAG接口需要使用TMS(模式選擇)、TCK(時鐘)、TDI(數(shù)據(jù)輸入)、TDO(數(shù)據(jù)輸出)、nTRST(復位,非必要),對應到STM32F103C8T6上就是PA13(TMS)、PA14(TCK)、PA15(TDI)、PB3(TDO)、PB4(nTRST)引腳,這些引腳第一功能就是JTAG接口,這就是上面所說的為什么這些引腳不能簡單的當GPIO用。采用JTAG下載時可以使用J-LINK下載器(正版SEGGER的J-LINK價格比較昂貴,國內(nèi)仿制的建議買V9版本以上),也可以使用ST公司原廠或國內(nèi)仿制的帶JTAG接口的ST-LINK/V2(如正點原子推出的,不過還是好貴,嗚嗚嗚)。不過JTAG能實現(xiàn)的功能SWD一般也能實現(xiàn),我比較懶,一般不使用這種下載接口。

J-LINK

ST-LINK/V2

如果我們不需要使用JTAG下載,但GPIO資源緊張或PCB設計時已經(jīng)使用了這些第一功能為JTAG的引腳,那么我們就需要關(guān)閉JTAG。比如說我要使用GPIOA15作為GPIO口,那么代碼層面需要這樣實現(xiàn):

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//使能PORTA時鐘

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);// 關(guān)閉JTAG但使能SWD

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;//PA15

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //設置成上拉輸入

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO

詳細關(guān)閉方法:見另一位博主的《STM32 JTAG調(diào)試》

六、RTT

RTT的全稱是Real Time Transfer,翻譯過來就是實時傳輸。為什么給大家介紹這個呢,上面有講到J-LINK、ST-LINK等可以下載程序,也可以在線仿真。那么問題來了,他們直接支持串口通信嘛?答案是不可以!!!不過別慌,針對這個問題SEGGER公司推出了共享內(nèi)存技術(shù),這個功能可以省去外接使用USART進行串口數(shù)據(jù)測試,灰常方便。不過由于RTT是SEGGER公司推出的,所以這個是需要使用J-LINK V8版本及以上的調(diào)試器的,如果不差錢的話,可以優(yōu)先考慮J-LINK。RTT支持所有搭載ARM Cortex-M0/M0+/M1/M3/M4/M7/M23/M33內(nèi)核的MCU,不局限于STM32。

SEGGER官網(wǎng)

不過使用RTT功能是需要往工程文件里添加SEGGER提供的源代碼的,官網(wǎng)安裝包:" data-link-title="<官網(wǎng)下載>"><官網(wǎng)下載>,詳細的安裝與使用教程見《硬漢哥分享的資料》。

導入源代碼后可以在程序中使用以下函數(shù),這些函數(shù)根據(jù)描述看很容易知道他的作用:

函數(shù)名 描述

SEGGER_RTT_Read() Read data from an input buffer.

SEGGER_RTT_Write() Write data to an output buffer.

SEGGER_RTT_WriteString() Write a zero-terminated string to an output buffer.

SEGGER_RTT_printf() Write a formatted string to an output buffer.

SEGGER_RTT_GetKey() Get one character from input buffer 0.

SEGGER_RTT_HasKey() Check if a character is available in input buffer 0.

SEGGER_RTT_WaitKey() Wait for a character to be available in input buffer 0 and get it.

SEGGER_RTT_ConfigUpBuffer() Configure an up (output) buffer.

SEGGER_RTT_ConfigDownBuffer() Configure a down (input) buffer.

SEGGER_RTT_Init() Initialize RTT Control Block structure when using RAM only targets.

SEGGER_RTT_SetTerminal() Set the "virtual" Terminal to use for output on channel 0 via Write and WriteString.

SEGGER_RTT_TerminalOut() Send a zero-terminated string via a "virtual" terminal.

最后,使用RTT需要在電腦上安裝J-Link RTT Viewer、J-Link RTT Client、J-Link RTT Logger,這3個終端可以選擇自己喜歡的安裝使用。

七、RTOS

RTOS(Real-time operating system)是實時操作系統(tǒng)的總稱,目前市面上有freeRTOS、RT-Thread、UCOS-III等多種實時操作系統(tǒng),到了STM32這種復雜而強大的硬件層面,程序員將不再僅僅拿它當傳統(tǒng)的MCU來跑裸機程序(裸機是指沒有用上RTOS的程序),而是開始考慮程序的協(xié)調(diào)性和并行多任務(并不是真正意義上的并行,因為單核同一時間只能處理一件事情)。RTOS是一個有趣的東西,如果大家感興趣我后期會考慮更新一篇有關(guān)RTOS的文章,大家目前可以去freeRTOS官網(wǎng)看看或者閱讀其他作者的文章。

八、官網(wǎng)原文介紹

The STM32F103xx medium-density performance line family incorporates the high-performance ARM®Cortex®-M3 32-bit RISC core operating at a 72 MHz frequency, high-speed embedded memories (Flash memory up to 128 Kbytes and SRAM up to 20 Kbytes), and an extensive range of enhanced I/Os and peripherals connected to two APB buses. All devices offer two 12-bit ADCs, three general purpose 16-bit timers plus one PWM timer, as well as standard and advanced communication interfaces: up to two I2Cs and SPIs, three USARTs, an USB and a CAN.

The devices operate from a 2.0 to 3.6 V power supply. They are available in both the –40 to +85 °C temperature range and the –40 to +105 °C extended temperature range. A comprehensive set of power-saving mode allows the design of low-power applications.

The STM32F103xx medium-density performance line family includes devices in six different package types: from 36 pins to 100 pins. Depending on the device chosen, different sets of peripherals are included, the description below gives an overview of the complete range of peripherals proposed in this family.

These features make the STM32F103xx medium-density performance line microcontroller family suitable for a wide range of applications such as motor drives, application control, medical and handheld equipment, PC and gaming peripherals, GPS platforms, industrial applications, PLCs, inverters, printers, scanners, alarm systems, video intercoms, and HVACs.

主要特性

ARM®32-bit Cortex®-M3 CPU Core

72 MHz maximum frequency,1.25 DMIPS/MHz (Dhrystone 2.1) performance at 0 wait state memory access

Single-cycle multiplication and hardware division

Memories

64 or 128 Kbytes of Flash memory

20 Kbytes of SRAM

Clock, reset and supply management

2.0 to 3.6 V application supply and I/Os

POR, PDR, and programmable voltage detector (PVD)

4-to-16 MHz crystal oscillator

Internal 8 MHz factory-trimmed RC

Internal 40 kHz RC

PLL for CPU clock

32 kHz oscillator for RTC with calibration

Low-power

Sleep, Stop and Standby modes

VBAT supply for RTC and backup registers

2 x 12-bit, 1 μs A/D converters (up to 16 channels)

Conversion range: 0 to 3.6 V

Dual-sample and hold capability

Temperature sensor

DMA

7-channel DMA controller

Peripherals supported: timers, ADC, SPIs, I2Cs and USARTs

Up to 80 fast I/O ports

26/37/51/80 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant

Debug mode

Serial wire debug (SWD) & JTAG interfaces

7 timers

Three 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input

16-bit, motor control PWM timer with dead-time generation and emergency stop

2 watchdog timers (Independent and Window)

SysTick timer 24-bit downcounter

Up to 9 communication interfaces

Up to 2 x I2C interfaces (SMBus/PMBus)

Up to 3 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control)

Up to 2 SPIs (18 Mbit/s)

CAN interface (2.0B Active)

USB 2.0 full-speed interface

CRC calculation unit, 96-bit unique ID

Packages are ECOPACK®

九、文章小結(jié)

STM32F103C8T6單片機采用LQFP48封裝設計,芯片一共引出44只引腳,其中A口有A0-A15共16個引腳,B口有B0-B15共16個引腳,C口有C13-C15共3個引腳,D口有D0-D1共兩個引腳。值得注意的是最小核心板C14和C15接了32.768K晶振,D0和D1接了8MHz晶振,一般不要用做IO口。如果實在要用只能去掉外部晶振電路(使用HSI、LSI),通過重映射和配置AFIO_MAPR寄存器實現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉