如何确定外设的时钟是APB1还是APB2

stm32单片机如何确定外设的时钟是APB1还是APB2概念
串口复用
一定要记得使能复用时钟
AFIO—端口IO功能复用时钟
某个IO口被用作外设的接口时,需要开启IO口的复用功能的时钟,即进行外设、IO的时钟使能时,需要如下代码
md( | , ); /* GPIOx and AFIO clock*/
IO口功能如何查看
以上便是IO口的使用情况
GPIO配置选择
步骤是按照图上红色方框所示查找:
1.打开STM32中文参考手册
2.查找GPIO配置
3.选择合适的GPIO模式
这里我们选择PA9PA10的串口复用
有关GPIO—mode配置原因
usart串口,首先tx是作为输出的,逻辑上输出的数据都是0或者1,也就是由高低电平来表示,推挽就是能稳定输出1或者0 。而复用,是因为这个io受的是内部的的usart模块来控制,并非是gpio寄存器来控制 。至于rx设置为浮空输入那就很好理解了,首先接收的肯定是要设置为输入,才能检测外界的电平,其次,浮空就能收到高和低的电平,也才能分析出0和1.
GPIO
GPIO的八种工作模式,
(1) 模拟输入
(2)G 浮空输入
(3) 下拉输入
(4) 上拉输入
(5) 开漏输出
(6) 推挽输出
(7) 复用开漏输出
(8) 复用推挽输出
上拉输入、下拉输入:上拉就是使IO口接上拉电阻到VCC了,跟51一样,下拉就是使IO口接下拉电阻到GND了,浮空就是即不接上拉,也不接下拉,这样的话IO默认输入电平不确定,上拉就是输入高电平,然后接一个上拉电阻(起保护作用),在你目前开发学习时,只需要知道上拉就表示该端口在默认情况下输入为高电平,下拉就相反了,指输入接低电平,然后接一个下拉电阻(关于上拉电阻与下拉电阻,设计比较多的数电模电知识,此处就略过,反正其保护电路的作用),
浮空:顾名思义,就相当与此端口在默认情况下什么都不接,呈高阻态,这种设置在数据传输时用的比较多,
推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止 。高低电平由IC的电源低定 。
浮空输入:由于浮空输入一般多用于外部按键输入,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的 。
复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)
最后总结下使用情况:
在STM32中选用IO模式
(1) 浮空输入 ——浮空输入,可以做KEY识别,一般实际运用时,引脚不建议悬空,易受干扰 。
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——模拟输入是指传统方式的输入,可以用作ADC输入,或者低功耗下省电
(5)开漏输出 ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平 。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变 。可以读IO输入电平变化,实现C51的IO双向功能,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内) 。
(6)推挽输出 ——IO输出0-接GND,IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出 ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出——片内外设功能(TX1,MOSI,MISO.SCK.SS)
【如何确定外设的时钟是APB1还是APB2】