• 帮助中心

  • ADADADADAD

    串行口通讯实验报告

    串行口通讯实验报告[ 11号文库 ]

    11号文库 时间:2024-10-29 07:00:02 热度:0℃

    作者:文/会员上传 下载docx

    简介:

    齐鲁理工学院实验报告课程名称:微型计算机控制技术时间:2024.10.29地点:D203班级:2024级机制3班姓名:杨帆学号:***4实验项目名称:串行通讯接口实验实验指导教师:赵保华实验成绩评定:

    以下为本文的正文内容,请查阅,本站为公益性网站,复制本文以及下载DOC文档全部免费。

    课程名称:

    微型计算机控制技术

    时间:

    2024.10.29

    地点:

    D203

    班级:

    2024级机制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的设置与运用。感谢老师的指导和同学的帮助。



    串行口通讯实验报告.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: TAGS1 TAGS2 TAGS3 TAGS4 TAGS5
    ADADAD
    热门栏目