首页 >> 大全

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

2023-10-03 大全 36 作者:考证青年

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)

AFIO时钟

外部中断、事件输出、重映射的时候需要需要开启AFIO时钟,端口复用功能的时候不需要开启AFIO时钟

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

概念 时钟周期 机器周期

晶振周期:晶振的振荡周期就是时钟周期,比如12M晶振时钟周期是 1/12M; **机器周期是单片机执行指令所消耗的最小时间单位。**比如51是12分频,51的1个机器周期划分为6个状态周期、12个节拍;12M晶振机器周期是 1/12M*12=1S;

时钟周期:也称为振荡周期, 定义为时钟脉冲的倒数 (可以这样来理解, 时钟周期就是单 片机外接晶振的倒数, 例如 12M 的晶振, 它的时间周期就是 1/12 us) , 是计算机中最基本的、 最小的时间单位。

机器周期:单片机完成一次完整的具有一定功能的动作所需的时间周期。如一次完整的读操作或写操作对应的时间。一个机器周期=6个状态周期。【指令周期】: 执行完某条指令所需要的时间周期,一般需要1~4个机器周期,如MUL AB指令是四机器周期指令。一个指令周期=1~4个机器周期。

关系:时钟周期是晶振频率的倒数。 状态周期是时钟周期的二倍。 机器周期,是时钟周期的 12 倍。 如:晶振频率是 12MHz, 时钟周期就是,(1/12)us。 状态周期就是,(2/12)us。 机器周期就是,(12/12)=1us。

双工 半双工 单工含义区别

下一章主要是关于串口的控制,如果大家觉得枯燥,可以先去学习定时器这一节(配合正点原子定时器视频来看)

stm32单片机基础(二)

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了