实验报告模版Markdown格式 (2)

  • Post author:
  • Post category:其他





重庆交通大学信息科学与工程学院




《嵌入式系统基础A》课程



实验报告(2)


班 级:

物联网工程2002


姓名-学号 :

谢志聪632007060527


实验项目名称:

STM32串口通信编程


实验项目性质:

设计性


实验所属课程:

《嵌入式系统基础A》


实验室(中心):

南岸校区语音大楼


指 导 教 师 :

娄路


完成时间:

2021



10



xx



一、实验内容和任务

  1. 了解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;了解”USB/TTL转232″模块(以CH340芯片模块为例)的工作原理。

  2. 安装 stm32CubeMX,配合Keil,分别尝试使用寄存器地址方式(汇编或C,不限) 和HAL库这两种方式,完成下列任务:

    (1)重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯的周期闪烁。

    (2)完成一个STM32的USART串口通讯程序(查询方式即可,暂不要求采用中断方式),要求:1)设置波特率为115200,1位停止位,无校验位;2)STM32系统给上位机(win10)连续发送”hello windows!”。win10采用”串口助手”工具接收。

  3. 在没有示波器条件下,可以使用Keil的软件仿真逻辑分析仪功能观察管脚的时序波形,更方便动态跟踪调试和定位代码故障点。 请用此功能观察第1题中3个GPIO端口的输出波形,和第2题中串口输出波形,并分析其正确与否。

    参考网址:

    https://blog.csdn.net/qq_43279579/article/details/112213196

    搭建STM32开发环境——STM32CubeMX,Keil5

    https://blog.csdn.net/qq_43279579/article/details/112233696

    STM32实现LED闪烁——基于HAL库

    https://blog.csdn.net/ssj925319/article/details/111984002

    基于 MDK 创建 STM32 汇编程序:串口输出 Hello world

    https://blog.csdn.net/vic_to_ry/article/details/110451036


二、实验要求

1. 分组要求:每个学生独立完成,即1人1组。

2. 程序及报告文档要求:具有较好的可读性,如叙述准确、标注明确、截图清晰等。

3.项目代码上传github,同时把项目完整打包为zip文件,与实验报告(Markdown源码及PDF文件)、作业博客地址一起提交到学习通。

三.

实验过程介绍 (此处可以填博客内容)



一.何为串口通信协议

       串口通信指两个或两个以上的设备使用串口按位(bit)发送和接收字节。可以在使用一根线发送数据的同时用另一根线接收数据。 串口通信协议就是串口通讯时共同遵循的协议。 协议的内容是每一个bit 所代表的意义。 常用的串口通信协议 有以下几种

1 RS-232(ANSI/EIA-232标准) 只支持 点对点, 最大距离 50英尺。最大速度为128000bit/s, 距离越远 速度越慢。 支持全双工(发送同时也可接收)。

2 RS-422(EIA RS-422-AStandard),支持点对多一条平衡总线上连接最多10个接收器 将传输速率提高到10Mbps,传输距离延长到4000英尺(约1219米),所以在100kbps速率以内,传输距离最大。支持全双工(发送同时也可接收)。

3 RS-485(EIA-485标准)是RS-422的改进, 支持多对多(2线连接),从10个增加到32个,可以用超过4000英尺的线进行串行通行。速率最大10Mbps。支持全双工(发送同时也可接收)。2线连接时 是半双工状态。



二.RS-232

RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它是由美国电子工业协会(EIA)联合贝尔系统公司、调制解调厂家及计算机终端生产厂家于1970年共同制定,其全名是“数据终端设备( DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”。

RS-232_百度百科



三.TTL电平与RS232电平的区别

什么是TTL电平、RS232电平?它们有什么区别呢?

(一)、TTL电平标准

输出 L: <0.8V ; H:>2.4V。

输入 L: <1.2V ; H:>2.0V

TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。于是TTL电平的输入低电平的噪声容限就只有(0.8-0)/2=0.4V,高电平的噪声容限为(5-2.4)/2=1.3V。

(二)、RS232标准

在TXD和RXD数据线上:

(1)逻辑1为-3~-15V的电压

(2)逻辑0为3~15V的电压

在RTS、CTS、DSR、DTR和DCD等控制线上:

(1)信号有效(ON状态)为3~15V的电压

(2)信号无效(OFF状态)为-3~-15V的电压

这是由通信协议RS-232规定的。

RS-232:标准串口,最常用的一种串行通讯接口。有三种类型(A,B和C),它们分别采用不同的电压来表示on和off。最被广泛使用的是RS-232C,它将mark(on)比特的电压定义为-3V到-12V之间,而将space(off)的电压定义到+3V到+12V之间。传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。



四、了解“USB/TTL转232“模块(以CH340芯片模块为例)的工作原理。

CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。为了增加串口通讯的远距离传输及抗干扰能力,RS-232标准使用-15V 表示逻辑 1, +15V 表示逻辑 0。常常会使用 MH340芯片对 USB/TTL与RS-232电平的信号进行转换。

在这里插入图片描述



STM32CubeMX简介

STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。

在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间,大大的节省了时间。

关于STM32CubeMX的安装教程,可参考此博客https://blog.csdn.net/as480133937/article/details/98885316



1、利用CubeMX新建工程点亮LED灯

1)前期准备

在本次实验中,使用到的STM32硬件为,STM32F103C8T6;

软件为,STM32CubeMX软件、KEIL MDK-arm软件,以及STM32F1xxHAL库

2)新建工程

搜索芯片型号–>选择芯片–>创建工程

1 在主界面选择File–>New Project 或者直接点击ACCEE TO MCU SELECTOR

2 进行芯片型号选择,一般直接在左上角搜索自己的芯片型号即可。

在这里插入图片描述

在这里插入图片描述



2、界面讲解

在这里插入图片描述



3、配置引脚

在这里插入图片描述



4、时钟源配置

在这里插入图片描述



5、工程管理

设置完MCU后,可以进行对工程文件的配置了。

在Project处,这里就是工程的各种配置,我们只用到有限几个,其他的默认即可 。

注意 存储目录不可以有中文

在这里插入图片描述



6、编译及烧录

在这里插入图片描述



总结

通过使用STMCubeMX简化实验过程,因为它能生成一些代码。然后可以根据波形来判断自己的代码是否有问题,对于解决问题有很大帮助。



版权声明:本文为xzc23333333原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。