APP下载

STM32系列单片机多串口通讯系统简述

2016-07-13方少雷苏跃龙

山西电子技术 2016年3期
关键词:单片机

方少雷,李 鹏,苏跃龙

(山西省机电设计研究院,山西 太原 030009)



STM32系列单片机多串口通讯系统简述

方少雷,李鹏,苏跃龙

(山西省机电设计研究院,山西 太原 030009)

摘要:以STM32F103RCT6为例,介绍此芯片与液晶显示屏、微型打印机、PC上位机和AD采集卡之间的串行通信技术。阐述了此芯片5个同步/异步收发器使用功能,详细介绍了硬件连接和软件配置。在电子仪器开发中,实现了多串口间的通讯功能。

关键词:单片机;同步异步收发器;串行通信

目前,单片机已经广泛应用于仪器仪表、家用电器、医用设备、航空航天、智能化管理及过程控制等领域。在这些领域,通常会衍生出许多专用特殊的外设。比如:彩色液晶屏、微型打印机、红外控制器、步进电机控制器等等。面对如此多的外设,主控CPU与外设之间的通信方式就变得尤为重要。本文介绍一种异步串行通信方式:串口通讯。其优点有:1) 线路少,成本低;2) 连线方便;3) 通讯协议标准规范;4) 外设终端大部分支持。然而,传统的MSC51单片机一般只具备1个串口,虽然能够实现多机通讯,但会出现数据传送间的误码率高、C程序冗余、运行速度缓慢等缺点。

采用STM32F103RCT6芯片,最多支持5个USART串口通讯。可连5个外设同时与CPU进行串行数据通信。而且这些外设之间相互独立,不存在相互干扰问题。本文将阐述这5个USART同步/异步收发器使用功能,详细介绍硬件连接图和软件配置。

1芯片介绍

STM32F103RCT6芯片是ST意法半导体公司推出的一款基于Cortex-M3核心的ARM芯片,芯片的工作电压为2.0 V~3.6 V。支持5个USART通用同步/异步收发器,并且此芯片控制管脚丰富,能够满足绝大多数微控电子仪器的控制要求[1]。参数如表1所示。

表1 STM32F103RCT6芯片资源配置

STM32F103RCT6芯片中内置3个通用同步/异步收发器(USART1、USART2和USART3),和2个通用异步收发器(USART4和USART5)。其中USART1接口通信速率可达4.5 Mbps(兆位/秒),其他USART接口通信速率最大为2.25 Mbps(兆位/秒)。USART是可产生TTL电平的串口,并且兼容RS-232规范信号。如果要与PC上位机串口通信,需转换成RS-232电平串口。如图1所示。

图1 外设硬件连接图

2硬件设计

如图1,液晶屏和打印机采用的是TTL电平串口。上位机PC串口连接,是通过MAX3232将TTL电平转化为RS-232电平。MAX3232是RS-232接口电平匹配芯片,外围电路与MAX232类同[3]。

本文中,STM32F103RCT6采用12 MHz外部时钟,其内部的锁相环能将工作时钟频率最大倍频为72 MHz。其中,USART1是挂在APB2时钟总线上,最大时钟频率为36 MHz。USART2、USART3、USART4、USART5是挂在APB1时钟总线上,最大时钟频率可达72 MHz。STM32F103RCT6的USART管脚对应端口如表2。

表2 各个USART口对应的管脚

3软件设计

按照硬件电路设计,软件编程的基本思路是:先配置好外设总线时钟频率,初始化每一个USART波特率,使能其中断,在嵌套向量中断控制器(NVIC)中,设置各个USART中断优先级。若USART口上有数据过来,根据优先级先后进入各自中断响应函数中,执行响应函数。执行完后,退出中

断,继续等待数据[1,2]。程序采用C语言编写,程序流程图如图2所示。

图2 程序流程图

1) USART1配置函数程序和中断响应函数程序如下:

void Init_UART1()

{

RCC->APB2ENR|=1<<2;//开A口时钟

RCC->APB2ENR |= (1<<14);//开串口1时钟

Baud_rate(UART1);//设置波特率

USART1->CR1|=1<<8;//PE中断使能

USART1->CR1|=1<<5;

NVIC_EnableIRQ(USART1_IRQn);

NVIC_SetPriorityGrouping(5);

NVIC_SetPriority(USART1_IRQn,0);

}

void USART1_IRQHandler(void)

{

if(USART1->SR & (1<<5))

{

……

}

}

2) USART2配置函数程序和中断响应函数程序如下:

void Init_UART2()

{

RCC->APB2ENR|=1<<2;//开A口时钟

RCC->APB1ENR |= (1<<17);//开串口2时钟

Baud_rate(UART2);//设置波特率

USART2->CR1|=1<<8;//PE中断使能

USART2->CR1|=1<<5;

NVIC_EnableIRQ(USART2_IRQn);

NVIC_SetPriorityGrouping(5);

NVIC_SetPriority(USART2_IRQn,1);

}

void USART2_IRQHandler(void)

{

if(USART2->SR & (1<<5))

{

……

}

}

3) USART3配置函数程序和中断响应函数程序如下:

void Init_UART3()

{

RCC->APB2ENR|=1<<3;//开B口时钟

RCC->APB1ENR|=(1<<18);//开串口3时钟

Baud_rate(UART3);//设置波特率

USART3->CR1|=1<<8;//PE中断使能

USART3->CR1|=1<<5;

NVIC_EnableIRQ(USART3_IRQn);

NVIC_SetPriorityGrouping(5);

NVIC_SetPriority(USART3_IRQn,2);

}

void USART3_IRQHandler(void)

{

if(USART3->SR & (1<<5))

{

……

}

}

4) USART4配置函数程序和中断响应函数程序如下:

void Init_UART4()

{

RCC->APB2ENR|=1<<4;//开C口时钟

RCC->APB1ENR |= (1<<19);//开串口4时钟

Baud_rate(UART4);//设置波特率

USART4->CR1|=1<<8;//PE中断使能

USART4->CR1|=1<<5;

NVIC_EnableIRQ(USART4_IRQn);

NVIC_SetPriorityGrouping(5);

NVIC_SetPriority(USART4_IRQn,3);

}

void USART4_IRQHandler(void)

{

if(USART4->SR & (1<<5))

{

……

}

}

5) USART5配置函数程序和中断响应函数程序如下:

void Init_UART5()

{

RCC->APB2ENR|=1<<4;//开C口时钟

RCC->APB2ENR|=1<<5;//开D口时钟

RCC->APB1ENR|=(1<<20);//开串口5时钟

Baud_rate(UART5);//设置波特率

USART5->CR1|=1<<8;//PE中断使能

USART5->CR1|=1<<5;

NVIC_EnableIRQ(USART5_IRQn);

NVIC_SetPriorityGrouping(5);

NVIC_SetPriority(USART5_IRQn,4);

}

void USART5_IRQHandler(void)

{

if(USART5->SR & (1<<5))

{

……

}

}

在电子仪器开发过程中,软件配置也十分重要。以上程序是直接寄存器配置,程序简单并完整。各个串口的优先级别为:USAR1设置优先级为0,最高级;USART2优先级为1;USART3优先级为2;USART4优先级为3;USART5优先级为4。配置好这些参数后,只用在中断响应函数里添加执行处理函数即可。

4结论

利用STM32F103RCT6多串口功能,可解决CPU与外设、外设与外设间的多串口通信问题。而且STM32F103RCT6芯片工作可靠,在MDK开发环境下,开发程序简洁方便,可广泛应用于家用电器、医用设备、航空航天电子仪器设备上。

参考文献

[1]STM32中文参考手册[M].第10版.意法半导体(中国)投资有限公司,2010:15-22,399-435.

[2]李宁.基于MDK的STM32处理开发应用[M].北京:北京航空航天大学出版社,2008.

[3]张立勋.STM32与LABVIEW串行通信的设计[J].平顶山:煤矿机械,2011:215-217.

The Use of Multiple Serial Port Based on STM32

Fang Shaolei, Li Peng, Su Yuelong

(ShanxiInstituteofMechanical&ElectricalEngineering,TaiyuanShanxi030009,China)

Abstract:This text introduces the serial communication technology between STM32F103RCT6 and LCD, micro printer, PC host computer and AD acquisition card, describes the five synchronous/asynchronous transceiver chip functions. The hardware connection diagram and software configuration are introduced in details. In the development of electronic instruments, the serial communication among multiple serial ports is realized.

Key words:MCU; USART; serial communication

收稿日期:2016-03-08

作者简介:方少雷(1989- ),男,山西运城,初级工程师,本科,嵌入式程序开发。

文章编号:1674- 4578(2016)03- 0055- 03

中图分类号:TP311

文献标识码:B

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计