一、stm32硬件资源和模块介绍 2.1开发板原理图详解; P! Z9 F7 Z6 q f- t" s$ r$ L 1、 硬件资源:; u. A/ @6 Y# \$ w! L 64KB SRAM、512KB FLASH、2个基本定时器、4个通用定时器2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个ⅡC、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、1个FSMC接口、112个通用IO接口5 O( W& G* }: P o( i8 N$ D2 p 还带有外部总线(FSMC)可以用来外扩SRAM和连接LCD等,通过FSMC驱动LCD,可以显著提高LCD的刷屏速度。5 @1 C0 l) ^9 N / @- H- e+ r0 S' H* ~" r8 w 2、注意事项:- N' J, `2 d" N; G) L) M, C 1、后备区域供电脚采用CR1220纽扣电池和VCC3.3混合供电方式,在有外部电源(VCC3.3)的时候,CR1220不给VBAT供电,而在外部电源断开的时候,则由CR1220供电,这样VBAT总是有电,以保证RTC的走时以及后备寄存器的不丢失。2 }$ H$ ~' L& ~" o2 U - v) ^6 M& P8 k/ u* Z+ d. ? 2、开发模拟部分(ADC/DAC)的参考电压(Vref+和Vref-)固定接到3.3V和GND,不可设置。- ]2 H% |% T, e9 m! ^3 \ & ?9 ~2 e& L4 M _+ E8 O( I 2.2引出IO口 : p7 y' M0 p# D$ N# O+ k 图中P1和P2为MCU(微控制单元也就是单片机)主IO引出口,这两组排针共引出了106个IO口,STM32F103ZET6共有112个IO,除去RTC(时钟芯片)晶振占用的2个,还剩110个,这两组主引出排针,总共引出了106个IO,剩下的4个IO口分别通过:P3(PA9&PA10)P5(PA2&PA3)这两组排针引出。 W& X B5 n# r* v0 _ 排针:就是芯片引出管脚的那个金属 / z/ H9 z# D2 u3 f 2.3模块使用说明- Q m, M8 o4 R) s) D4 W% v/ C 1、USB串口/串口1选择接口 STM32F103板载的USB串口和STM32F103ZET6的串口是通过P3连接起来的。如下图所示: L* L) g' u6 W$ v" h & _* _% g3 v' b9 r9 k% _; T+ Z (也就是单片机的PA9脚和单片机的PA10脚与串口硬件的USART1_RX和USART1_TX相互连接)实现USB串口和STM32F103ZET6的通信,同时P3是PA9和PA10的引出口。) @# M: h* S. }1 P7 F 4 U7 z8 u# v9 ]' b5 B& w* H$ Q 如果用到外部TTL串口和STM32通信时,只需要拔了跳线帽,通过杜邦线连接外部TTL串口,就可以实现和外部设备的串口通信了: K4 H$ f2 @5 ] c3 g" a% `; r M # }3 y; x; _. s- O/ \# D* W8 Z 有关我的板子想和电脑通信,但电脑没有串口,那么就可以用开发板的RXD和TXD来连接设备,把我们的开发板当成USB转TTL串口使用。 注: ) W3 d ]$ g$ w/ _7 @& L 1、什么是杜邦线? 7 ?4 p% M! ~5 u. V 可用于实验板的引脚扩展,增加实验项目等。可以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。 2、什么是TTL串口?+ J- ]+ [, I3 k) I; g5 C : @. V& G" Y9 |# V _& f 就是输入、输出的标准的高低电平(0、1)的接口 单片机串口输入、出是TTL电平(0、5v),而标准串口常用±12v,所以要转换,常使用232芯片。2 R4 z { v1 |8 O* X E% g4 Y4 y0 R 3、USB串口在单片机中的具体位置: # b' ]# J* ?( H; i4 `* n9 ~1 s; A2 F [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9FhsIKg-1634482658078)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20211011215143722.png)]# D0 a t, H" \, A. M 2、LCD模块接口 ; [1 j; H# s' r8 l! N" v LCD接口接在了STM32F103ZET6的FSMC总线上(不是一条线),可以显著提高LCD的刷屏速度。 ! U$ r$ O1 u) L2 z% ^" l 图中的 T_MISO/T_MOSI/T_PEN/T_SCK/T_CS 连接在 MCU 的 PB2PB2/PF9/PF10/PB1/PF11 上, 这些信号用来实现对液晶触摸屏的控制(支持电阻屏和电容屏)。LCD_BL 连接在 MCU 的 PB0 上,用于控制 LCD 的背光。液晶复位信号 RESET 则是直接连接在开发板的复位按钮上,和 MCU 共用一个复位电路。 2 H! z$ Z, |) D* ^# e4 h 注: , a4 J1 K' C- \& x5 Q LCD接口在板子上的具体位置: 3、复位电路3 C- T, r: o! a0 i) _) n2 U0 q8 u* s ; n# q9 |# q; {: c3 }# n8 a' ]6 x 由于stm32是低电平复位的,所以设计的电路也是低电平复位的,同时,开发板把TFT_LCD的复位引脚也接在RESET上,这样复位按钮不仅可以用来复位MCU,还可以复位LCD。 7 @0 A; h3 [5 F; Y# E, q 注: 1、单片机复位电路的作用? “使单片机的状态处于初始化状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。” 4、启动模式设置接口 其中BOOT0和BOOT1用于设置STM32的启动方式,其对应方式如下表所示:. f/ w( u( T% J I4 n. y ' @6 d+ X ~$ G# \5 h% e- A2 U* V# e 如果用串口下载代码:必须配置BOOT0为1,BOOT1为0. 如果让STM32一按复位键就开始跑代码:则配置BOOT0为0,BOOT1随便设置。 正点原子开发板专门设计了一键下载电路,通过串口的 DTR 和 RTS 信号,来自动配置 BOOT0 和 RST 信号,因此不需要用户来手动切换他们的状态,直接串口下载软件自动控制,可以非常方便的下载代码。 4 N2 w1 a$ K+ X% q: d 5、R485选择接口4 Y( ?4 @, x; V $ ]. P( `3 C7 U- {3 x 5 f% j9 p: O, g2 e- W x1 k 图中,USART2_RX 和 USART2_TX 分别连接在 STM32F103ZET6 的 PA3 和 PA2 上面, RS485_TX 和 RS485_RX 则分别连接在 SP3485 的 RO 和 DI 引脚。当我们用 2 个跳线帽短接 P5 的 1 和 3、2 和 4,即可实现 RS485 接口连接在 STM32 的串口 2 上面,完成 RS485 通信。: ]! z) `2 |5 p8 V * I2 _# S R5 v7 C- J/ }8 V* V 当拔 了这两个跳线帽的时候,该接口可以实现 2 个功能: ) g/ Y" g+ ]6 |; r 1、作为 PA2 和 PA3 的引出 IO 口 . ]& E1 y8 C7 \ 2、开 发板的 RS485 部分,作为 RS485 转 TTL 模块使用。" ]8 M9 r# y1 O) M2 S% o" W ( a, L0 _0 U) b' t; ~/ h2 ] 6、RS485接口(应该用不到) RS485 电平也不能直接连接到 STM32,同样需要电平转换芯片。这里我们使用 SP3485 来 做 485 电平转换,其中 R20 为终端匹配电阻,而 R14 和 R17,则是两个偏置电阻,以保证静默 状态时,485 总线维持逻辑 1。 RS485_RX/RS485_TX 连接在 P5 上面,通过 P5 跳线来选择是否连接在 MCU 上面, RS485_RE 则是直接连接在 MCU 的 IO 口(PD7)上的,该信号用来控制 SP3485 的工作模式(高电平为发送模式,低电平为接收模式)。! C& r9 R1 [7 F8 _) i4 t ' n; C4 l+ K/ X& k! d( M* d2 d! t 7、CAN/USB接口9 Y# }5 K* T7 P' D * I0 L9 ^+ @! h$ [, A ' W2 c* }0 O& y+ S) @ CAN总电平不能直接连接到STM32上,同时需要电平转换芯片。本板子用TJA1050来做CAN电平转换,其中R25为终端匹配电阻。* y1 ^* y- I8 n$ { USB_D+/USB_D-连接在 MCU 的 USB 口(PA12/PA11)上,同时,因为 STM32 的 USB 和 CAN 共用这组信号,所以我们通过 P6 来选择使用 USB 还是 CAN。(跳线帽) USB_SLAVE 可以用来连接电脑,实现 USB 读卡器或USB虚拟串口等USB 从机实验。另外,该接口还具有供电功能,VUSB 为开发板的USB 供电电压,通过这个 USB 口,就可以给整个开发板供电了。 ! T& @; K# H9 Y 8、SPI FLASH! M7 h3 B1 u* z( ^3 f# D+ I& c0 K [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AvzSieZP-1634482658091)(…/…/…/AppData/Roaming/Typora/typora-user-images/image-20211011225314271.png)] ' g/ G. L7 T" V1 r: c& h0 L SPI FLASH 芯片型号为 W25Q128,该芯片的容量为128Mb,也就是 16M 字节。该芯片和NRF24L01共用一个 SPI(SPI2),通过片选来选择使用某个器件,在使用其中一个器件的时候, 请务必禁止另外一个器件的片选信号。 图中 F_CS 连接在 MCU的PB12 上,SPI2_SCK/SPI2_MOSI/SPI2_MISO 则分别连接在 MCU 的PB13/PB15/PB14上。 5 D6 l2 F4 }8 d+ J. ?8 k4 }+ n 9、AD/DA组合接口 f% Y( p& `6 @) N' r/ l ALIENTEK 精英 STM32F103 板载了一个 AD/DA 组合接口,即 P7 接口+ Q: M: _ c' x& [& E: v ! k2 k# ?5 M5 |4 B2 A 其中 TPAD 为电容触摸按键信号,连接在电容触摸按键上。STM_ADC 和 STM_DAC 则分别连接在 PA1 和 PA4 上,用于 ADC 采集或 DAC 输出。当需要电容触摸按键的时候,我们通过跳线帽短接 TPAD 和 STM_ADC(默认是连接的),就可以实现电容触摸按键(利用定时器的输入捕获)。另外, STM_ADC 还可以用与 AD 采集。STM_DAC 信号则既可以用作 DAC 输出,也可以用作 ADC 输入,因为 STM32 的该管脚同时具有这两个复用功能。 特别注意:STM_DAC 与摄像头的 GBC_KEY 共用 PA4,所以他们不可以同时使用,但是可以分时复用。6 g g# I* k- q8 `. X1 A. @ 3 D4 e" f& e+ `: F 2.4 总结1 {- K* `9 u l* O; C' Y 比赛的时候,知道各个模块的作用是什么?有什么功能?每个模块的引脚分别接在STM32芯片的那个引脚上,能够分清,回头如果真正比赛的时候,直接把用到的模块复制过去,然后和主要的STM32芯片相连,然后再编程驱动模块,最后实现想要的功能。 ———————————————— 版权声明:main( ) 6 z! ^; K/ l6 `' P# S" |: f/ N |
STM32F10xxx 正交编码器接口应用笔记 及源代码
小马哥STM32F103开源小四轴RoboFly全部资料大放送
分享一个STM32F103的硬件IIC代码库,完美解决IIC问题!
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
MultiButton移植到STM32F103战舰开发板
UDS诊断服务
使用Nano板验证驱动SPI串口屏的颜色显示
使用STM32F103制作的无线下载器
STM32F103移植LittlevGUI代码
【MCU实战经验】+自制MP3使用STM32F103ZET6和ch375读取u盘,vs1003解码,音质超棒