APP下载

STM32单片机多串口通信仿真测试技术研究

2015-06-13郭勇,何军

无线电工程 2015年8期
关键词:单片机

郭 勇,何 军

(南京北方信息控制集团有限公司产品研发中心,江苏南京211153)

0 引言

STM32单片机是基于高性能Cortex-M3内核的32位单片机,外设功能强大,最大工作频率72MHz。本文选用的STM32103VET6芯片,有多达5个USART、3个SPI口和2个I2C口,便于产品与上位机的通信。采用基于库函数的编程方法,能很快地进行产品开发。目前公开的文献没有提及无硬件平台情况下对STM32进行多串口调试的方法,部分文献有介绍用虚拟串口仿真51单片机,但没有提及怎样仿真串口接收通信的情况[1-3]。本文采用基于RealView MDK、VSPD(虚拟串口)和串口调试软件的联合仿真调试技术,可以在没有硬件平台的情况下,完成多串口收发通信软件的开发和测试。

1 多串口通信的软件设计原理

软件流程图如图1所示。

图1 软件流程

本文使用的STM32芯片有多达5个USART,使用其中的3个USART(USART1~USART3)。在不进行管脚重映射的情况下,USART1_Tx管脚为PA9,USART1_Rx管脚为 PA10,USART2_Tx管脚为PA2,USART2_Rx管脚为 PA3,USART3_Tx管脚为PB10,USART3_Rx管脚为PB11。软件的设计采用模块化,包括RCC时钟配置模块,NVIC中断向量配置模块,USART1~USART3管脚配置模块、USART1~USART3初始化模块,USART1~USART3通信模块等。

1.1 RCC时钟设置模块

采用8 MHz外部晶振作为PLL时钟,再倍频到72 MHz。该时钟作为系统时钟,待系统时钟稳定后,再进行各模块时钟的分配[4]。时钟初始化模块部分代码如下:

/*使能串口1时钟,及管脚GPIOA的时钟*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);∥使能串口2时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);/* 使能串口3引脚GPIOB的时钟*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);∥使能串口3时钟

1.2 UASRT通信管脚配置模块

STM32单片机功能管脚由GPIO管脚进行映射,这里仅给出USART1_Tx和USART1_Rx管脚配置的软件代码,USART2和 USART3的管脚配置类似[5]。

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;

∥IO口的第九脚

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

∥IO口的速度

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

∥IO口复用推挽输出

GPIO_Init(GPIOA,&GPIO_InitStructure);

∥初……

登录APP查看全文

猜你喜欢

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