串口

开发板调试串口

你。 提交于 2019-12-06 02:48:30
1.查看串口设备 ls /dev/tty*   其中ttyAMA1是我们要调试我串口。 2.使用ttyAMA1   通过stty -F /dev/ttyAMA1 -a查看串口属性      可以查看波特率是9600 从ttyAMA1中读取数据: cat /dev/ttyAMA1 //读取串口中的数据 cat /dev/ttyAMA1 > file.txt //读取到的数据保存到txt文本文件中 向ttyAMA1中写数据: echo "1" > /dev/ttyAMA1 3.串口配置 待补 4.从内核配置串口 问题描述:一开始通过ls查看到有ttyAMA1这个设备节点。但是直接使用的时候不能使用。然后使用stty查看属性。提示:没有这个设备或者地址。 问题分析:有可能是串口驱动里面直接映射了这个设备节点,也就是创建了这个设备节点。但是并没有配置硬件。 问题修改: 1.使能uart1 vi arch/arm/boot/dts/hi3521d.dtsi   可以查看到这个设备。直接将status中修改成okay。就可以了(不过不建议直接在这边修改) 直接修改 vi arch/arm/boot/dts/hi3521d.dts 本来只有一个uart0,这个是我们的调试串口。 然后模仿写一个uart1。 2.引脚复用 查看海思的引脚复用手册可以看到 通过himm修改引脚复用。这样串口就配置成功

sp3485在rk3288上的应用

落爺英雄遲暮 提交于 2019-12-05 20:31:02
2019-11-27 关键字:485串口通信 SP3485 是一款半双工的遵循RS485与RS422通信协议的传输芯片。 SP3485的芯片封装如下图所示: 其中 1 脚、4 脚分别接 rk3288 的 RX 脚与 TX 脚。 第 2 脚、第 3 脚为收发控制位,通常这两个脚都是接同一个电平信号的,因为通过芯片封装图可知这两个脚是互为取反设计的。当给这两个脚高电平时芯片处于“发送”模式,当给它们低电平时则处于“接收”模式。这款芯片的收发控制既可以通过软件来控制电平高低以切换收发模式,也可以直接通过硬件电路来自动切换收发模式。二者的区别在于对收发模式切换延时的要求不同。使用软件控制模式切换存在一定的延时,极限大约在 100us 左右,这个延时时长其实已经能应对大多数场景下的通信了,但还是有极少数高速通信场景接受不了这个延时时长。这种情况下就得考虑硬件电路自动切换收发模式了。如何通过硬件自动切换收发模式呢?网上有一篇文章: http://www.elecfans.com/dianlutu/app/20180117617635_2.html 本篇文章记述的是通过软件来切换收发模式的方式。 上图第 6 脚、第 7 脚是差分信号输出引脚。因为 485 通信必须要有两条差分信号线才能进行通信,而这款芯片又仅有一组输出引脚,因此这在硬件上就限制了这款芯片只能是半双工通信模式的芯片。

关于树莓派3B+串口pi3-miniuart-bt-overlay 与 pi3-miniuart-bt的区别

放肆的年华 提交于 2019-12-05 11:37:44
前阵子使用树莓派3B+,连接PMS5003,需使用到串口。 在网上查阅了大量资料之后,发现串口依旧不稳定。 尝试了各种方法之后,发现这些资料,要么是使用了pi3-miniuart-bt-overlay,要么是 使用了pi3-miniuart-bt。 也就是在/boot/config.txt这个文件里面修改"dtoverlay="。具体如何使用,网上很多资料都有讲,这里不再赘述。直接说区别。 刚开始我先使用了pi3-miniuart-bt-overlay的方法,这个时候会发现在 /dev里面,ttyS0和ttyAMA两个串口的软连接都被删掉了, 最后串口不稳定。 最后,我尝试改用了pi3-miniuart-bt的方法,这个时候会发现在/dev里面,ttyS0与ttyAMA0的两个软连接掉换。此时,串口稳定。 先前使用pi3-miniuart-bt-overlay的小伙伴如果要改用成pi3-miniuart-bt,记得注释掉enable_uart=1。 不然的话,树莓派无法重启,需要使用读卡器,修改该文件哦。 来源: https://www.cnblogs.com/wuquaaa/p/11922801.html

arduino红外解码程序

做~自己de王妃 提交于 2019-12-05 09:00:00
1 #include <IRremote.h>//红外的库,项目->加载库->管理库->直接搜所库名 2 3 IRrecv irrecv(2);//将引脚2定义为接受红外信号引脚 4 decode_results results;//存放解码器的值 5 6 void setup() { 7 pinMode(2,INPUT);//定义引脚2为输入 8 Serial.begin(9600);//定义串口波特率为9600 9 irrecv.enableIRIn();//初始化,启用红外接收 10 } 11 void loop() { 12 if(irrecv.decode(&results))//判断接受并解码是否成功 13 { 14 //串口打印接受到的值,并以16进制形式输出 15 Serial.println(results.value,HEX); 16 irrecv.resume();//重置红外接受 17 } 18 delay(500);//延时,消除按键抖动所导致的乱码情况 19 } 来源: https://www.cnblogs.com/liuming-nimi/p/11917724.html

将LINUX的控制台定向到串口终端

早过忘川 提交于 2019-12-05 02:34:06
将LINUX的控制台定向到串口终端(转载) 利用串口终端作为Linux控制台,可以免去额外的键盘,显示卡和显示器,同时可将Linux主机作为一个任意用途的嵌入式黑匣。将串口终端连接到 计算机 的串口上并不困难,可以参考Linux的HOWTO文档和以及inittab和agetty的帮助信息。这里扼要地说一下。   首先,准备好一根null modem 电缆.   其次,在 文件 /etc/inittab 增加下面一行。[注:如果你不采用 agetty 程序 ,采用其他的程序如like getty_ps ,应用正确的 命令 语法]    ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM   这里: ID =两字母的标识符,如s1或s2。   RUNLEVELS = 终端激活的运行级别   SPEED = 串口端口速率   TTY = 串口的设备名   TERM = TERM 环境 变量   范例如下:   s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100   表示串口 /dev/ttyS1 (COM2 )速率为 9600 bps,终端模式为vt100。   最后,重新启动机器。   如正确地按照上述三步进行,则就可以在终端屏幕上出现Login: 的提示符。你可以登录进 系统

串口服务器出现数据乱码怎么回事?

无人久伴 提交于 2019-12-05 00:16:04
所有的 串口服务器 及串口转以太网模块相关的产品用户都有可能遇到这个问题。 乱码的原因通常有两个: 1、串口服务器的波特率、数据位、校验位不匹配,即我们的网络转串口设备与您的串口设备波特率不匹配,设置成一致即可。 2、硬件原因,注意串口服务器和串口转以太网模块中的TTL、RS232、RS485这几种电平形式是不同的,不能直接连接,需要用232芯片或者485芯片转发,客户最常犯的一个错误是将TTL电平直接接到计算机上,肯定会乱码,计算机是RS232电平。另外硬件设计不当,有干扰也可能会导致通讯不正常。仔细检查硬件即可。 如果无法确认问题在哪,可以使用自收发的形式排除。 1、您的串口联网设备直接和电脑通讯,按照你理解的波特率相关设置,看是否正常,以确认你的串口联网设备设置是否有问题。 2、断开您的设备与 串口服务器 之间的连接,再将我们的串口服务器ttl串口的RXD和TXD短接,通过网络发送网络接收,看数据是否正常,以确认我们的串口服务器工作正常。 3、断开您的设备与串口服务器之间的连接,再将您的设备的串口收发短接,通过电脑自收自发,看数据是否正常,以确认您的电脑到串口这部分硬件工作正常。 相信通过这几个步骤,能解决您绝大多数问题,如果依然不能解决,请到客户支持中心提交问题,截图给我们的同事,帮您查找问题,或者帮您远程协助。 其他技术问题咨询客服: http://shop.usr.cn

raspberry pi init

 ̄綄美尐妖づ 提交于 2019-12-04 21:13:45
1:wifi 2:sudo apt-get update 3:sudo apt-get install fcitx fcitx-googlepinyin fcitx-module-cloudpinyin fcitx-sunpinyin 5:sudo raspi-config进行中文设置 ->Localisation Options ->Tab键切换到Select,回车,然后选择change_locale ->Configuring locales窗口中,找到zh_CN.UTF-8 UTF-8,通过空格选中,确认后再次选择zh_CN.UTF-8,然后重启机器,完成Raspbian中文环境配置 6:sudo apt-get install qt5-default pyqt5-dev pyqt5-dev-tools 7:https://wiki.openlp.org/Development:Linux_Development_Environment 8:https://packages.debian.org/sid/arm64/python3-pyqt5.qtwebengine/download dpkg -i xx.deb wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz mkdir -p /usr/local

C\\C++串口通信编程的一点技术记录

最后都变了- 提交于 2019-12-04 20:01:18
新工作接的第一个活,要写一个配合设备调试的上位机程序。 除了MFC界面的部分,就是要处理几条命令。 串口通信部分代码借鉴的是这一篇文章:http://blog.sina.com.cn/s/blog_afb1793101016mq2.html https://blog.csdn.net/qq_41480046/article/details/82220155 里面代码很好理解,对于串口的连接设置,有那么几个固定的函数,之后串口的打开和读写,就是用CreateFileA、ReadFile、WriteFile这样的几个函数,将串口当做文件来操作 另外就是用了临界区来实现同步操作, 比较精妙的是串口的读线程,在循环里首先判断串口缓冲区里是否有内容,如果有再去真正读串口 我这里记录在这篇文章代码之外,自己实践之后新获得的一些心得: 1,DCB的EVEN方式的初始化写法 DCB是一个结构体,在调用SetCommState函数时作为参数传入,这是串口初始化的通用写法,不赘述 关键是初始化时的一些设置 如果设备端用了校验位,上位机这边没有用,那么设备可以连接,但收发信息是出错的 所以,初始化时候要设置校验位的使用 校验方式有以下几种: 无校验 (no parity) 奇校验 (odd parity):如果字符数据位中"1"的数目是偶数,校验位为"1",如果"1"的数目是奇数,校验位应为"0"。