树莓派原生串口默认用于控制台输出,如果想在自己程序里使用需要先关闭系统占用此串口。

方法为rasp-config 里配置,或直接修改/boot/cmdline.txt

#dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwai

dwc_otg.lpm_enable=0 console=tty1  root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwai

修改后就会多出一个串口设备文件/dev/ttyAMA0, 可以用命令stty -F /dev/ttyAMA0   9600设置串口参数等

可以安装命令行下调试软件minicom进行串口设置及数据收发

sudo apt-get install minicom

如果装了桌面系统就更多图形化调试工具了如cutecom

系统自带的串口是TTL电平,如果要和RS485设备通信,需要接一块485转换芯片,现成的可以直接插在板子上用的见链接

https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-951511554.15.23a61349h5N5xG&id=563656341277

可以买空板自己买元件焊接或买焊好现成的。板子上的芯片为ADM2587 ,芯片级电源和信号都隔离的485芯片,成本不低,但对于电机等干扰大及走室外的对安全要求高的建议用隔离的。以免系统不稳定或烧坏主板

也可以直接用USB转485小模块,适合于调试等不是24小时用的场合。USB经常不稳定,同时模块也没有做信号隔离

https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-951511554.15.23a61349h5N5xG&id=563656341277

接上去不用装驱动,自动会多出一个串口设备文件 /dev/ttyUSB0

用法和编程与前文一样

由于最两款模块都自带收发控制自动切换,如果不用改程序控制一个DI/RI引脚,当然如果波特率很高,最好还是手动控制。GPIO的控制可以使用wringpi 库,同时串口程序也可以使用wringpi 这个库来写

各种语言的串口通信:

C语言,使用wringpi库,调用 LINUX api的网上大量代码就不介绍了

#include <wiringSerial.h>

int main(void)

{

int fd;

if((fd = serialOpen ("/dev/ttyAMA0",9600))<0)

{

printf("serial err\n");

}

while(1)

{

UartBuff[0]=serialGetchar(fd);

if(UartBuff[0]=='a')

{

serialPutchar(fd,UartBuff[0]);

}

sleep(0.5);

}

return EXIT_SUCCESS;

}

PYTHON 安装pyserial 模块

http://www.cnblogs.com/starspace/archive/2009/02/20/1394603.html

>>> ser = serial.Serial('/dev/ttyS1', 19200, timeout=1)
>>> x = ser.read()          # read one byte
>>> s = ser.read(10)        # read up to ten bytes (timeout)
>>> line = ser.readline()   # read a '\n' terminated line
>>> ser.close()

shell:

echo "123" > /dev/ttyAMA0

cat /dev/ttyAMA0

PHP: 安装扩展

https://github.com/oasynnoum/phpmake_serialport

<?php

use PHPMake\SerialPort;

// $device = 'COM4'; // on Windows

$device = '/dev/ttyUSB0'; // on Linux

/*

* create new instance

*/

$port = new SerialPort();

try {

/*

* open the port

*/

$port->open($device);

/*

* configure baud rate

*

* you can specify baud rate as integer,

* or other class constants like SerialPort::BAUD_RATE_*

*/

$port->setBaudRate(SerialPort::BAUD_RATE_9600);

/*

* configure flow control

*

* any other options are below.

* SerialPort::FLOW_CONTROL_SOFT is software flow control.

* SerialPort::FLOW_CONTROL_HARD is hardware flow control.

*/

$port->setFlowControl(SerialPort::FLOW_CONTROL_NONE);

/*

* configure canonical mode

*

* canonical mode is for text-based communication.

* non-canonical mode is binary-safe.

* more detail information about VMIN and VTIME,

* see http://www.unixwiz.net/techtips/termios-vmin-vtime.html

*/

$port->setCanonical(false)

->setVTime(1)->setVMin(0);

/*

* read data from port.

* you can get size of actual read data with strlen($data) .

*/

$data = $port->read(256);

/*

* send data.

*/

$port->write($data);

} catch (Exception $e) {

print $e->getMessage() . PHP_EOL;

}

if ($port->isOpen()) $port->close();

树莓派串口/RS485通信相关推荐

  1. 树莓派有can通信吗_树莓派 RS485 CAN HAT模块使用

    产品概述 RS485 CAN HAT 是微雪电子为树莓派开发的一款的带 RS485 和 CAN 通信功能的扩展板,具备 RS485.CAN 通信功能. 特点 基于Raspberry Pi 40pin ...

  2. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  3. 嵌入式--串口、RS232、RS485通信

    一.串口通信 1.UART指的是通用异步收发器,是一种通用的串行.异步通信总线该总线有两条数据线,一条接收一条发送,可以实现全双工的发送和接收,在嵌入式开发过程中比较常用.异步通信没有使用同一个时钟, ...

  4. 4.0 树莓派做下位机播放视频、控制电机舵机、超声波检测、paj7620手势传感器控制,树莓派串口通信等程序分析

    文章目录 一.前言 二.Python实现封装打包自己写的代码 参考链接 我的参考 _init_.py setup.py 三. 树莓派的硬件解码播放器--Omxplayer 四.树莓派控制舵机,驱动L2 ...

  5. 51单片机串口2的RS485通信调试总结

    过完年,一到公司主管就催我赶紧把这个项目的PC和单片机的RS485通信给调通.这几天,一直在实验室度过的.开始我从单片机简单发送一串数据,用串口调试助手测试.上位机根本没有接收到数据,用示波器测了发送 ...

  6. 树莓派串口与外部设备通信

    "学习或者了解人工智能小伙伴福利来了,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家." 想了解或者学习人工智能可以看一下,我觉得学习起来挺有趣的 ...

  7. 树莓派利用串口进行通信

    树莓派串口通信 我用的是树莓派3b+型号,网上各种各样的修改方式来使得树莓派的串口可以工作,过于混乱,还有的教程甚至会被树莓派系统搞崩溃,尤其是树莓派实验室那里的中文教程,是错误的,按照那个来就直接系 ...

  8. 树莓派4B ubuntu20.04 UART 多串口配置通信

    相比树莓派0.1.2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置 ...

  9. 树莓派串口通信 USB串口通信 常用串口命令

    树莓派串口通信 USB串口通信 文章目录 树莓派串口通信 USB串口通信 准备 发送数据 接收数据 如果不知道树莓派怎么使用USB串口通信的,欢迎浏览我的另一篇博客文章: 树莓派使用USB串口通信 C ...

  10. 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信

    点击上方"蓝字"关注我们 今天为大家带来的是PLC与西门子触摸屏的RS485通信,RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485.R ...

最新文章

  1. python装饰器+迭代器+生成器
  2. win7 64安装oracle10g 客户端,关于win7 64位 只 安装 oracle 10g的client
  3. 一.js高级(4)-函数调用-this指向-其他参数
  4. 浅谈Iframe和FRAME的区别
  5. Spark is not running in local mode, therefore the checkpoint directory must not be on the local……
  6. 使用Spring的NamedParameterJdbcTemplate完成DAO操作
  7. Android WebView 问题总集
  8. 敏捷开发与测试(面试话题之一)
  9. Python 中的 - 是什么意思
  10. python web异步_如何使用python中的理解来批处理异步web请求?
  11. java反射 泛型类型_【译】9. Java反射——泛型
  12. PDF 文档解除密码
  13. Ubuntu下QT的安装配置
  14. 搜狐公司副总裁 方刚 先生谈《胜于言传——网站内容制胜宝典》
  15. 链表的中间结点--快慢指针思想
  16. mac pro M1(ARM)安装:ubuntu桌面版虚拟机(五)
  17. 乘积最大python
  18. Ant入门教程之常用命令
  19. 专业计算机术语中英文对照(一)
  20. 2014年湛江新教育交流会总结

热门文章

  1. 新能源车提车、上牌流程
  2. MYSQL 索引 主键 外键
  3. 主从表mysql外键_主从表主键外键
  4. 高频头极化角调整+用什么本振的高频头
  5. JavaScript导出excel文件,并修改文件样式
  6. 稳压二极管型号及国内外类似型号对照变
  7. 计算机软件需求说明编制指南gb/t 9385-2008,GBT 9385-2008 计算机软件需求说明编制指南.pdf...
  8. 软件用户手册编写指南(GB8567一88/GB8567一2006)
  9. 未能成功加载扩展程序_在手机浏览器上安装Chrome扩展的方法,你们都用上了吗?...
  10. 【渝粤题库】广东开放大学 招投标与合同管理 形成性考核