树莓派4B通过CH340连接电脑实现USART串口通信(C语言以及Python版本) 您所在的位置:网站首页 树莓派接收串口数据 树莓派4B通过CH340连接电脑实现USART串口通信(C语言以及Python版本)

树莓派4B通过CH340连接电脑实现USART串口通信(C语言以及Python版本)

2024-07-03 03:20| 来源: 网络整理| 查看: 265

文章目录 前言一、启动串口二、禁用蓝牙(硬件串口与mini串口默认映射对换)三、查找是否有serial的包四、CH340分别连接树莓派与电脑五、python串口通信程序六、C语言通信程序总结

前言

树莓派3/4b的外设一共包含两个串口,一个称之为硬件串口(/dev/ttyAMA0),一个称之为mini串口(/dev/ttyS0)。硬件串口由硬件实现,有单独的波特率时钟源,性能高、可靠,mini串口性能低,功能也简单,并且没有波特率专用的时钟源而是由CPU内核时钟提供。在树莓派4代中,由于板载蓝牙模块,因此这个硬件串口被默认分配给与蓝牙模块通信了,而把那个mini串口默认分配给了排针引出的GPIO Tx Rx。

提示:以下是本篇文章正文内容,下面案例可供参考

一、启动串口

在命令行中输入以下内容:

ls -l /dev

在没有配置过正常情况下看到的应该是:

serial1 -> ttyAMA0

此时,在终端输入:

sudo nano /boot/config.txt

在打开的文件最后面添加:

#ENABLE UART enable_uart=1

保存退出后,重启树莓派;

reboot

在终端输入:

sudo raspi-config

根据以下步骤进行设置: 选择 Interfacing Options ->Serial ->no -> yes 关闭串口调试功能,打开串口 选择Interfacing Options 在这里插入图片描述 选择serial 在这里插入图片描述 再选择 no,禁用串口登录功能,将串口用于通信。 再选择 yes,启动串口硬件。

在命令行中输入以下内容:

ls -l /dev

在设置中启用串口后,会发现 /dev目录下变成了两个:

serial0 -> ttyS0 和 serial1 ->ttyAMA0

在这里插入图片描述

二、禁用蓝牙(硬件串口与mini串口默认映射对换)

在终端输入:

sudo nano /boot/config.txt

在打开的文件最后面添加: (注意:树莓派4b也一样是pi3,但不知具体原因是啥)

dtoverlay=pi3-disable-bt

修改保存后重启树莓派:

reboot 三、查找是否有serial的包

在终端输入:

pip list

查找是否有serial的包,若没有,则在终端输入:

pip install serial 四、CH340分别连接树莓派与电脑

在这里插入图片描述

CH340的USB口端连接电脑USB口CH340的5P插针分别与树莓派串口引脚相连VCC VCC、RXD TXD、TXD RXD、GND GND 在这里插入图片描述 五、python串口通信程序 # -*- coding: utf-8 -* import serial import time # 打开串口,配置波特率为9600,电脑端接收数据波特率也应相同 ser = serial.Serial("/dev/ttyAMA0", 9600) def main(): while True: # 获得接收缓冲区字符 count = ser.inWaiting() if count != 0: # 树莓派读取电脑端发送数据,并将此数据重新发送至电脑端 recv = ser.read(count) ser.write(recv) # 清空接收缓冲区 ser.flushInput() # 必要的软件延时 time.sleep(0.1) if __name__ == '__main__': try: main() except KeyboardInterrupt: if ser != None: ser.close() 六、C语言通信程序 //使用ch340实现树莓派和电脑端的通信,文件名“uartex.c” #include #include #include int main(void) { int fd,n; char a; if((fd = serialOpen("/dev/ttyAMA0",115200)) printf("Please input:\n"); //键盘输入想要发送的数据,并发送 scanf("%c",&a); if(a>0) { serialPutchar(fd,a); } //检测对端是否有数据发来,若有则打印出来 while(n=serialDataAvail(fd)>0)//检测兑端是否有数据 { printf("====返回的数据为===>%c\n",serialGetchar(fd));//若有返回数据,则打印输出 } } return 0; } 总结

通过CH340连接树莓派与电脑,在树莓派中运行Python或C语言程序,在电脑端打开串口助手即可验证是否通信成功。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有