STM8教程-第七章 STM8S207 GPIO模块及其应用

STM8教程-第七章 STM8S207 GPIO模块及其应用

ID:42734984

大小:914.37 KB

页数:9页

时间:2019-09-21

STM8教程-第七章 STM8S207 GPIO模块及其应用_第1页
STM8教程-第七章 STM8S207 GPIO模块及其应用_第2页
STM8教程-第七章 STM8S207 GPIO模块及其应用_第3页
STM8教程-第七章 STM8S207 GPIO模块及其应用_第4页
STM8教程-第七章 STM8S207 GPIO模块及其应用_第5页
资源描述:

《STM8教程-第七章 STM8S207 GPIO模块及其应用》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第七章STM8S207GPIO模块及其应用本章终于开始STM8S207的例程编写了,通过前面章节的学习,相信对STM8S207已经有了一定的认识。本章从STM8S207最简单的IO口模块开始STM8S207的编程。7.1GPIO简介STM8S207内部有非常丰富的输入、输出端口资源,同时也集成了多种功能模块,其输入、输出引脚大多为复用引脚。STM8S207单片机的IO口包括PA、PB、PC、PD、PE、PF、PG、PI等52个IO口通用输入/输出口用于芯片和外部进行数据传输。一个IO端口可以包括多达8个引脚,每个引脚可以被独立编程作为数字输入或者数字输出口。另外部分口还可能会有如模

2、拟输入,外部中断,片上外设的输入/输出等复用功能。但是在同一时刻仅有一个复用功能可以映射到引脚上。复用功能的映射是通过选项字节控制的。请参考数据手册关于选项字节的描述。每个IO口都有5个对应的寄存器,IO的工作方式也由这5个寄存器控制,它们分别为:1、数据方向寄存器2、配置寄存器13、配置寄存器24、输出数据寄存器5、输入数据寄存器一个I/O口工作在输入还是输出是取决于该口的数据方向寄存器的状态。7.1.1GPIO主要功能1、端口的各个位可以被单独配置2、可选择的输入模式:浮动输入和带上拉输入3、可选择的输出模式:推挽式输出和开漏输出4、数据输入和输出采用独立的寄存器5、外部中断可

3、以单独使能和关闭6、输出摆率控制用以减少EMC噪声7、片上外设的I/O功能复用8、当作为模拟输入时可以关闭输入施密特触发器来降低功耗9、在数据输出锁存时支持读-修改-写10、输入兼容5V电压11、I/O口工作电压范围为1.6V到VDDIOmaxGPIO模块框图7.2IO口的配置和使用每一个端口都有一个输出数据寄存器(ODR),一个引脚输入寄存器(IDR)和一个数据方向寄存器(DDR)。控制寄存器1(CR1)和控制寄存器2(CR2)用于对输入/输出进行配置。任何一个I/O引脚可以通过对DDR、CR1和CR2寄存器的相应位进行编程来配置。寄存器中的位n对应于口的引脚n。STM8S的每个

4、IO端口都有5个寄存器来控制,CR1和CR2一起配置模式,DDR方向控制,ODR输出数据寄存器,IDR输入数据寄存器。7.2.1IO口端口寄存器设置除了IO口默认功能外,要使用IO口操作时,必须先设置IO口寄存器,让对应IO口工作于实际所需的功能。这里分别讲解DDR方向寄存器,CR1和CR2配置寄存器,输出时的ODR输出数据寄存器以及IDR输入数据寄存器。1、方向寄存器DDR如果对应位数据方向寄存器DDRxx取值(0-7)的数值为ÿ0Ā,即将对应引脚定义为输入;如果对应数据方向寄存器DDRx的数值为ÿ1Ā,即将对应引脚定义为输出。这里注意的地方是在IAR环境中,例如PA口定义为输出

5、时,可以定义为PA_DDR=0xFF,其它端口也一致。还有就是单独操作一个引脚时,可以这样定义PA_DDR_DDR0就是PA的第一个引脚,其他引脚也类似。2、配置寄存器CR1、CR2CR1和CR2是一起使用的,具体的功能是实现配置为上拉,悬浮,中断以及高速IO口等等功能。上图已经详细说明了CR1,CR2的功能使用方法。例如当配置为输出时,推挽模式,也是PA口,可以定义为PA_CR1=0xFF;PA_CR2=0x00;当然,当定义单独一个引脚时,分别定义为PA_CR1_C10=1;//PA0PA_CR2_C20=0;3、输出数据寄存器ODR当对应IO口定义为输出时,如何输出一个让程序

6、控制的数值呢?这就要用到输出数据寄存器。具体实现的是当向对应的输出数据寄存器写入数据时,这个数值就会在对应的引脚中产生相应的高低电平,具体实现办法是,例如PA0输出高电平可以定义为PA_ODR

7、=1;//其它寄存器已经配置好当然也可以单独一个位操作PA_ODR_ODR0=1;//效率比上面的更高4、输入数据寄存器IDRIDR实现的功能是:当IO口定义为输入时,通过读取IDR寄存器可以知道对应IO口的电平。这里简单说明当PA0定义为输入时,可以直接读取PA0_IDR寄存器来判断PA0电平的情况if(PA_IDR&0x01==1)//判断PA0口的状态也可以单独读取一个IO口,例如if

8、(PA_IDR_IDR0==1)//效率比上面的更好7.3IO口基础应用实例本节以通用IO口简单应用的角度讲解如何控制LED灯和按键开关信号,通过几个实例的介绍,让读者掌握IO口的使用和编程方法。7.3.1输出设备LED控制实例典型LED有阳极和阴极两个引脚,LED在正向偏置的状态下能够发光,通过通用IO口连接到LED的一个引脚,LED另一个引脚接固定电平,即可点亮LED。本实例硬件连接如下图所示,PD0~3端口连接4个LED,编程实现明灯流水等操作。由电路图可知,使

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。