STMCU小助手
发布时间:2022-12-27 18:00
|
概述7 h6 q* n0 L, y2 V STM32F103RCT6 共4组IO口1 z) z9 y( l+ t' p! p3 t 16*3+3 = 51个IO口 GPIOA0 ~ A15 GPIOB0 ~ B15 GPIOC0 ~ C15 GPIOD0 ~ D2 ' f" O! K- [( q: I/ c IO口的基本结构7 M$ J; A$ ~& N6 s) K8 k
. v, o9 F" \( h x" S 4种输入模式 输入浮空/ T' P. b& y4 s1 N$ ?. v" ] 4 ]; [4 w, E% a! u' D" B( ^" n
/ z0 S3 b" {6 T/ Y' b3 M 输入上拉 上图中上面打叉的部分开关闭合,上拉电阻约为30至50k* M6 L6 K+ t2 h6 h# t$ } . Q |7 M, ?' c6 q% G, O 输入下拉$ P. }/ b3 t# L! i 与上类似* I" s: Y1 R) A) G1 ] / x# W1 U% ?2 [+ d: X9 Q 模拟输入
4种输出模式 开漏输出
开漏复用功能# I+ r) V# b* J& C4 H( V8 G ; m8 \2 ^* ?7 @
9 T" A N2 w8 y+ z 推挽式输出0 i! c0 b& m* D 推挽式复用功能7 E! `0 O" f* K4 R4 |! h# a 8 y% P' u6 Y9 W x8 m3 L; @$ o 3种最大翻转速度 2MHz& x' y% a' J7 w* Q+ } 10MHz$ @, D; n5 @: L; B# X! Y 50MHz, g: q' u, y6 A7 B9 O - a8 s: L* m1 H* b7 m \5 E 每组IO口包括的寄存器! a# Y4 C% G- j 两个32位配置寄存器,GPIOx_CRL GPIOx_CRH 两个32位数据寄存器,GPIOx_IDR GPIOx_ODR& \$ ^# \, d7 b. s, {0 U- r 一个32位置位/复位寄存器,GPIOx_BSRR) v9 |# g; \* A1 l" B 一个16位复位寄存器,GPIOx_BRR 一个32位锁存寄存器,GPIOx_LCKR 每个IO端口位允许自由编程,然后IO端口寄存器必须按32位字进行访问,不允许字节访问: @9 C8 i, y$ z: O & H' R0 {- E3 l# Q9 Z; j% z8 O 对于一组IO口,每个IO口的配置需要寄存器的4位,每组一共16个IO口,因此需要寄存器的64位,由于STM32是32位的,所以分成了2个寄存器去配置# q4 A/ ~8 ^9 c( r GPIOx_CRL A0~PA7) I1 y0 H6 \* M+ j$ N% C GPIOx_CRH A8~PA15% ^! O* o0 b5 \4 A- y/ K0 b# M$ { 每个IO口的配置需要寄存器的4位,其中2位是模式位MODE,2位是配置位CNF: j s$ n; c# _1 x, F - [) B; Q% N! j; |% i2 s $ l2 H; Y" D/ P+ ~& V 输入数据寄存器/ A6 Y% k* a: P GPIOA_IDR分别对应每一位,即GPIOx_IDR0对应PA0 , p `3 o8 V) u' r S) k + E1 O; i w( H, b" p 输出数据寄存器5 Y# O& F7 b% M0 K! R& } GPIOA_ODR与上类似 C( _ |5 _2 W5 @+ z' f GPIOx_BSRR置位寄存器 " |2 ?8 S/ D6 _1 Y 其实就是控制下图红框中的部分
* E8 I. M$ L+ Y1 N 例如,我要操作某一位,使其置1,则只需要将这一位置1,其他位置0即可,与ODR寄存器不同的是,ODR寄存器给1就是1,给0就是0,BSRR给1就是1,给0不修改8 ` S, v& N4 |6 i' w; S 通常只使用BSRR的低16位' _& S/ D) a: p$ p # l" ]/ V9 t0 U% X2 o GPIOx_BRR置位寄存器! }/ e9 m, R; S ; f! A( n+ z$ h* d* ~0 I# s f 类似 * b& \" j! u6 T: P+ A9 E, P 通常只使用BRR的低16位/ `" B1 ?# o7 V; h! t' @; |6 g5 f 端口复用 相当于是一个开关+ ?; T* W6 j' p& H8 k+ D2 [0 G8 f1 z( ~ 端口重映射 方便布线,参考Datasheet里的Remap7 J2 Y5 m: G* j6 t ) P1 k; a) X5 a2 {, c' Y STM32的所有IO口都可以作为中断输入8 O. a" D6 F8 D" d $ t# Q4 n5 X) L6 h- `* G 6 t% b- e2 P8 ~; E GPIO查看MODE、PIN、SPEED的可选项
% ^8 |* u( d" Z% M0 {2 R @
1 ], ^3 _* r. ~9 x 类似地,查看PIN % ]0 K* M8 k9 L( |! D5 s
3 p* P( D0 w. X7 ~- z 查看SPEED6 D8 h9 l5 M1 k+ E% {2 f& S) q8 f) k: T 7 j/ b! ] {, a, j+ ?
& N, l/ N( u# ^! B. r ————————————————% v7 \ ~; S( `6 w1 W. f 版权声明:CodeForCoffee1 ]% b8 M/ A# i) S0 J8 E 9 L* n+ K0 c. i$ g1 h: w! O |
DMA 原理从 0 到 1:为什么它能解放 CPU?一文讲透 DMA 的工作流程
【福利三:雨露均沾·逢7狂欢】之五:STM32系统时钟PLL故障排除1例
【福利三:雨露均沾·逢7狂欢】之三:AI帮我查BUG
福利三:雨露均沾·逢7狂欢】之二:STM32F407VG串口通信乱码故障的排除
基于STM32F103的I2C主从机通信
OpenBLT移植到STM32F103战舰开发板上适用于所有STM32F103系列的Bootloader
TFT LCD 与 FSMC 的硬件连接大容量 STM32F10xxx FSMC 接口
单片机:初学者该了解的STM32F103基础知识
2025软件工具兔哥知道
STM32之继电器模块
微信公众号
手机版