文章目录

  • 搭建机器人电控系统——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原理相关推荐

  1. 搭建机器人电控系统——如何从零开发主控?——文件下载、工程配置、烧录

    文章目录 搭建机器人电控系统--如何从零开发主控? 如何开发主控?(软件实现烧录控制功能) 确定你选择的MCU参数 ①首先去ST官网上找到对应的单片机型号: ②找到对应型号的三大关键参数: ③找到官网 ...

  2. 搭建机器人电控系统——通信协议——CAN通信及其实例

    通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 CAN通信 什么是CAN通信? CAN通信的优点: CAN通信电平格式: CAN通信的结构: CAN通信协议 ...

  3. 搭建机器人电控系统——通信协议——串口通信USART/UART、RS232、RS485及其实例

    通信协议 串口通信详解 IIC通信详解 SPI通信详解 CAN通信详解 文章目录 通信协议 什么是串口? 串口分类 USART/UART.RS232.RS485的区别 串口协议原理 传输协议 需要定义 ...

  4. 搭建机器人电控系统——PID算法——什么是PID?

    PID算法 PID算法介绍,不同系数仿真,优缺点 位置式.增量式.模糊式PID 大林算法.史密斯算法和PID算法的区别 文章目录 PID算法 控制系统介绍 开环控制系统 前馈控制系统 单闭环控制系统 ...

  5. 搭建机器人电控系统——器件选型——如何选择电机?

    器件选型 电源选择 传感器选择 电机选择 电机选型 电机是机器人电控系统控制机构动力的直接来源,一个好的电机可以解决很多机械的问题,也能解决很多控制的问题.电机的选型不仅和电控有关,也和机械环境密切相 ...

  6. 搭建机器人电控系统——器件选型——如何选择传感器?

    器件选型 电源选择 传感器选择 电机选择 传感器 传感器是电控中非常重要的元件,对于不同的传感器,我们也需要对其进行选型,在学校的时候,也许我们不用考虑到太多的成本问题.对于我们来说,选择一个传感器应 ...

  7. 搭建机器人电控系统——如何从零画一块主控板?——搭建最小系统电路原理图

    文章目录 如何画好一块主控? 搭建最小系统电路原理图 以STM32F407ZET6为例: 晶振电路原理 如何搭建晶振电路? 复位电路原理 如何搭建复位电路? 下载电路 电源电路原理 如何搭建电源电路? ...

  8. 搭建机器人电控系统——器件选型——如何选择机器人系统电源?

    器件选型 电源选择 传感器选择 电机选择 电源的参数 一般来说,一款电池的参数主要如下图所示.其中的电压V.容量MAH.持续放电电流A是我们主要的选型依据,接口端子和重量尺寸也是需要考虑的因素. 如何 ...

  9. 搭建机器人电控系统——常用电路——输入保护,过压保护,过流保护,光耦隔离抗干扰,输入补偿,稳压

    文章目录 一些常用电路的总结 输入保护电路 ①PMOS+电容防反接和缓冲 ②TVS瞬态电压抑制二极管 ③稳压(齐纳)二极管 过压保护电路 ①稳压二极管和三极管配合 ②双稳压二极管的反向串联 过流保护电 ...

最新文章

  1. 好书速递 | FPGA原理和结构
  2. windows批量创建域用户
  3. 当你所有的尝试告一段落
  4. Delphi中的各种路径
  5. 第三次学JAVA再学不好就吃翔(part66)--Pattern类和Matcher类
  6. mysql 5.5 免安装_mysql 5.5.56免安装版配置方法
  7. python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化
  8. Linux禁止root用户远程登陆
  9. Bailian2966 时区转换【时区计算】
  10. Android P版本怎么简单的验证HIDL的Demo例程
  11. 今日新闻简报 精选简报12条 2月1日
  12. LeetCode-618. 学生地理信息报告(困难)行转列
  13. Ubuntu Server 21.10静态IP地址设置
  14. 抢食生鲜,美团最大对手会是拼多多
  15. Internet协议的安全性
  16. 新学期可以制定目标计划并提醒的便签软件是哪款?
  17. 计算机图形学之绘制旗子
  18. C++ 内存管理 —— 第一講:C++ 內存構件
  19. 【Linux】Linux的管道
  20. 为何概述(翻译)CS229这个系列

热门文章

  1. invoke方法学习
  2. 删除Mac上的UPedit
  3. python 求素数
  4. LoadRunner安装与卸载
  5. codeforces A. Rook, Bishop and King 解题报告
  6. C语言如何将数据转化为字符串格式
  7. 16岁学生 自学JAV日常记录(学习日记)
  8. 基于python的Nginx日志管理分析系统
  9. K8S二进制部署(多节点)
  10. python 公顷和平方公里单位互换