前言
- 本博文基于STM32F103ZET6编写;
- 如有不足之处,多多指教;
多功能引脚图
下图为STM32芯片引脚细节图
由图片可知,STM32大部分GPIO都有复用功能,所以在配置的时候要格外小心;
下图为**《STM32大容量手册》引脚功能分类图**
引脚分类(按照我自己理解给分的类)
第一类:非GPIO单功能引脚
电源引脚Vdd;
接地引脚Vss;
芯片掉电保持引脚VBAT;
外部晶振引脚OSC_IN和OSC_OUT;
空引脚NC;
复位引脚NRST;
参考电压引脚VREF+和VREF-;
BOOT0引脚;
特点: 这列引脚往往在Pin name这栏中都是以本身的功能名命名;
第二类:GPIO单功能引脚
例如最后一个表格中的PG15,只有普通输入输出的功能(主要功能),没有默认功能和复用功能;
第三类:主要功能复用的GPIO引脚
只有一个:PB2引脚,它和BOOT1引脚共用;
第四类:主要功能为GPIO的多功能复用GPIO引脚
例如:PC7:主要功能:PC7(GPIO),默认功能:I2S3_MCK/TIM8_CH2/SDIO_D7;映射功能:TIM3_CH2
第五类 :主要功能为映射功能的GPIO引脚
这类引脚我已经在表格中标注(红方框);这类引脚的特点是:系统复位后功能为映射功能,而真正的GPIO功能需要代码中自己配置;
例如:PB4
在芯片复位后表现为NJTRST功能,而普通的PB4功能在映射功能里;如遇需要使用PB4引脚GPIO功能的,需要执行下面语句:(我曾在这里跌过大跟头,所以写了今天的博客,哈哈)
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);