600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 搭建机器人电控系统——MCU基石——STM32 GPIO原理

搭建机器人电控系统——MCU基石——STM32 GPIO原理

时间:2019-04-30 20:04:33

相关推荐

搭建机器人电控系统——MCU基石——STM32 GPIO原理

文章目录

搭建机器人电控系统——MCU基石GPIO是什么?GPIO的模式5种输入模式:4种输出模式:GPIO的输出速度

搭建机器人电控系统——MCU基石

在上一章中,我讲解了搭建一个机器人电控系统的前期准备工作,包括电源的选择和主控的开发,经过一些基础的单片机任务之后,现在你应该对单片机的一些编程习惯有了掌握。

在本章中,我将会按照一个机器人的底盘到上层机构的顺序,单独来对每一个机构的电控部分进行讲解。从中分别来详细展示运动模型、通信协议、PWM输出和算法部分,从而让你学会如何用MCU去控制每个部分机构的运动。

不过在这之前,我会以STM32F407为例,先补充一些关于MCU的基本知识原理:

STM32系统架构

STM32时钟配置

GPIO原理

中断NVIC与EXTI

GPIO是什么?

IO口是单片机除了特殊引脚之外的输出输入引脚,GPIO也是各大外设功能中的一种。之所以把GPIO单独拿出来讲解,是因为GPIO是IO口最基本的功能,在你初始化任何外设的功能的时候,除了都要使能时钟以外,你基本都要先初始化GPIO的结构体:

所以我们说,外设正常工作的激励来源是时钟信号,而外设的硬件环境是GPIO。

GPIO(General-purpose input/output),通用输入输出口,其电路原理图如下图所示:

我们在初始化它的结构体的时候,通常有以下两大要点:

GPIO的模式

5种输入模式:

GPIO的输入模式表示信息或者激励从IO引脚获得,比如按键检测、ADC采集、PWM捕获等。

①输入浮空模式Floating

IO引脚不接任何上拉或下拉电阻,即在空闲状态下IO引脚的电平状态不确定。

②输入上拉模式IPD

IO引脚接上拉电阻,即在空闲状态下IO引脚的电平状态为高。

③输入下拉模式IPU

IO引脚接下拉电阻,即在空闲状态下IO引脚的电平状态为低。

④模拟输入模式AIN

IO引脚作为模拟量采集输入,如ADC,即不经过TTL施密特触发器进行电平转换成TTL格式。

⑤复用功能输入

IO引脚复用(既有GPIO的功能也有其他外设功能)到其他外设上(比如串口功能外设),此时作为输出RX引脚读取外部数据信息。

4种输出模式:

GPIO的输出模式表示信息从IO引脚输出,比如点亮LED灯、输出PWM波等。

①开漏输出模式DD

MCU内信息从寄存器输出,经过N-MOS管到IO引脚。当输出为高电平时,N-MOS关闭,此时IO引脚电平仅由上拉或下拉电阻决定。

②开漏复用输出模式AFDD

MCU内信息从外设模块输出,经过N-MOS管到IO引脚。当输出为高电平时,N-MOS关闭,此时IO引脚电平仅由上拉或下拉电阻决定。

③推挽输出模式PP

MCU内信息从寄存器输出,经过P-MOS管道IO引脚。当输出为低电平时,P-MOS关闭,此时IO引脚电平仅由上拉或下拉电阻决定。

④推挽复用输出模式AFPP

MCU内信息从外设模块输出,经过P-MOS管道IO引脚。当输出为低电平时,P-MOS关闭,此时IO引脚电平仅由上拉或下拉电阻决定。

GPIO的输出速度

GPIO输出的速度有2MHZ、25MHZ、50MHZ、100MHZ。频率表示输出驱动电路的带宽。设置GPIO的速度时要保证频率(带宽)大于驱动对象信号频率(一般大于10倍以上)。

比如:串口波特率为115.2K,则用2M的速度即可,省点且噪声小;CAN通信配置波特率为1MHZ,则用25MHZ以上可以,如果用2MHZ可能会导致失真。

一个点灯的例程:

因为是要点灯,假设这个灯是高电平点亮,即外部接地。所以设置GPIO模式为推挽输出,这样我程序里设高就能亮。(如果设置为开漏输出,那么程序设高没用,得看IO对应引脚是被上拉还是下拉。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。