首页 > 文库大全 > 精品范文库 > 1号文库

串行口通讯实验报告

串行口通讯实验报告



课程名称:

微型计算机控制技术

时间:

2020.10.29

地点:

D203

班级:

2017级机制3班

姓名:

杨帆

学号:

***4

实验项目名称:

串行通讯接口实验

实验指导教师:

赵保华

实验成绩评定:

一、实验目的ü通过实验掌握

USART的功能。

掌握

STM32的USART的设置与运用。

二、实验设备

ü硬件:信盈达STM32

实验平台,STlink

仿真器套件,PC

机,串口连接线;

软件:KEIL

for

ARM(MDK)集成开发环境,串口调试助手,Windows

7/8/10/XP。

三、实验内容

利用

PC

机的串口与信盈达Cotex-M3

实验平台的USART1进行输入输出通信。

1)把自己的个人信息(姓名、学号),通过USART1发送到PC,PC通过串口助手显示出来。

2)通过

PC

机键盘往实验平台的USART1发送字符,实验平台上的USART1

将收到的字符再传回给

PC,在PC串口助手上显示其串口接收到的字符。

四、实验原理

XYD-STM32F103

开发板

UART1

使用的是

CH340G

这个

USB

转换串口芯片,只需要使用

USB

线连接上电脑,并且电脑上安装了

CH340

芯片的硬件驱动程序,电脑就会生成一个

COM

口,通过使用串口调试软件打开这个

COM

口,就能实现开发板和

PC

机之间的通信了。

五、软件程序设计

1、程序完成以下工作:

初始化串口;

重定义fputc函数,实现可以通过printf函数给电脑发送数据。

注意:重定义fputc之间需要打开微库。

检测串口接收器,如果有数据则从USART_DR寄存器中读取数据;

监测串口发送器,如果上一次数据已发送完成,将读取到的字符发送给PC,然后回到(3)。

main.c参考程序:

#include

“stm32f10x.h“

#include

“stdio.h“

#include

“uart.h“

int

main(void)

{

UART1_Init();//串口初始化

Show_Logo();//通过串口发送数据给PC

while(1)

{

USART1_Echo();//串口实现回显

}

}

uart.c参考程序:

#include

“stm32f10x.h“

#include

“uart.h“

#include

“stdio.h“

/****************************************************

函数名:UART1_Init

形参:无

返回值:无

函数功能:串口1的初始化

PA9

--

TX

PA8

--

RX

****************************************************/

void

UART1_Init(void)

{

GPIO_InitTypeDef

GPIO_Initstructure;

USART_InitTypeDef

USART_Initstructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA

|RCC_APB2Periph_USART1,ENABLE);//时钟的初始化

GPIO_Initstructure.GPIO_Pin

=

GPIO_Pin_9;

GPIO_Initstructure.GPIO_Mode

=

GPIO_Mode_AF_PP;

GPIO_Initstructure.GPIO_Speed

=

GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_Initstructure);//管脚9初始化为复用输出管脚

GPIO_Initstructure.GPIO_Pin

=

GPIO_Pin_10;

GPIO_Initstructure.GPIO_Mode

=

GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA,&GPIO_Initstructure);//管脚10初始化为输入管脚

USART_Initstructure.USART_BaudRate

=

115200;//配置rs232协议的波特率

USART_Initstructure.USART_WordLength

=

USART_WordLength_8b;//配置rs232协议数据位的的位宽

USART_Initstructure.USART_StopBits

=

USART_StopBits_1;//配置rs232协议的停止位的位宽

USART_Initstructure.USART_Parity

=

USART_Parity_No;//配置rs232协议奇偶校验位

USART_Initstructure.USART_HardwareFlowControl

=

USART_HardwareFlowControl_None;//配置rs232协议的硬件流控制

USART_Initstructure.USART_Mode

=

USART_Mode_Rx

|

USART_Mode_Tx;//使能接收和发送

USART_Init(USART1,&USART_Initstructure);//串口初始化

USART_Cmd(USART1,ENABLE);//使能串口1

}

/****************************************************

函数名:fputc

形参:ch代表要得到的参数

*f代表数据保存的地方

返回值:返回得到的参数

函数功能:用户printf函数的调用

****************************************************/

int

fputc

(int

ch,FILE

*f)

{

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)

==

RESET);//判断串口是否发送完数据

USART_SendData(USART1,ch);//从寄存器中得到数据

return

ch;

}

/****************************************************

函数名:USART1_Echo

形参:无

返回值:无

函数功能:串口1的回显功能

电脑给开发板发送数据,开发板再把接收到的数据返回给电脑

****************************************************/

void

USART1_Echo(void)

{

u8

ch;

while(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)

==

RESET);//等待接收数据

ch

=

USART_ReceiveData(USART1);//把接收到的数据保存到ch中

while(USART_GetFlagStatus(USART1,USART_FLAG_TXE)

==

RESET);//等待上次发送数据发送完成USART_SendData(USART1,ch);//把ch中的数据发送到电脑

}

/****************************************************

函数名:Show_Logo

形参:无

返回值:无

函数功能:在电脑上显示自己的logo

****************************************************/

void

Show_Logo(void)

{

printf(“******************************************\n\r“);

printf(“

郑州信盈达电子有限公司\n\r“);

printf(“

Welcome

STM32

\n\r“);

printf(“******************************************\n\r“);

}

uart.h参考程序:

#ifndef

_UART_H_

#define

_UART_H_

void

UART1_Init(void);//串口1初始化

void

USART1_Echo(void);//串口1回显函数

void

Show_Logo(void);

//在终端上显示LOGO

#endif

六、实验操作步骤

准备实验环境

使用

STlink

仿真器连接

信盈达STM32

实验平台的主板

JTAG

接口;使用

实验平台附带的USB数据线,连接实验平台主板和PC。

新建工程,编写程序,完成软件设计

新建工程保存文件夹,复制相应的库文件;

在开发环境中新建工程,配置工程选项;

新建程序代码文件,添加到工程,完成程序编码,无误后将程序下载到开发板的Flash

中,按

RESET

键复位;

在PC

机上运行串口调试助手(波特率115200、1

位停止位、无校验位、无硬件流控制),发送数据到开发板,观察实验现象。

3.观察实验结果

1)在PC

机上,串口助手接收区显示学生信息;

2)通过串口调试助手发送数据,在接收区接收到同样的数据。

七、实验结果:

八、心得体会

通过本次实验,我学到了很多知识,通过学习实验,通过实验掌握

USART的功能。掌握

STM32的USART的设置与运用。感谢老师的指导和同学的帮助。

相关内容

热门阅读

最新更新

随机推荐