您的位置 首页 IC

STM8S的通用异步收发器UART的原理解析

STM8S的通用异步收发器UART的原理解析-STM8S的通用异步收发器(UART)主要特性:

● 全双工的,异步通信

● 可编程数据字长度(8位或9位)

● 可配置的停止位-支持1或2个停止位

一般的,我们使用串口通信主要是关心几点参数:波特率、停止位、奇偶校验位。

其次就是如何发送、如何接收数据,这里介绍的使用阻塞式发送数据、中断方式接收数据。

串口通讯是单片机学习的一个最基本、最重要的功用之一。串口通讯能够直接的作为调试接口运用,完成单片机与电脑之间的通讯。当然能够与一些模块(比方蓝牙、wifi)通讯,也能够作为和其他单片机通讯的东西

STM8S的通用异步收发器UART)首要特性:

● 全双工的,异步通讯

● 可编程数据字长度(8位或9位)

● 可装备的中止位-支撑1或2个中止位

一般的,咱们运用串口通讯首要是关怀几点参数:波特率、中止位、奇偶校验位。

其次便是怎么发送、怎么接纳数据,这儿介绍的运用堵塞式发送数据、中止方法接纳数据。

以下代码是初始化串口,参数为:115200 1中止位 无校验位

voidInit_UART1(void)

{

CLK_PCKENR1|=0X04;//使能USART1时钟

UART1_CR1=0x00;

UART1_CR2=0x00;

UART1_CR3=0x00;

//有必要先写BRR2

//例如关于波特率位115200时,分频系数=16000000/115200=139

//对应的十六进制数为008B,BBR1=08,BBR2=0B

UART1_BRR2=0x0B;

UART1_BRR1=0x08;

UART1_CR2=0x2c;//答应接纳,发送,开接纳中止

}

波特率设置需求经过核算,STM8S的默许主频是16M,得到写入寄存器的数为139。留意,这儿需求先写入BRR2再写入BRR1,且格局特别:

BRR1应夹在BRR2之间!(需求修正波特率需求好好了解)

编程手册描绘如下:

STM8S的通用异步收发器UART的原了解析

堵塞式发送函数(发送一个字节)如下:

voidSendChar(u8dat)

{

while((UART1_SR&0x80)==0x00);

UART1_DR=dat;

}

只需求将数据加载到UART1_DR寄存器里就算是OK。

终端接纳数据函数如下:

//将收到的数据再发送出去

#pragmavector=UART1_R_OR_vector//0x19

__interruptvoidUART1_R_OR_IRQHandler(void)

{

u8res;

res=UART1_DR;

return;

}

运用中止需求声明中止函数进口,而且指定中止表序号(串口1接纳中止向量为0x19):

#pragmavector=UART1_R_OR_vector//0x19

__interruptvoidUART1_R_OR_IRQHandler(void)

只需串口接纳到一个字节的数据就会当即进入此函数,数据存放在UART1_DR寄存器中。

留意:要运用中止这个功用需求在mian函数中参加敞开中止句子:

_RIM;

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部