在学习引脚复用和附加功能过程中,一直没有搞清楚他们两者之间的配置区别,在爬了很多博客后终于悟了,直接摆一个结论:
Additionalfunctions:附加,辅助功能,引脚被连接到其他模块使用,使用时直接普通配置即可,例如ADC的采用输入通道,配置为模拟输入。
Alternate functions:复用功能,即将IO口用作普通输入输出以外的功能,例如串口输入输出,使用时需要配置复用模式。
本实验使用HAL库做分析,与标准库的操作不同,相对来说HAL更简单一些。
复用功能配置,只要找到需要使用的外设对应的引脚,在引脚初始化时将Alternate变量赋值就可以,例如串口复用:GPIO_AF7_USART1(其他系列做相应修改,F1系列没有Alternate变量)。当然对应的外设也要初始化,例如时钟和波特率等。
附加功能配置,可以从手册中看到,附加功能几乎是ADC或是DAC,在使用对应引脚时只需要将引脚模式设置为GPIO_MODE_ANALOG模拟即可,不需要设置Alternate复用变量,还有对应外设的初始化即可。
这里顺便提一下,有的板使用DAC要接参考电压VREF,一定要注意DAC输出引脚能容忍的电压,如果只有3.3就一定不要接5V!问就是比赛因为这东西直接从校赛第一变成区域赛第一个淘汰!!!