STM32基础和常见外设

news/2024/11/29 3:39:12/

STM32

开发环境

  1. 安装MDK软件
  2. 在桌面创建一个用于专门保存是stm32 的文件夹
  3. 安装芯片包
  4. 打开软件新建工程(Project)保存到文件夹
  5. 将启动文件添加到文件夹

点亮LED灯

  1. 配置使能APB2的GPIOC时钟

    *(unsigned int *)0x4002 1010 |= 0x01 << 4 //起始地址+偏移地址  0x4002 1000 + 0x10
    
  2. 配置GPIOC13端口输出模式

    *(unsigned int *)0x4001 1004 |= 0x01 << 20 //起始地址+偏移地址  0x4001 1000 + 0x04
    
  3. 配置GPIOC13为输出低电平

    *(unsigned int *)0x4001 100C &=~ (0x01 << 13) //起始地址+偏移地址  0x4001 1000 + 0Ch
    

中断

中断类型

  1. 系统异常,体现在内核水平
  2. 外部中断,体现在外设水平

NVIC简介

NVIC:嵌套向量中断控制器,属于内核外设,管理着包括内核和片上所有外设的中断相关的功能

两个重要的库文件:core_cm3.h和misc.h

NVIC寄存器简介

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y5LaC3QT-1635508650237)(C:\Users\86150\Desktop\截图\nvic.png)]

中断优先级的定义

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OISFWsk8-1635508650241)(C:\Users\86150\Desktop\截图\nvic1.png)]

中断编程的顺序

  1. 使能中断请求
  2. 配置中断优先级分组
  3. 配置NVIC寄存器,初始化NVIC_InitTypeDef
  4. 编写中断服务函数

EXTI简介

外部中断/事件控制器

输入线

  1. 有20根输入线(EXTI0、EXTI1~EXTI19)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p9gfkjRZ-1635508650244)(C:\Users\86150\Desktop\截图\EXTI.png)]

    1. 通过外部中断寄存器(AFIO_EXTICR1、AFIO_EXTICR2、AFIO_EXTICR3、AFIO_EXTICR4)来选择

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FtinmL6g-1635508650247)(C:\Users\86150\Desktop\截图\EXTI1.png)]

EXTI初始化结构体

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2BvO6Fb-1635508650249)(C:\Users\86150\Desktop\截图\exti3.png)]

编程流程

  1. 初始化用来产生中断的 GPIO

  2. 初始化 EXTI

  3. 配置 NVIC

  4. 编写中断服务函数

  5. 主函数调用

SysTick——系统定时器

SysTick 简介

SysTick—系统定时器是属于 CM3 内核中的一个外设,内嵌在 NVIC 中。系统定时器是 一个 24bit 的向下递减的计数器,计数器每计数一次的时间为 1/SYSCLK,一般我们设置系 统时钟 SYSCLK 等于 72M当重装载数值寄存器的值递减到 0 的时候,系统定时器就产生 一次中断,以此循环往复。

SysTick 寄存器介绍

SysTick—系统定时器有4个寄存器,简要介绍如下。在使用SysTick产生定时的时候, 只需要配置前三个寄存器,最后一个校准寄存器不需要使用。

寄存器名称 寄存器描述

  • CTRL SysTick 控制及状态寄存器

    位段名称类型复位值描述
    16COUNTFLAGR/W0如果在上次读取本寄存器后, SysTick 已经计 到 了 0,则该位为 1。
    2CLKSOURCER/W0时钟源选择位,0=AHB/8,1=处理器时钟 AHB
    1TICKINTR/W01=SysTick 倒数计数到 0 时产生 SysTick 异常请 求,0=数到 0 时无动作。也可以通过读取 COUNTFLAG 标志位来确定计数器是否递减 到 0
    0ENABLER/W0SysTick 定时器的使能位
  • LOAD SysTick 重装载数值寄存器

    位段名称类型复位值描述
    23:0RELOADR/W0当倒数计数至零时,将被重装载的值
  • VAL SysTick 当前数值寄存器

    位段名称类型复位值描述
    23:0CURRENTR/W0读取时返回当前倒计数的值,写它则使之清 零,同时还会清除在SysTick控制及状态寄 存器中的 COUNTFLAG 标志
  • CALIB SysTick 校准数值寄存器

通信的基本概念

数据的传送方式

  1. 并行通讯
  2. 串行通讯(USART、IIC、SPI)

串行与并行通信的特性对比

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CgbwlvnS-1635508650250)(C:\Users\86150\Desktop\截图\通信.jpg)]

数据通信方向

  1. 全双工
  2. 半双工
  3. 单工

数据同步方式

  1. 同步通讯
  2. 异步通讯

通信的速率

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VN57g78S-1635508650252)(C:\Users\86150\Desktop\截图\通信2.jpg)]

码元:传输的信息是码元(例如3.3V、0V),所以大多数情况下一个码元往往对应一个二进制位。

USART

串口通信协议简介

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Whw1mdt-1635508650253)(C:\Users\86150\Desktop\截图\usart.png)]

  1. 常用标准

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-asqBs9Ut-1635508650254)(C:\Users\86150\Desktop\截图\usart2.png)]

    ps:RS-232与TTL的区别

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ybxLswTF-1635508650255)(C:\Users\86150\Desktop\截图\usart3.png)]

DMA

DMA简介

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O2Dz48uP-1635508650257)(C:\Users\86150\Desktop\截图\DMA.png)]

PS:上图DMA2应该是有5个通道,而不是7个


http://www.ppmy.cn/news/615731.html

相关文章

片内外设、片上外设和片外外设的区别

片内外设就是片上外设&#xff0c;同一种意思不同说法而已。 片内外设和片外外设的区别&#xff1a; 片内、外设是两个概念&#xff0c;片内指做成芯片的集成电路内部&#xff0c;简称片内&#xff0c;片外同理显而易见&#xff1b;外设是外部设备的简称&#xff0c;是指集成…

iOS连接外设的几种方式

一般iOS开发者做APP开发大部分时候都是通过Http(s)请求跟后台服务器打交道&#xff0c;做一些信息展示和用户交互。很少涉及到去跟外部硬件设备连接的开发。随着近年来车联网和物联网的兴起&#xff0c;智能家居和智能硬件的逐步火热&#xff0c;越来越多的app被开发出来&#…

计算机各外设的作用,外设在计算机中的作用及传输方式.doc

1. 外设在计算机系统中的作用 在计算机系统中,外围设备的作用显然非常重要。一台普通的微机系统中,外围设备的价格已经远远超过主机的价格。外围设备的作用归纳起来有以下几方面。 ⑴ 提供人机对话 人操作计算机,必须要进行人机对话,程序需要输入计算机,程序运行中所需要的…

汇编——外设接口

I/O接口&#xff1a;&#xff08;硬件&#xff09; 将外设连接到总线上的一组逻辑电路的总称。以实现外设与主机之间的信息交换。 基本功能&#xff1a; 进行端口的地址译码 设备选择 向CPU提供I/O设备的状态信息和进行命令译码 进行定时和相应的时序控制 对传送的数据进…

CPU与外设交换数据的方式

目录 程序控制传递方式&#xff1a; 特点&#xff1a; 1&#xff1a;无条件传送方式&#xff08;同步传送方式&#xff09; 特点 方法&#xff1a; 优点&#xff1a; 缺点&#xff1a; 2&#xff1a;查询传送方式&#xff08;异步传送方式&#xff09; 适用场景&#x…

CPU对外设的编址linux对外设的访问CPU地址空间

下面所讨论的都是没有经过MMU的物理地址 1.物理实体&#xff1a;I/O端口(I/OPorts)(少数外设板卡含有IO Mem)物理内存条(即主存)———— 2.对外设的物理地址编址方式:I/O端口方式(独立编址)&I/O内存方式(统一编址)————I/O端口的本质一般是外设寄存器。从访问外设寄存…

STM32-GPIO外设详解

目录 一、GPIO简介 二、GPIO框图剖析 1、GPIO输出部分 1&#xff09;保护二极管 2&#xff09;P-MOS&N-MOS 3&#xff09;复用功能输出 4&#xff09;输出数据寄存器、位置设置/清除寄存器 2、GPIO输入部分 1&#xff09;输入模式&#xff08;模拟/浮空/上拉/下拉&am…

STM32外设GPIO的配置和应用

以下内容主要以F407xx系列为例。 01 PIN脚类型和结构 在讲GPIO之前&#xff0c;我们先看下STM32中的PIN脚类型&#xff1a; PIN脚类型 PIN类型描述备注SSupply pin电源引脚IInput only pin只能作输入I/OInput / output pin输入输出口 PIN类型 - S PIN名称描述备注VBAT为备…