RS485 实验
RS485
前言
本章我们将向大家介绍如何使用STM32N647的串口实现485通信(半双工)。在本章中,我们将使用STM32N647的串口3来实现两块开发板之间的485通信,并将结果显示在LCD模块上。
经过前面的学习我们知道实际的RS485仍是串行通讯的一种电平传输方式,那么我们实际通讯时可以使用串口进行实际数据的收发处理,使用485转换芯片将串口信号转换为485的电平信号进行传输,本章,我们只需要配置好串口3,就可以实现正常的485通信了,串口3的配置和串口1基本类似。
本章将实现这样的功能:通过连接两个STM32N647的RS485接口,然后由KEY0控制发送,当按下一个开发板的KEY0的时候,就发送5个数据给另外一个开发板,并在两个开发板上分别显示发送的值和接收到的值。
本实验对应的工程文件夹为:<STM32N647 开发板软件包路径>/Projects/25_RS485
。
实验准备
- 将 STM32N647 开发板软件包中提供的示例 FSBL 固件烧录到 STM32N647 开发板上。
本实验使用的 FSBL 为 STM32N647 开发板软件包中的示例 FSBL,请根据 示例 FSBL介绍 中的说明烧录对应 fsbl.hex
。
不同的的实验中,若使用相同的 FSBL,则无需重复烧录。
- 将工程文件夹下
Binary
目录下的appli.hex
依次烧录到 STM32N647 开发板上。
烧录顺序不影响烧录结果。
- 将 LCD 通过 FPC 延长线接入 STM32N647 开发板核心板的
RGBLCD
接口。
本实验例程仅支持 正点原子 RGB 触摸屏模块
。
-
将两块 STM32N647 开发板的 RS485 接口相连接。
-
将 STM32N647 开发板的 BOOT 模式配置为
Flash boot
模式
通过 STM32N647 开发板 P6
的跳线帽配置其 BOOT 模式:
Development boot
:B1 接 3V3
Flash boot
:B0、B1 都接 GND
- 将对应接口的电源线接入 STM32N647 开发板底板的 USB Type-C 接口或 DC 接口,为其进行供电,并将
K1
自锁开关切换到开启状态。
实验现象
在代码编译成功之后,我们通过下载代码到正点原子STM32N647开发板上(注意要2个开发板都下载这个代码哦),得到如下图所示:
伴随DS0的不停闪烁,提示程序在运行。此时,我们按下KEY0就可以在另外一个开发板上 面收到这个开发板发送的数据了,两个板子LCD显示内容如下图所示:
第一张图来自开发板A,发送了5个数据,第二张图来自开发板B,接收到了来自开发板A的5个数据。