ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

STM32学习笔记(一)

2020-05-04 16:04:34  阅读:444  来源: 互联网

标签:学习 映射 引脚 开漏 笔记 复用 STM32 输出 电平


  1. 什么是ARM?
    一个做芯片标准的公司,负责芯片内核的架构设计,而TI,ST 这样的公司,他们是芯片公司,他们是根据ARM公司提供的芯片内核标准设计自己的芯片。所以,任何一个做 Cortex-M3 芯片,他们的内核结构都是一样的,不同的是他们的存储器容量,片上外设,IO以及其他模块的区别。
    既然大家都使用的是 Cortex-M3 核,也就是说,本质上大家都是一样的,这样 ARM 公司为了能让不同的芯片公司生产的 Cortex-M3 芯片能在软件上基本兼容,和芯片生产商共同提出了一套标准 CMSIS 标准(Cortex Microcontroller Software Interface Standard) ,翻译过来是“ARM Cortex™ 微控制器软件接口标准”。ST 官方库就是根据这套标准设计的。

  2. **库开发与寄存器开发的关系 **
    51单片机的寄存器比较少,可以从底层直接操作寄存器,但是stm32寄存器很多,为了开发方便,ST官方写了一套固件库,我们可以通过调用函数的方式对寄存器进行操作,使得开发更加快速。

  3. 新建固件库工程模板
    a)需要的文件:
    启动文件,需要用到的库函数.c和.h文件
    b)步骤:
    1)启动MDK
    2)新建project
    3)选择对应的芯片型号(此处需要严格对应,51单片机对此没有太严格)
    4)将启动文件,固件库文件复制到工程目录中;然后添加进入工程
    5)对于任何一个工程,我们都需要把工程中引用到的所有头文件的路径都包含到进来。(51单片机不需要)

  4. 程序下载方式
    1)串口下载
    利用CH340芯片,将串口转为USB线进行下载
    2)JTAG下载
    用仿真器连接单片机上接口,直接在MDK中点击‘load’

  5. GPIO的不同模式
    与51单片机简单的0和1不同,STM32有多种IO口模式。
    a)推挽输出(顾名思义,可推可拉)
    可以输出高、低电平,连接数字器件
    b)开漏输出
    输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强( 般20mA以内)。
    开漏输出的特点:
    1、利用外部电路的驱动能力,减少IC内部的驱动。当1C内部MOSFET导通时, 驱动电流是从外部的VCC流经上拉电阻、MOSFET到GND。 IC内部仅需很小的栅极驱动电流。
    2、 一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引|脚
    不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则
    需要接上拉电阻,很好的一个优点是通过改变.上拉电源的电压,便可以改变传输电平。比如加上.上拉电阻就可以提供TTL/CMOS电平输出等。(上拉电阻的阻值决定了逻辑电平转换的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度。)
    3、开漏输出提供了灵活的输出方式,但是也有其弱点,就是带来.上升沿的延
    时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
    4、可以将多个开漏输出连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成"与逻辑”关系,即“线与”。可以简单的理解为:在所有引脚连在一起时, 外接上拉电阻,如果有一个弓|脚输出为逻辑o,相当于接地,与之并联的回路“相当于被一根导线短路”,所以外电路逻辑电平便为0,只有都为高电平时,与的结果才为逻辑1。

关于推挽输出和开漏输出,最后用一幅最简单的图形来概括:该图中左边的便是
推挽输出模式,其中比较器输出高电平时下面的PNP三极管截止,而上面NPN三极管导通,输出电平VS+;当比较器输出低电平时则恰恰相反, PNP三极管导通,输出和地相连,为低电平。右边的则可以理解为开漏输出形式,需要接上拉。
在这里插入图片描述
c)浮空输入
一般用于外部按键的输入,IO的电平是不确定的,完全由外部输入决定
;如果在该引脚浮空的情况下读取该端口的电平是不确定的。
d)上拉输入,下拉输入,模拟输入
e)复用开漏输入,复用推挽输出
当GPIO复用时使用,例如复用为串口

  1. STM32时钟系统
    同一个电路时钟越快功耗越大,同时抗电磁干扰能力也会减弱,所以复杂的MCU通常采用多时钟源的方法来解决这些问题。
    a)时钟源
    HSI(high speed internal)
    PLL(phase locked loop)
    HSE(high speed external)
    LSI(low speed internal)
    LSE(low speed external)

  2. 端口复用和重映射
    端口复用:GPIO作为内置外设,例如GPIO复用为串口
    端口复用初始化步骤:
    a)GPIO端口时钟使能(对应的总线时钟)
    b)复用的外设时钟使能
    c)端口模式配置
    //////查询《stm32参考手册》中外设GPIO的配置,设置对应的端口模式

    重映射 remap 为了更好的安排引脚的走向和功能。一个外设的引脚除了默认的端口外,还可以通过设置重映射寄存器的方式把这个外设的引脚映射到其他的端口。
    //// 要注意的是,并不是可以随便映射,需要查看《stm32参考手册》中的重映射表。
    ////有部分重映射和完全重映射之分,部分重映射是有部分引脚和默认的一样,一部分重映射到其他引脚;完全重映射是所有引脚都重新映射到其他引脚。

标签:学习,映射,引脚,开漏,笔记,复用,STM32,输出,电平
来源: https://blog.csdn.net/weixin_45684595/article/details/105848902

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有