搭建机器人电控系统——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对应引脚是被上拉还是下拉。)
搭建机器人电控系统——MCU基石——STM32 GPIO原理相关推荐
- 搭建机器人电控系统——如何从零开发主控?——文件下载、工程配置、烧录
文章目录 搭建机器人电控系统--如何从零开发主控? 如何开发主控?(软件实现烧录控制功能) 确定你选择的MCU参数 ①首先去ST官网上找到对应的单片机型号: ②找到对应型号的三大关键参数: ③找到官网 ...
- 搭建机器人电控系统——通信协议——CAN通信及其实例
通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 CAN通信 什么是CAN通信? CAN通信的优点: CAN通信电平格式: CAN通信的结构: CAN通信协议 ...
- 搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例
通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 什么是串口? 串口分类 USART/UART.RS232.RS485的区别 串口协议原理 传输协议 需要定义 ...
- 搭建机器人电控系统——PID算法——什么是PID?
PID算法 PID算法介绍,不同系数仿真,优缺点 位置式.增量式.模糊式PID 大林算法.史密斯算法和PID算法的区别 文章目录 PID算法 控制系统介绍 开环控制系统 前馈控制系统 单闭环控制系统 ...
- 搭建机器人电控系统——器件选型——如何选择电机?
器件选型 电源选择 传感器选择 电机选择 电机选型 电机是机器人电控系统控制机构动力的直接来源,一个好的电机可以解决很多机械的问题,也能解决很多控制的问题.电机的选型不仅和电控有关,也和机械环境密切相 ...
- 搭建机器人电控系统——器件选型——如何选择传感器?
器件选型 电源选择 传感器选择 电机选择 传感器 传感器是电控中非常重要的元件,对于不同的传感器,我们也需要对其进行选型,在学校的时候,也许我们不用考虑到太多的成本问题.对于我们来说,选择一个传感器应 ...
- 搭建机器人电控系统——如何从零画一块主控板?——搭建最小系统电路原理图
文章目录 如何画好一块主控? 搭建最小系统电路原理图 以STM32F407ZET6为例: 晶振电路原理 如何搭建晶振电路? 复位电路原理 如何搭建复位电路? 下载电路 电源电路原理 如何搭建电源电路? ...
- 搭建机器人电控系统——器件选型——如何选择机器人系统电源?
器件选型 电源选择 传感器选择 电机选择 电源的参数 一般来说,一款电池的参数主要如下图所示.其中的电压V.容量MAH.持续放电电流A是我们主要的选型依据,接口端子和重量尺寸也是需要考虑的因素. 如何 ...
- 搭建机器人电控系统——常用电路——输入保护,过压保护,过流保护,光耦隔离抗干扰,输入补偿,稳压
文章目录 一些常用电路的总结 输入保护电路 ①PMOS+电容防反接和缓冲 ②TVS瞬态电压抑制二极管 ③稳压(齐纳)二极管 过压保护电路 ①稳压二极管和三极管配合 ②双稳压二极管的反向串联 过流保护电 ...
最新文章
- 好书速递 | FPGA原理和结构
- windows批量创建域用户
- 当你所有的尝试告一段落
- Delphi中的各种路径
- 第三次学JAVA再学不好就吃翔(part66)--Pattern类和Matcher类
- mysql 5.5 免安装_mysql 5.5.56免安装版配置方法
- python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化
- Linux禁止root用户远程登陆
- Bailian2966 时区转换【时区计算】
- Android P版本怎么简单的验证HIDL的Demo例程
- 今日新闻简报 精选简报12条 2月1日
- LeetCode-618. 学生地理信息报告(困难)行转列
- Ubuntu Server 21.10静态IP地址设置
- 抢食生鲜,美团最大对手会是拼多多
- Internet协议的安全性
- 新学期可以制定目标计划并提醒的便签软件是哪款?
- 计算机图形学之绘制旗子
- C++ 内存管理 —— 第一講:C++ 內存構件
- 【Linux】Linux的管道
- 为何概述(翻译)CS229这个系列