- 运行
raspi-config:
-
- 打开终端并输入: Bash
sudo raspi-config
- 启用串口:
-
- 在
raspi-config菜单中,导航到:
- 在
-
-
3 Interface Options(或类似名称,不同版本可能略有差异)P6 Serial Port
-
-
- 它会询问你是否要启用 Login shell over serial?选择
No。 - 接下来会询问你是否要启用 Serial port hardware?选择
Yes。 - 退出
raspi-config并重启树莓派: Bash
- 它会询问你是否要启用 Login shell over serial?选择
sudo reboot
- 验证串口设备:
-
- 重启后再次登录树莓派。
- 检查串口设备文件是否存在:
-
-
- 对于树莓派的板载 UART (GPIO 14, 15),通常是
/dev/ttyS0(在较新的树莓派上) 或/dev/ttyAMA0(在较旧的树莓派上)。 - 如果你使用的是 USB 转串口适配器,它通常会是
/dev/ttyUSB0、/dev/ttyUSB1等。
- 对于树莓派的板载 UART (GPIO 14, 15),通常是
-
-
- 你可以使用
ls /dev/tty*命令查看所有可用的串口设备。 - 重要: 如果
/dev/ttyS0被蓝牙占用,你可能需要禁用蓝牙的串口功能。在/boot/config.txt文件中添加dtoverlay=disable-bt并注释掉enable_uart=1这行(如果存在且是默认开启的)。然后重启。
- 你可以使用
步骤 2:CODESYS Runtime 配置
这一步是告诉 CODESYS Runtime 哪个 Linux 串口设备对应 CODESYS 内部的 COM 端口。
- 连接到树莓派:
-
- 再次通过 SSH 连接到你的树莓派。
- 编辑 CODESYS 配置文件:
-
- CODESYS Runtime 的配置文件通常是
/etc/CODESYSControl.cfg。在某些情况下,你可能需要编辑/etc/CODESYSControl_Users.cfg以避免在 CODESYS Runtime 更新时被覆盖。我们这里以/etc/CODESYSControl.cfg为例。 - 使用
sudo权限打开该文件进行编辑: Bash(注意这个路径不太对,需要ls自己查看一下,在下一级)
- CODESYS Runtime 的配置文件通常是
sudo nano /etc/CODESYSControl.cfg
- 添加或修改
[SysCom]段:
-
- 在文件中找到
[SysCom]部分。如果不存在,请在文件末尾添加。 - 在
[SysCom]部分下,添加或修改以下行,将你希望使用的 Linux 串口设备映射到 CODESYS 的 COM 端口。 - 示例 1:使用树莓派板载串口 (例如
/dev/ttyS0)Ini, TOML(这个:= 没错)
- 在文件中找到
[SysCom]
Linux.Devicefile.1=/dev/ttyS0
portnum := COM.SysCom.SYS_COMPORT1
-
- 示例 2:使用 USB 转串口适配器 (例如
/dev/ttyUSB0)Ini, TOML
- 示例 2:使用 USB 转串口适配器 (例如
[SysCom]
Linux.Devicefile.1=/dev/ttyUSB0
portnum := COM.SysCom.SYS_COMPORT1
-
- 解释:
-
-
Linux.Devicefile.1: 这是你希望映射的第一个 CODESYS COM 端口(SYS_COMPORT1)对应的 Linux 设备文件。你可以根据需要添加Linux.Devicefile.2对应SYS_COMPORT2,以此类推。portnum := COM.SysCom.SYS_COMPORT1: 这告诉 CODESYS 将这个设备文件内部命名为SYS_COMPORT1,你将在 CODESYS 项目中使用这个名称。
-
- 保存并退出:
-
- 如果使用
nano,按Ctrl+X,然后按Y确认保存,最后按Enter。
- 如果使用
- 重启 CODESYS Control Runtime:
-
- 更改配置文件后,必须重启 CODESYS Runtime 服务才能使更改生效: Bash
sudo /etc/init.d/codesyscontrol restart
-
- 你可以运行
sudo /etc/init.d/codesyscontrol status来检查服务是否正在运行。
- 你可以运行
步骤 3:CODESYS 程序编写(有偿并指导)
(此内容制作不易,需要的可以私信)
最后成果展示:


实现串口的数据互传

2100

被折叠的 条评论
为什么被折叠?



