ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【树莓派】树莓派TXD、RXD的配置与使用可实现与STM32的通信

2021-07-05 14:02:31  阅读:754  来源: 互联网

标签:树莓 sudo TXD RXD dev 硬件 串口 serial


目录

前期准备:关闭蓝牙

1.树莓派串口配置

2.禁用串口的控制台功能

 3.测试(连接电脑进行测试)

参考文献


这里使用的是树莓派4B 

配置这个功能可以让我们的树莓派与其他设备例如stm32进行数据的交互和通信,实现两者之间的互相控制功能,这个还是非常实用的!

使用以下步骤即可:

树莓派包含两个串口

1.硬件串口(/dev/ttyAMA0),硬件串口由硬件实现,有单独的波特率时钟源,性能高,可靠。一般优先选择这个使用。

2.mini串口(/dev/ttyS0),mini串口时钟源是由CPU内核时钟提供,波特率受到内核时钟的影响,不稳定。

想要通过树莓派的GPIO引脚进行稳定的串口通信,需要修改串口的映射关系。

serial0是GPIO引脚对应的串口,serial1是蓝牙对应的串口,可以使用 ls -l /dev/serial*  查看当前的映射关系
————————————————
版权声明:本文为CSDN博主「galaxyzwj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz531987464/article/details/83188189

前期准备:关闭蓝牙

在终端输入:

sudo systemctl disable hciuart 

禁用蓝牙设备即可,若以后想开启可以将disable改成enable

1.树莓派串口配置

输入以下指令后按照下面步骤进行配置

sudo raspi-config

Interfacing Options -> P6 Serial;

第一个选项(would you like a login shell to be accessible  over serial?)选择NO;

第二个选项(would you like the serial port hardware to be enabled?)选择 YES。

输入以下指令可以查看树莓派的串口映射关系

ls -l /dev/serial*

serial0(GPIO串口)默认使用的是ttyS0(mini串口);

serial1(蓝牙)使用的是ttyAMA0(硬件串口)

如果想使用稳定可靠的硬件串口,就要将树莓派的硬件串口与mini串口默认映射对换。而这个需求官方也考虑到了,在系统中放了一个实现这个功能的文件---stretch版本系统中的文件为/boot/overlays/pi3-miniuart-bt.dtbo。

sudo nano /boot/config.txt

使用该文件发挥功能只需在/boot/config.txt文件末尾添加一行代码,在文件最后面添加一行:dtoverlay=pi3-miniuart-bt

输入完成后,ctrl+o进行写入,不修改文件名称,直接回车即可完成写入,最后ctrl+x退出该文件。可以再次输入之前指令进入文件检查是否正确修改。 

修改完成后 sudo reboot 重启树莓派后使用 ls -l /dev/serial* 查看映射如下:

如上图所示:serial0(GPIO串口)使用的是ttyAMA0(硬件串口);而serial1(蓝牙)使用的是ttys0(mini串口)
————————————————
版权声明:本文为CSDN博主「galaxyzwj」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zz531987464/article/details/83188189

2.禁用串口的控制台功能

前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派io口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。

首先执行命令如下:

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service

然后执行命令行:

sudo nano /boot/cmdline.txt

删除语句 console=serial0,115200  (没有的话就不需要此步骤)

保存之后其内容如下:

接下来再次重启树莓派即可。

最终的/boot/config.txt文件内容如下:

 3.测试(连接电脑进行测试)

1.硬件连接,将UART的TXD与树莓派的RXD连接,UART的RXD与树莓派的TXD连接,UART的GND与树莓派GND连接即可。

2.电脑端用xcom这款软件进行串口调试。(注意电脑和树莓派的波特率都配置为:9600

3.运行如下python程序来测试是否成功连接((网上很多方法都是用minicom进行测试,但是我的树莓派由于网络原因无法获取minicom的软件,所以就写了一个简单的python程序来测试是否成功实现串口功能。电脑端发送字符串,树莓派再返回电脑端发出的字符串,由此验证了字符串的收发)。

import numpy
import serial
import time


def main():
    #length=mygpio.ama0_write('the serial is open successfully!\r\n')
    #print(length)
    com = serial.Serial('/dev/serial0', 9600, timeout=10)
    while True:
        time.sleep(2)
        stri = com.readline().strip()
        data = (stri.decode('utf-8'))#utf-8->unicode
        if len(data)>0:
            com.write(data.encode('ascii'))
        
    
if __name__=='__main__':
    main()

4.运行程序并检验

在下方输入“the serial is ok”点击发送,上方返回同样的字符串,说明发送与接受都成功啦!

参考文献

[1] 树莓派3B+ 串口使用大全(实现串口通信功能)_Stay Hungry Stay Foolish-CSDN博客

标签:树莓,sudo,TXD,RXD,dev,硬件,串口,serial
来源: https://blog.csdn.net/weixin_44599681/article/details/118462638

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有