单片机交流
直播中

李骏鹏

7年用户 1191经验值
私信 关注
[问答]

什么是STM32F103C8T6单片机?

什么是STM32F103C8T6单片机

回帖(1)

李红梅

2021-11-3 10:17:08
STM32F103C8T6是一款基于ARM Cortex-M3内核(ARM公司在ARM11以后改用Cortex命名,并分成A、R和M三类,M系列有M0、M0+、M3、M4、M7)的32位的微控制器,采用LQFP48封装,由意法半导体公司(ST)推出,属于STM32系列(ST公司还有SPC5X系列微控制器)。其程序存储器FLASH容量是64KB (64K x 8bit),RAM容量是20KB(20K x 8bit),2个12bit ADC合计12路通道(外部通道只有PA0到PA7、PB0到PB1,并不是18通道),37个通用I/O口(PA0-PA15、PB0-PB15、PC13-PC15、PD0-PD1),4个16bit通用定时器(TIM1(带死区插入,常用于产生PWM控制电机)、TIM2、TIM3、TIM4),2个看门狗定时器(独立看门狗、窗口看门狗)1个24bit向下计数的滴答定时器(很重要,一般delay都使用这个定时器实现),2*IIC,2*SPI,3*USART,1*CAN,工作电压2V~3.6V,工作温度为-40°C ~ 85°C,系统时钟最高可到72MHz(一般是由8MHz的外部时钟经锁相环9倍频到72MHz)。
点击跳转:相关学习资料



  • 最小系统板:

最近在学习STM32系列单片机,希望通过写博客的方式能够加深我对学习内容的理解。我在淘宝上买了一块STM32F103C8T6的最小系统板,板子的设计很精致。喏,它长这个样子:





其实他和10块钱包邮的那个蓝色核心板区别不大,只是将一些引脚引出好插诸如显示屏类的外设。板子设计的很巧妙,所有引脚都引出来了,同时预留四个接口方便接入显示屏等设备,预留了SWD调试接口,可以使用ST-LINK下载程序与仿真。跟STC89C52RC单片机不一样的是,STM32F103C8T6的GPIO有8种模式,其中包含上拉、下拉输入模式,所以外接按钮时可不设计上下拉电阻。根据他的原理图显示:按键KEY0一端接到3.3V的VCC,一端接到PA0引脚。发光二极管LED0一端也同样经1KΩ电阻接到3.3V的VCC,另一端则接到PC13上。因此,想要让二极管发光的话需要让PC13输出低电平。STM32最大工作电压3.6V,使用了LDO(低压差线性稳压器)将输入电压VIN降到3.3v给微控制器供电。3.3V和GND之间的4个0.1uf的旁路电容(去除高频交流信号)接到了芯片的4个VDD和4个VSS上(WHAT?芯片为啥整四个VDD和四个VSS?我猜应该是增强供电能力,保证供电的可靠性)。








  • 开发板参数

我在网上找到了STM32F103中文手册,单片机命名原理和硬件资源归纳如下图所示:













  • 引脚分布







值得注意的是:PA13、PA14、P15、PB3、PB4、PC14、PC15、PD0、PD1的默认功能并不是GPIO,使用时需要开启AFIO时钟,注意一下这一点。B站某UP制作了一个直观的图片,如下图所示:
     



     图片来源:公众号"电子开发学习"   
官方手册提供的STM32F103系列微控制器引脚的默认功能如下图所示:








  • 程序下载

STM32单片机支持3种程序下载方式,根据原理不同可分为ISP串口下载(使用USB-TTL接PA9、PA10)、SWD下载(使用STLINK接PA13、PA14)、JTAG下载(使用JLINK接PA13、PA14、PA15、PB3、PB4)。
1.ISP下载
ISP的全程是In-System Programming,在线系统编程的意思。STM32单片机一般可通过UART1引脚进行程序烧录,烧录的时候需要配合BOOT0、BOOT1接地与否来实现。BOOT0、BOOT1可以组合出四种状态,不同位置的含义如下图所示,其中X是无关项。





使用ISP串口下载前,将单片机上电之前需要先用跳线帽把BOOT0短接到1的位置,BOOT1短接到0的位置,即系统存储器模式,然后才能通过串口下载程序。ISP串口下载完成后断电,在单片机上电之前需要先用跳线帽把BOOT0短接到0的位置,即主闪存存储器模式。
由于单片机使用的TTL电平通信协议,与电脑的USB口进行串口通信时需要使用转串口芯片,常见的有CH340系列(如CH340N)、FT232、PL2303等等,下图以CH340T为例。





下载器GND与单片机GND相连(连一个就行),下载器3.3V与单片机3.3V相连(或者下载器5V与单片机VIN相连)、下载器RXD与单片机PA9(U1TX)相连,下载器TXD与单片机PA10(U1RX)相连。
了解接线后,可以尝试编译下载。下载软件有很多,ST官方出了Flash Loader Demonstrator软件用于程序下载,国内也有一款FLYMCU的下载软件。
     



     Flash Loader Demonstrator   
2.SWD下载
使用SWD接口下载只需要连接3.3V、GND、SWDIO(PA13)、 SWCLK(PA14)、RST(非必要连线),可以从淘宝购买十几块的STLINK下载器。使用SWD接口除了可以烧录程序外,还可以实现在线仿真(debug),仿真过程可以监视寄存器等数据,非常适合软件开发(找问题)。
     



     STLINK下载器   

3.JTAG下载
JTAG下载会占用PA13、PA14、PA15、PB3、PB4引脚,STM32F103C8T6默认启动JTAG模式,这就是上面所说的为什么这些引脚不能简单的当GPIO用。
采用JTAG下载时需要使用JLINK下载器,价格比较昂贵(近100元),能实现的功能SWD差不多也能实现,不推荐这种下载方式。
     



     JLINK下载器   
如果我们不采用JTAG下载,而且要使用这些引脚做GPIO,那么我们就需要关闭JTAG。比如说我要使用GPIOA15作为GPIO口,那么代码层面需要这样实现:
     GPIO_InitTypeDef GPIO_InitStructure;         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);//使能PORTA时钟        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);// 关闭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 详细关闭方法:见另一位博主的《STM32 JTAG调试》



  • ST公司对STMF103系列单片机的介绍

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®




  • 小结

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寄存器实现。
其实在学习STC15系列单片机后对STM32单片机一度有恐惧感,STC15F2K60S2单片机的寄存器我觉得已经很多了,STM32那么多寄存器大家是怎么记住的。现在开始学习才了解到官方有出固件库供大家调用,根据推出时间不同可分早期固件库(V3.0.0以下)、标准外设库(点我跳转)HAL库(点我跳转)LL库(LL库包含在HAL库里了) 四种。目前最新的标准库版本为V3.5.0,调用官方提供的API进行开发,为ST公司2011年发布,停更已有10年的时间了。使用HAL可进行图形化开发,感官上更加生动形象。不过由于HAL库旨在解决标准库在不同系列单片机上不同通用的问题,其代码执行效率没有标准库高。如果编译器优化等级低,产生HEX文件会比较大。后来ST针对此问题推出了LL库,LL库大多数API函数是直接调用寄存器,提高了代码的执行效率。不过,一般推出的时间越久,我们所能搜集到的资料就越丰富,我目前在学习标准库的开发方式,建议大家根据自身情况做出选择。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分