这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
icore4t_53 [2020/03/26 18:39] zgf [四、 实验程序] |
icore4t_53 [2022/04/01 10:56] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-03-26 | gingko | 初次建立 | | | V1.0 | 2020-03-26 | gingko | 初次建立 | | ||
- | \\ | ||
- | \\ | ||
- | \\ | ||
\\ | \\ | ||
\\ | \\ | ||
行 75: | 行 71: | ||
==== 一、 实验目的与意义 ==== | ==== 一、 实验目的与意义 ==== | ||
- | - | ||
- 了解STM32的UART结构。 | - 了解STM32的UART结构。 | ||
- 了解STM32的UART特征。 | - 了解STM32的UART特征。 | ||
行 91: | 行 86: | ||
- 装有WIN XP(及更高版本)系统的计算机。 | - 装有WIN XP(及更高版本)系统的计算机。 | ||
==== 三、 实验原理 ==== | ==== 三、 实验原理 ==== | ||
- | === 1.串口通讯协议简介 === | + | === 串口通讯协议简介 === |
* 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 | * 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 | ||
* 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。 | * 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。 | ||
* 下面我们分别对串口通讯协议的物理层及协议层进行讲解。 | * 下面我们分别对串口通讯协议的物理层及协议层进行讲解。 | ||
- | **物理层:** | + | == 1、物理层: == |
+ | |||
* 串口通讯的物理层有很多标准及变种,我们主要讲解 RS-232 标准,RS-232 标准主要规定了信号的用途、通讯接口以及信号的电平标准。 | * 串口通讯的物理层有很多标准及变种,我们主要讲解 RS-232 标准,RS-232 标准主要规定了信号的用途、通讯接口以及信号的电平标准。 | ||
* 使用 RS-232 标准的串口设备间常见的通讯结构见下图。 | * 使用 RS-232 标准的串口设备间常见的通讯结构见下图。 | ||
行 137: | 行 134: | ||
{{ :icore4t:icore4t_arm_hal_53_9.jpg?direct |}} | {{ :icore4t:icore4t_arm_hal_53_9.jpg?direct |}} | ||
* 在目前的其它工业控制使用的串口通讯中,一般只使用 RXD、 TXD 以及 GND 三条信号线,直接传输数据信号,我们的iCore4T扩展底板也是采用3线连接的。3线连接中,DTE使用TXD和RXD两条数据线,无法实现硬件流控功能,在做大量数据传输应用时,建议使用5线或9线连接方式。 | * 在目前的其它工业控制使用的串口通讯中,一般只使用 RXD、 TXD 以及 GND 三条信号线,直接传输数据信号,我们的iCore4T扩展底板也是采用3线连接的。3线连接中,DTE使用TXD和RXD两条数据线,无法实现硬件流控功能,在做大量数据传输应用时,建议使用5线或9线连接方式。 | ||
- | **协议层:** | + | == 2、协议层: == |
* 串口通讯的数据包由发送设备通过自身的 TXD 接口传输到接收设备的 RXD 接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。串口数据包的基本组成如下图: | * 串口通讯的数据包由发送设备通过自身的 TXD 接口传输到接收设备的 RXD 接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位、主体数据、校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。串口数据包的基本组成如下图: | ||
{{ :icore4t:icore4t_arm_hal_53_10.png?direct |}} | {{ :icore4t:icore4t_arm_hal_53_10.png?direct |}} | ||
行 300: | 行 297: | ||
* 参数: | * 参数: | ||
* UART_HandleTypeDef *huart UATR的别名 | * UART_HandleTypeDef *huart UATR的别名 | ||
- | |||
* 串口中断处理函数 | * 串口中断处理函数 | ||
<code c> | <code c> | ||
行 307: | 行 303: | ||
</code> | </code> | ||
* 功能:对接收到的数据进行判断和处理 判断是发送中断还是接收中断,然后进行数据的发送和接收,在中断服务函数中使用 | * 功能:对接收到的数据进行判断和处理 判断是发送中断还是接收中断,然后进行数据的发送和接收,在中断服务函数中使用 | ||
- | |||
* 串口查询函数 | * 串口查询函数 | ||
<code c> | <code c> | ||
行 324: | 行 319: | ||
==== 六、 实验现象 ==== | ==== 六、 实验现象 ==== | ||
通过串口输入命令可以控制LED的亮灭。 | 通过串口输入命令可以控制LED的亮灭。 | ||
- | + | {{ :icore4t:icore4t_arm_hal_53_12.png?direct |}} | |