当前位置:首页 > 单片机 > 单片机
[导读]Ⅰ、写在前面做软件开发的人都知道打印信息的重要,说到打印信息,我们就不得不说UART串口打印。做单片机开发的人,打印信息主要的来源就是UART串口打印。因此,关于UART相关的知识就比较重要。printf、scanf这种标准

Ⅰ、写在前面

做软件开发的人都知道打印信息的重要,说到打印信息,我们就不得不说UART串口打印。做单片机开发的人,打印信息主要的来源就是UART串口打印。因此,关于UART相关的知识就比较重要。

printf、scanf这种标准的函数不只是可以在电脑上可以使用,在我们单片机上也同样可以使用,本文只讲述关于UART的基础知识,关于printf、scanf这一块后面将再次给大家整理一篇文章。

本文将结合“STM8S参考手册”和软件源代码给大家讲述关于UART的基础知识和用法。

为方便大家阅读,本文内容已经整理成PDF文件:

http://pan.baidu.com/s/1i5uWhJR

作者:strongerHuang

版权所有,未经允许,禁止用于其它商业用途!!!

Ⅱ、UART基础知识

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器。

STM8S微控制器家族的通用同步异步收发器(UART1、UART2或UART3)提供了一种灵活的方法和使用工业标准NZR异步串行数据格式的外部设备之间进行全双工数据交换。STM8的UART提供宽范围的波特率选择,并且支持多处理器通讯。

主要特性:

?全双工的,异步通信

?高精度波特率发生器系统:发送和接收共用的可编程波特率,最高达2.5Mbits/s

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

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

?单线半双工通信(UART1)

?检测标志:接收缓冲器满、发送缓冲器空、传输结束标志

?6个带标志的中断源

?2个中断向量

?低功耗模式

UART同步模式

UART_CK脚是UART发送器时钟的输出。在起始位和停止位期间,UART_CK脚上没有时钟脉冲。根据UART_CR3寄存器中LBCL位的状态,发送器决定在最后一个有效数据位期间产生或不产生时钟脉冲。 UART_CR3寄存器的CPOL位允许用户选择时钟极性, UART_CR3寄存器上的CPHA位允许用户选择外部时钟的相位。

在总线空闲帧和断开帧中,外部CK时钟处于非激活状态。

注意:

1.UART_CK脚同UART_TX脚一起联合工作。当UART发送端被禁用时(TEN和REN=0),UART_CK和UART_TX管脚为高阻态。

2.在UART发送端和接收端都被禁用(TEN=REN=0)时, LBCL,CPOL和CPHA位必须被正确配置以保证时钟脉冲正确工作;当发送器或接收器被激活时,这些位不能被改变。

3.建议在同一条指令中设置TE和RE,以减少接收器的建立时间和保持时间。

4. UART只支持主模式:它不能使用来自其他设备的输入时钟以接收或发送数据(SCLK只能配置为输出状态)。

5.本节给出的数据只有在寄存器UART_BRR2的UART_DIV[3:0]为0时才有效。否则建立时间和持续时间不再是1/16位时间,而是4/16位时间。

该功能选项可以串行地控制那些由移位寄存器组成的外设,而不会失去异步通讯的功能,即仍然可以与其他异步发送接收器通讯。

UART同步传输的例子:


Ⅲ、软件工程源代码1、关于工程

本文提供的工程代码是基于前面软件工程“STM8S-A02_TIM精确延时(阻塞式)”增加UART串口修改而来。初学的朋友可以参看我前面对应的基础文章,那些文章讲的比较详细。

工程源代码主要实现功能:UART串口基本输出+中断接收数据。UART串口间隔1s打印字符串“Demo...”,串口通过中断接收数据,接收到一个字符就将其通过串口发送出去。

本文重点讲述关于UART的内容:

UART_Initializes:UART串口初始化

UART1_SendByte:UART串口发送字节数据

2.代码分析说明

A.UART_Initializes:初始化

void UART_Initializes(void)

{

UART1_Init((uint32_t)115200,UART1_WORDLENGTH_8D,UART1_STOPBITS_1,UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE);

UART1_Cmd(ENABLE);

UART1_ITConfig(UART1_IT_RXNE, ENABLE);

enableInterrupts();

}

UART1_Init:包含的参数:

115200:波特率

UART1_WORDLENGTH_8D:字长,8位或9位

UART1_STOPBITS_1:停止位

UART1_PARITY_NO:奇偶校验

UART1_SYNCMODE_CLOCK_DISABLE:同步模式

UART1_MODE_TXRX_ENABLE:收发使能

这里每一个参数都可以有不同值,可参看其枚举类型。

UART1_Cmd(ENABLE):使能UART1.

UART1_ITConfig(UART1_IT_RXNE, ENABLE):使能中断接收。

enableInterrupts():使能全局中断。

B.UART1_SendByte:发送字节数据

void UART1_SendByte(uint8_t Data)

{

while((UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET));

UART1_SendData8(Data);

while((UART1_GetFlagStatus(UART1_FLAG_TC)==RESET));

}

while((UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET)):等待发送为空

UART1_FLAG_TXE代表发送寄存器为空。

UART1_SendData8(Data):发送字节数据

while((UART1_GetFlagStatus(UART1_FLAG_TC)==RESET)):等待传输完成

UART1_FLAG_TC代表发送完成标志。

C.中断接收

位于stm8s_it.c文件下:

INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

{

uint8_t temp;

temp = UART1_ReceiveData8();

UART1_SendData8(temp);

}

这里只是简单的一个Demo例程,接收到数据,将其通过串口发送出去。

UART串口有接收数据中断,会置位接收标志,平常我们响应中断,一般都会清楚中断标志,但串口中断接收数据,我们都会去读取串口接收数据,读取数据会自动清除标志位。见参考手册中“状态寄存器UART_SR”:


D.主函数功能

while(1)

{

LED_ON; //LED亮

TIMDelay_Nms(500);

LED_OFF; //LED灭

TIMDelay_Nms(500);

UART1_Printf((uint8_t*)"Demo..."); //串口打印(输出)数据

}

主函数里面实现间隔一段时间(1s),通过UART串口发送字符串“Demo...”。

Ⅳ、下载

STM8S资料:

http://pan.baidu.com/s/1o7Tb9Yq

软件源代码工程(STM8S-A04_UART基本收发数据):

http://pan.baidu.com/s/1c2EcRo0


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭