树莓派串口/RS485通信
树莓派原生串口默认用于控制台输出,如果想在自己程序里使用需要先关闭系统占用此串口。
方法为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通信相关推荐
- 树莓派有can通信吗_树莓派 RS485 CAN HAT模块使用
产品概述 RS485 CAN HAT 是微雪电子为树莓派开发的一款的带 RS485 和 CAN 通信功能的扩展板,具备 RS485.CAN 通信功能. 特点 基于Raspberry Pi 40pin ...
- python树莓派串口通信实例_树莓派通过串口发送数据
可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...
- 嵌入式--串口、RS232、RS485通信
一.串口通信 1.UART指的是通用异步收发器,是一种通用的串行.异步通信总线该总线有两条数据线,一条接收一条发送,可以实现全双工的发送和接收,在嵌入式开发过程中比较常用.异步通信没有使用同一个时钟, ...
- 4.0 树莓派做下位机播放视频、控制电机舵机、超声波检测、paj7620手势传感器控制,树莓派串口通信等程序分析
文章目录 一.前言 二.Python实现封装打包自己写的代码 参考链接 我的参考 _init_.py setup.py 三. 树莓派的硬件解码播放器--Omxplayer 四.树莓派控制舵机,驱动L2 ...
- 51单片机串口2的RS485通信调试总结
过完年,一到公司主管就催我赶紧把这个项目的PC和单片机的RS485通信给调通.这几天,一直在实验室度过的.开始我从单片机简单发送一串数据,用串口调试助手测试.上位机根本没有接收到数据,用示波器测了发送 ...
- 树莓派串口与外部设备通信
"学习或者了解人工智能小伙伴福利来了,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家." 想了解或者学习人工智能可以看一下,我觉得学习起来挺有趣的 ...
- 树莓派利用串口进行通信
树莓派串口通信 我用的是树莓派3b+型号,网上各种各样的修改方式来使得树莓派的串口可以工作,过于混乱,还有的教程甚至会被树莓派系统搞崩溃,尤其是树莓派实验室那里的中文教程,是错误的,按照那个来就直接系 ...
- 树莓派4B ubuntu20.04 UART 多串口配置通信
相比树莓派0.1.2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置 ...
- 树莓派串口通信 USB串口通信 常用串口命令
树莓派串口通信 USB串口通信 文章目录 树莓派串口通信 USB串口通信 准备 发送数据 接收数据 如果不知道树莓派怎么使用USB串口通信的,欢迎浏览我的另一篇博客文章: 树莓派使用USB串口通信 C ...
- 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信
点击上方"蓝字"关注我们 今天为大家带来的是PLC与西门子触摸屏的RS485通信,RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485.R ...
最新文章
- python装饰器+迭代器+生成器
- win7 64安装oracle10g 客户端,关于win7 64位 只 安装 oracle 10g的client
- 一.js高级(4)-函数调用-this指向-其他参数
- 浅谈Iframe和FRAME的区别
- Spark is not running in local mode, therefore the checkpoint directory must not be on the local……
- 使用Spring的NamedParameterJdbcTemplate完成DAO操作
- Android WebView 问题总集
- 敏捷开发与测试(面试话题之一)
- Python 中的 - 是什么意思
- python web异步_如何使用python中的理解来批处理异步web请求?
- java反射 泛型类型_【译】9. Java反射——泛型
- PDF 文档解除密码
- Ubuntu下QT的安装配置
- 搜狐公司副总裁 方刚 先生谈《胜于言传——网站内容制胜宝典》
- 链表的中间结点--快慢指针思想
- mac pro M1(ARM)安装:ubuntu桌面版虚拟机(五)
- 乘积最大python
- Ant入门教程之常用命令
- 专业计算机术语中英文对照(一)
- 2014年湛江新教育交流会总结
热门文章
- 新能源车提车、上牌流程
- MYSQL 索引 主键 外键
- 主从表mysql外键_主从表主键外键
- 高频头极化角调整+用什么本振的高频头
- JavaScript导出excel文件,并修改文件样式
- 稳压二极管型号及国内外类似型号对照变
- 计算机软件需求说明编制指南gb/t 9385-2008,GBT 9385-2008 计算机软件需求说明编制指南.pdf...
- 软件用户手册编写指南(GB8567一88/GB8567一2006)
- 未能成功加载扩展程序_在手机浏览器上安装Chrome扩展的方法,你们都用上了吗?...
- 【渝粤题库】广东开放大学 招投标与合同管理 形成性考核