您的位置 首页 新能源

Alientek SMT32开发板 跑马灯试验

通过本节的学习,你将了解到STM32的IO口作为输出使用的方法。本节分为如下几个小节:311STM32IO口简介312硬件设计313软件设计31

经过本节的学习,你将了解到STM32的IO口作为输出运用的办法。本节分为如下几个末节:

3.1.1 STM32 IO口简介

3.1.2硬件规划

3.1.3软件规划

3.1.4仿真与下载

3.1.1STM32 IO简介

作为一切开发板的经典入门试验,莫过于跑马灯了。ALIENTEKMiniSTM32开发板板载了2个LED,DS0和DS1,本试验将经过教你怎么操控这两个灯完成替换闪耀的类跑马灯效果。

该试验的关键在于怎么操控STM32的IO口输出。了解了STM32的IO口怎么输出的,就能够完成跑马灯了。经过这一节的学习,你将开端把握STM32根本IO口的运用,而这是迈向STM32的第一步。

STM32的IO口能够由软件装备成8种方式:

1、输入浮空

2、输入上拉

3、输入下拉

4、模仿输入

5、开漏输出

6、推挽输出

7、推挽式复用功用

8、开漏复用功用

每个IO口能够自在编程,单IO口寄存器有必要要按32位字被拜访。STM32的许多IO口都是5V兼容的,这些IO口在与5V电平的外设衔接的时分很有优势,具体哪些IO口是5V兼容的,能够从该芯片的数据手册管脚描绘章节查到(I/OLevel标FT的便是5V电平兼容的)。

STM32的每个IO端口都有7个寄存器来操控。他们分别是:装备方式的2个32位的端口装备寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;这儿咱们仅介绍常用的几个寄存器,咱们常用的IO端口寄存器只需4个:CRL、CRH、IDR、ODR。

CRL和CRH操控着每个IO口的方式及输出速率。

STM32的IO口位装备表如表3.1.1.1所示:

表3.1.1.1STM32的IO口位装备表

STM32输出方式装备如表3.1.1.2所示:

表3.1.1.2STM32输出方式装备表

接下来咱们看看端口低装备寄存器CRL的描绘,如下图所示:

图3.1.1.1端口低装备寄存器CRL各位描绘

该寄存器的复位值为0X4444 4444,从上图能够看到,复位值其实便是装备端口为浮空输入方式。从上图还能够得出:STM32的CRL操控着每个IO端口(A~G)的低8位的方式。每个IO端口的位占用CRL的4个位,高两位为CNF,低两位为MODE。这儿咱们能够记住几个常用的装备,比方0X4表明模仿输入方式(ADC用)、0X3表明推挽输出方式(做输出口用,50M速率)、0X8表明上/下拉输入方式(做输进口用)、0XB表明复用输出(运用IO口的第二功用,50M速率)。

CRH的效果和CRL彻底相同,仅仅CRL操控的是低8位输出口,而CRH操控的是高8位输出口。这儿咱们对CRH就不做具体介绍了。

给个实例,比方咱们要设置PORTC的11位为上拉输入,12位为推挽输出。代码如下:

GPIOC->CRH&=0XFFF00FFF;//清掉这2个位本来的设置,一起也不影响其他位的设置

GPIOC->CRH|=0X00038000;//PC11输入,PC12输出

GPIOC->ODR=1<<11;//PC11上拉

经过这3句话的装备,咱们就设置了PC11为上拉输入,PC12为推挽输出。

IDR是一个端口输入数据寄存器,只用了低16位。该寄存器为只读寄存器,而且只能以16位的方式读出。该寄存器各位的描绘如下图所示:

图3.1.1.2端口输入数据寄存器IDR各位描绘

要想知道某个IO口的状况,你只需读这个寄存器,再看某个位的状况就能够了。运用起来是比较简单的。

ODR是一个端口输出数据寄存器,也只用了低16位。该寄存器尽管为可读写,可是从该寄存器读出来的数据都是0。只需写是有用的。其效果便是操控端口的输出。该寄存器的各位描绘如下图所示:

图3.1.1.3端口输出数据寄存器ODR各位描绘

了解了这几个寄存器,咱们就能够开端跑马灯试验的真实规划了。关于IO口更具体的介绍,请参阅《STM32参阅手册》第69页7.1节。

在此,咱们能够总结一下,关于学过AVR的人来说,咱们都知道AVR的IO口由3个寄存器操控:DDR、PORT、PIN。这儿咱们能够拿STM32的IO操控寄存器和AVR的来个类比:

1,STM32的CRL和CRH就相当于AVR的DDR寄存器,用来操控IO口的方向,只不过STM32的CRL和CRH功用更强大一点算了。

2,STM32的ODR就相当于AVR的PORT,都是用来操控IO口的输出电平或许上下拉电阻的。

3,STM32的IDR就相当于AVR的PIN,都是用来存储IO口当时的输入状况(凹凸电平)的。

除此之外,STM32还有BSRR、BRR、LCKR等几个寄存器用于操控IO口,这点是AVR所没有的。

3.1.2硬件规划

该试验的硬件电路在ALIENTEM Mini STM32开发板上现已衔接好了。DS0接PA8,DS1接PD2。所以在硬件上不需要动任何东西。其衔接原理图如下:

图3.1.2.1LED与STM32衔接原理图

3.1.3软件规划

首要,找到之前新建的TEST工程,在该文件夹下面新建一个HARDWARE的文件夹,用来存储今后与硬件相关的代码。然后在HARDWARE文件夹下新建一个LED文件夹,用来寄存与LED相关的代码。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/258897.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部