下图为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);