STM8教程-第十二章 串口及其应用

STM8教程-第十二章 串口及其应用

ID:38983553

大小:548.14 KB

页数:6页

时间:2019-06-23

STM8教程-第十二章 串口及其应用_第1页
STM8教程-第十二章 串口及其应用_第2页
STM8教程-第十二章 串口及其应用_第3页
STM8教程-第十二章 串口及其应用_第4页
STM8教程-第十二章 串口及其应用_第5页
资源描述:

《STM8教程-第十二章 串口及其应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十二章串口及其应用前面三节介绍了STM8的IO口以及时钟编程。这一节我们将学习STM8的串口。通过本节学习,你将了解到STM8串口的基本使用方法。前面三节介绍了STM8的IO口操作以及时钟编程。这一节我们将学习STM8的串口。作为软件开发重要的调试手段,串口的作用是很大的。在调试的时候可以用来查看和输入相关的信息。在使用的时候,串口也是一个和外设(比如GPS,GPRS模块等)通信的重要渠道。STM8的串口资源相当丰富的,功能也相当强劲。STM8有波特率发生器、支持同步单线通信和半双工单线通讯、支持LIN、支持调制解调器操作、智能卡协议和IrDASIRENDEC规范接下来我们将

2、从寄存器层面,告诉您如何设置串口,以达到我们最基本的通信功能。本实例中,我们将实现利用串口1不停的打印一个信息到电脑上,以及例程二的同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。串口最基本的设置,就是波特率的设置。STM8的串口使用是很简单的。配置步骤:1.编程UART_CR1的M位来定义字长。2.在UART_CR3中编程停止位的位数。3.按下列顺序编写波特率寄存器选择要求的波特率a)UART_BRR2b)UART_BRR14.设置UART_CR2中的TE位来使能发送模式5把要发送的数据写进UART_DR寄存器(此动作清除TXE位)。在只有一个缓冲器的情况下,对每

3、个待发送的数据重复此步骤。下面,我们就简单介绍下这几个与串口基本配置直接相关的寄存器。1、UARTx_CR1(x是指对应的UART,STM8有多个UART,详细请见对应数据手册)R8、T8是在数据字长定义为9位时才使用的,对应的是接收第8位和发送第8位(都是从第0位开始算)UARTD是UART的使能位,0的时候使能UART,1的时候不可以用UART,默认0,M是定义串口的字长,0为8位字长,1是9位的字长下面的PECE,PS,PIEN分别是奇偶效验,奇偶效验选择,效验中断使能。由于我们没有定义奇偶效验在此不再详细说明,默认就可以。2、UARTx_CR2控制寄存器2主要负责管理中

4、断和发送接收的使能TIEN、TCIEN、RIEN、ILIEN分别对应发送中断,发送完成中断,接收中断以及IDLE中断TEN是发送使能,当TEN=1的时候我们就可以通过串口进行发送数据,当然前提是我们已经设置好对应的寄存器REN是接收使能,当REN=1的时候我们可以通过串口接收其它设备的数据RWU接收唤醒SBK发送断开帧1、UARTx_CR3在这个寄存器中我们主要使用了STOP,也就是设置停止位数LINENLin模式的使能,这里我们不详细说明STOP设置停止位数001个停止位01保留102个停止位111.5个停止位CLKEN时钟使能,由于我们没有采用3根线,只用了UART_RX和

5、UART_TX所以不需要设置这个寄存器,默认就可以CPOL、CPHA、LBCL对应着的是时钟极性,时钟相位以及最后一个时钟脉冲,详细介绍请见寄存器手册2、波特率有关寄存器3、数据寄存器发送和接受的数据通过这个寄存器的读写就可以实现4、状态寄存器通过读取这个寄存器可以知道UART的工作状态我们本实验就需要查询这个寄存器的某个位,来清除数据是否发送完毕TXE发送数据寄存器空0的时候非空,1为空TC发送完成0未完成1完成发送RXNE读数据寄存器非空0数据没有收到1数据收到其它的位分别为检查到IDLE总线,过载错误,噪声标志位,帧错误,奇偶效验错误简单的寄存器就结束到此,除此之外还有其

6、它很多寄存器望读者查阅寄存器手册有了以上的基础,我们可以开始这一节的软件编写了在开始软件代码编程之前,先说明一下我们的硬件我们的实验板是共用一根USB线实现多功能操作,分别是下载程序功能,供电功能以及串口功能,传统的串口需要串口接口,考虑到方便我们自己通过PL2303把串口转成可以通过USB进行通信,下面开始我们的例程一,简单的发送数据给终端例程一、简单数据发送#include"iostm8s207rb.h"voiddelay_ms(intvalue);intmain(void){unsignedchartemp=0;CLK_CKDIVR=0x00;//主频为16MUART1_

7、CR1=0x00;//关闭UART,设置数据位8位,禁止奇偶效验,禁止中断UART1_CR3=0x00;//一位停止位,默认值UART1_BRR2=0x0b;//设置波特率为115200UART1_BRR1=0x08;UART1_CR2_TEN=1;//使能发送while(1){while(!UART1_SR_TC);//等待一帧发送完毕,再传送下一帧UART1_DR=temp;temp++;if(temp>=255)temp=0;delay_ms(100);}}/*************

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

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

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