完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
串口复用
一定要记得使能复用时钟 AFIO—端口IO功能复用时钟 某个IO口被用作外设的接口时,需要开启IO口的复用功能的时钟,即进行外设、IO的时钟使能时,需要如下代码 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx | RCC_APB2Periph_AFIO, ENABLE); /* GPIOx and AFIO clock enable */ IO口功能如何查看 以上便是IO口的使用情况 GPIO配置选择 步骤是按照图上红色方框所示查找: 1.打开STM32中文参考手册 2.查找GPIO配置 3.选择合适的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。 双工 半双工 单工含义区别 |
|
|
|
只有小组成员才能发言,加入小组>>
2496 浏览 0 评论
1059浏览 2评论
678浏览 1评论
440浏览 0评论
175浏览 0评论
292浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:20 , Processed in 1.032857 second(s), Total 47, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号