19年3月7日

前言:本系列文章主要是描述如何写RM步兵车的具体代码(其中不包括云台),主要目的是通过RM步兵车的一个小车来实现学习STM32,如果有问题可以直接私信我,大概一个月内会将所有部分说完,最后代码也会以百度网盘的形式给出

首先是要记住相关的概念,这样在以后常出现就不做解释了,其中黄字是重点

必须记住的概念

进制前缀表示

二进制 ob
八进制 0
十六进制 0x
十进制无前缀

1.占空比:

是指电路被接通的时间占整个电路工作周期的百分比。比如说,一个电路在它一个工作周期中有一半时间被接通了,那么它的占空比就是50%。如果加在该工作元件上的信号电压为5V,则实际的工作电压平均值或电压有效值就是2.5V。假设该元件为一个电子阀门,当电路全时接通时,阀门全开;当占空比为50%时,阀门状态为半开。同理,当占空比设置为20%时,阀门的开度显然应该为20%。这样,这个阀门就可以在0%(全闭)到100%(全开)的范围内任意调节。

2.pid的使用

https://blog.csdn.net/u010312937/article/details/53363831

3.ADC(Analog-to-Digital Converter)

指模/数转换器或者模数转换器 [1] 。是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号,例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的数字形式。模/数转换器可以实现这个功能

4.CRC(Cyclic Redundancy Check, CRC)

循环冗余校验是一种根据网络数据包或电脑文件等数据产生简短固定位数校验码的一种散列函数,主要用来检测或校验数据传输或者保存后可能出现的错误。它是利用除法及余数的原理来作错误侦测的。

5.DAC(Digital to analog converter)

DAC是数字模拟转换器是一种将数字信号转换为模拟信号(以电流、电压或电荷的形式)的设备。在很多数字系统中(例如计算机),信号以数字方式存储和传输,而数字模拟转换器可以将这样的信号转换为模拟信号,从而使得它们能够被外界(人或其他非数字系统)识别。

6.I2C总线(Inter-Integrated Circuit)

2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送

7. I2S (Inter—IC Sound)总线,

又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

8.IWDG

STM32 有两个看门狗,一个是独立看门狗另外一个是窗口看门狗,独立看门狗号称宠物狗,窗口看门狗号称警犬,本章我们主要分析独立看门狗的功能框图和它的应用。独立看门狗用通俗一点的话来解释就是一个 12 位的递减计数器,当计数器的值从某个值一直减到 0 的时候,系统就会产生一个复位信号,即 IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,这个动作就是我们经常说的喂狗。看门狗功能由 VDD 电压域供电,在停止模式和待机模式下仍能工作。

9.RCC(Reset Clock Controller)

ARM里面复位与时钟控制器
系统复位
系统复位将复位除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器以外的所有寄存器,当以下事件中的一件发生时,产生一个系统复位:

  1. NRST管脚上的低电平(外部复位)
  2. 窗口看门狗计数终止(WWDG复位)
  3. 独立看门狗计数终止(IWDG复位)
  4. 软件复位(SW复位)
  5. 低功耗管理复位
    可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源。

10.RNG

随机数发生器RNG,以环境噪声为种子,产生32位随机数供主机使用。

11.RTC(Real-Time Clock)

实时时钟是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。8254本身工作也需要有自己的驱动时钟(PIT)。

12.==DMA(Direct Memory Access,直接内存存取) ==

是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。

13.NVIC(Nested Vectored Interrupt Controller )

提供中断控制器,用于总体管理异常,称之为“内嵌向量中断控制器:NNVIC和处理器内核紧密相连.

14.RTC(Real-Time Clock)

实时时钟是PC主板上的晶振及相关电路组成的时钟电路的生成脉冲,RTC经过8254电路的变频产生一个频率较低一点的OS(系统)时钟TSC,系统时钟每一个cpu周期加一,每次系统时钟在系统初起时通过RTC初始化。8254本身工作也需要有自己的驱动时钟(PIT)。

15.TIM(Timer)

定时器,功能是在指定的时间间隔内反复触发指定窗口的定时器事件

16.SDIO (Secure Digital Input and Output)

安全数字输入输出卡 定义了一种外设接口

17.SPI(Serial Peripheral Interface)

SPI是串行外设接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议,比如AT91RM9200。

18.UART (Universal Asynchronous Receiver/Transmitter)

通用异步收发传输器,通常称作UART,是一种异步收发传输器,是电脑硬件的一部分。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。UART是一种通用串行数据总线,用于异步通信

19. USART(Universal Synchronous/Asynchronous Receiver/Transmitter)

通用同步/异步串行接收/发送器
USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。

20.FatFs

是一个通用的文件系统(FAT/exFAT)模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 组件的编写遵循ANSI C(C89),完全分离于磁盘 I/O 层,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, ARM, Z80, RX等等,不需要做任何修改。

21.FreeRTOS

是一个迷你的实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行

必须记住的函数(会一直补充)

1. HAL_UART_Receive_DMA(&huart1,rc_data,18u);

hal库,urat(串口通讯),receive(接收),dma(使用内存,暂存器)
第一个参量的作用是指定位置
第二个参量的作用是选择接收到变量
第三个参量的作用是接收几位数据


2.HAL_TIM_PWM_Start(&htim5,TIM_CHANNEL_1);

tim(定时器) pwm(波)start(开启)
第一个参量的作用是指定定时器
第二个参量的作用是指定通道

3.CanFilterInit(&hcan1)

can(通讯)filter(过滤器)init(初始化)
第一个参量的作用是指定can通讯

2.一些单词

config 配置
init 初始化

3. extern

extern是计算机语言中的一个关键字,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义,另外,extern也可用来进行链接指定。

STM32入门——基于RobotMaster——1.准备工作相关推荐

  1. 【STM32入门】这个项目绝了,用手势来产生波形,基于手势控制的波形发生器

    大家好,我是张巧龙,之前有给实验室学生出了一道关于STM32的题:基于手势控制的波形产生题,题目简单,但综合性较强. 有些学生完成的还不错,个人觉得此题用来 入门 STM32再合适不过了. 展示视频: ...

  2. 基于Proteus无实物STM32入门自学教程(二)--LED流水灯

    本教程面向新手,前期没有用到stm32的内部库,源程序尽量使用单文件.方便从51直接转过来的同学有个适应期.proteus仿真stm32总所周知没有51仿真的那么完美.笔者在51年代进行仿真时基本与实 ...

  3. 基于Proteus无实物零基础STM32入门自学教程(七)--定时器点亮LED

    简介:本项目为基于STM32F103R6为核心定时器点亮LED工程.在第一个任务里我们点亮LED是使用延时点亮.从这一讲我们开始学习真正的定时器使用方法,而这种方法是最接近实际应用的.实际应用中几乎不 ...

  4. STM32入门-学习STM32要掌握的内容

    STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号 ...

  5. STM32入门指南(1)—新建第一个工程

    STM32入门指南(1)-新建第一个工程 文章目录 STM32入门指南(1)-新建第一个工程 STM32CubeMX配置 选择芯片 配置 IO 和其他功能 配置时钟 配置工程属性 生成代码 MDK编辑 ...

  6. 周立功阅读笔记-CANopen轻松入门基于DS301(一)

    周立功阅读笔记-CANopen轻松入门基于DS301(一) CANopen阅读笔记 4.CANopen的预定义报文和ID分类 5.对象字典OD(Object dictionary) 6.网络管理NMT ...

  7. 深度学习入门 基于Python的理论与实现

    作者:斋藤康毅 出版社:人民邮电出版社 品牌:iTuring 出版时间:2018-07-01 深度学习入门 基于Python的理论与实现

  8. micropython安装ros_ROS2与STM32入门教程-microROS的linux版本

    ROS2与STM32入门教程-micro_ros的linux版本 说明: 介绍如何安装使用micro_ros 步骤: 安装ros2版本foxy,查看教程 加载ros2环境 source ~/ros2_ ...

  9. STM32实现基于I2C的AHT20温湿度采集

    STM32实现基于I2C的AHT20温湿度采集 I2C通信协议 软件I2C与 硬件I2C 代码实现 烧录 硬件连接 烧录并运行 参考 I2C通信协议 I2C协议简介 IC( Inter-- Integ ...

最新文章

  1. 倒置函数reverse的用法
  2. 曾经百度大佬吹过的牛实现了,看完这个,带你搞定AI前沿技术
  3. 数据库9:联结表 高级联结 组合查询 全文本搜索
  4. Arduino control Eeprom by IIC method of using device address in Arduino
  5. express细节点注意
  6. 网页设计必备工具 firefox Web Developer插件 CSS工具组教程
  7. C#读书雷达 | TW洞见
  8. War-Driving(战争驾驶***)
  9. Error format not a string literal and no format arguments解决方案
  10. 收藏 | 李飞飞等发布200多页综述,阐述大模型机遇与风险
  11. Android 7.0判断栈顶Activity错误 几率显示为launcher
  12. 浅谈编程-----非计算机专业以及非培训班的一些感悟
  13. Spring boot实体类中常用基本注解
  14. 一夜刷屏的「猜画小歌」遭到反编译,内部还暗藏哪些玄机?
  15. boid模型的Matlab程序,基于Boid模型以及吸引—排斥模型的沙丁鱼集群运动行为模拟...
  16. JDK8的新特性——Lambda表达式
  17. local.china java_java-JDBC无法登录到LocalDB实例,但是在SSMS中,...
  18. 研究了EXCEL的行高问题
  19. Logisim实现计算机硬件系统设计(一)
  20. 解析Excel(xls、xlsx两种格式)

热门文章

  1. 关于正当防卫的几个案例分析
  2. phpstorm 2021 最新版 官方中文教程
  3. WPF实现类似MDI子窗体的功能
  4. linux文件IO简述和内容整理
  5. 双剑合璧——IT与OT的深度融合之趋
  6. 企业智能通信办公系统UCM6510领跑企业办公通信
  7. 友豆火山CPG插件开发001-简介初识
  8. 什么软件可以识别图片上的文字?分享三个实用的识别软件
  9. 微信网页版传输助手上线
  10. 读取数据 python