stm32单片机基础(一)

   日期:2020-09-06     浏览:90    评论:0    
核心提示:stm32单片机串口复用GPIO配置选择GPIO如何确定外设的时钟是APB1还是APB2在这里插入图片描述概念时钟周期 机器周期双工 半双工 单工串口复用GPIO配置选择这里我们选择PA9 PA10的串口复用有关GPIO—mode配置原因usart串口,首先tx是作为输出的,逻辑上输出的数据都是0或者1,也就是由高低电平来表示,推挽就是能稳定输出1或者0。而复用,是因为这个io受的是内部的的usart模块来控制,并非是gpio寄存器来控制。至于rx设置为浮空输入那就很好理解了,首先接收的肯

stm32单片机

  • 串口复用
    • GPIO配置选择
      • GPIO
    • 如何确定外设的时钟是APB1还是APB2
      • 在这里插入图片描述
    • 概念
      • 时钟周期 机器周期
      • 双工 半双工 单工

串口复用

GPIO配置选择


这里我们选择PA9 PA10的串口复用


有关GPIO—mode配置原因
usart串口,首先tx是作为输出的,逻辑上输出的数据都是0或者1,也就是由高低电平来表示,推挽就是能稳定输出1或者0。而复用,是因为这个io受的是内部的的usart模块来控制,并非是gpio寄存器来控制。至于rx设置为浮空输入那就很好理解了,首先接收的肯定是要设置为输入,才能检测外界的电平,其次,浮空就能收到高和低的电平,也才能分析出0和1.

GPIO

GPIO的八种工作模式,

(1)GPIO_Mode_AIN 模拟输入

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出

上拉输入、下拉输入:上拉就是使IO口接上拉电阻到VCC了,跟51一样,下拉就是使IO口接下拉电阻到GND了,浮空就是即不接上拉,也不接下拉,这样的话IO默认输入电平不确定,上拉就是输入高电平,然后接一个上拉电阻(起保护作用),在你目前开发学习时,只需要知道上拉就表示该端口在默认情况下输入为高电平,下拉就相反了,指输入接低电平,然后接一个下拉电阻(关于上拉电阻与下拉电阻,设计比较多的数电模电知识,此处就略过,反正其保护电路的作用),

浮空:顾名思义,就相当与此端口在默认情况下什么都不接,呈高阻态,这种设置在数据传输时用的比较多,

推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源低定。

浮空输入:由于浮空输入一般多用于外部按键输入,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。

复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)

最后总结下使用情况:

在STM32中选用IO模式
(1) 浮空输入_IN_FLOATING ——浮空输入,可以做KEY识别,一般实际运用时,引脚不建议悬空,易受干扰。
(2)带上拉输入_IPU——IO内部上拉电阻输入
(3)带下拉输入_IPD—— IO内部下拉电阻输入
(4) 模拟输入_AIN ——模拟输入是指传统方式的输入,可以用作ADC输入,或者低功耗下省电
(5)开漏输出_OUT_OD ——IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。
(6)推挽输出_OUT_PP ——IO输出0-接GND, IO输出1 -接VCC,读输入值是未知的
(7)复用功能的推挽输出_AF_PP ——片内外设功能(I2C的SCL,SDA)
(8)复用功能的开漏输出_AF_OD——片内外设功能(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。

双工 半双工 单工

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服