树莓派利用串口进行通信(这个是用c写的树莓派的串口)

这个是用c写的树莓派的串口

摘自:https://blog.csdn.net/guet_gjl/article/details/85164072

树莓派利用串口进行通信

guet_gjl 2018-12-21 16:19:53 12069 收藏 18

版权

树莓派串口通信

我用的是树莓派3b+型号,网上各种各样的修改方式来使得树莓派的串口可以工作,过于混乱,还有的教程甚至会被树莓派系统搞崩溃,尤其是树莓派实验室那里的中文教程,是错误的,按照那个来就直接系统崩溃重装。因此我在这记录一下简单的串口配置和通信的过程。

第一步 配置

其实配置只需要三个步骤

一、把serial打开,这个在当前最新的系统里面,能够直接在Raspberry Pi Configuration里面找到,在Interfaces里面把Serial Port改成Enable,重启即可

二、修改配置文件

sudo gedit /boot/cmdline.txt
  • 1

删掉里面的 console=serial1,115200

三、还需要把serial口子换一下,因为serial0和serial1不一样,我们需要的默认被蓝牙占用了

通过 ls -l /dev 可以查看

sudo gedit /boot/config.txt
  • 1

在末尾加上一句话

dtoverlay=pi3-miniuart-bt
  • 1

这样,重启之后,两个串口类型就互换了,我们就可以利用这个串口进行通信了
如下:
在这里插入图片描述

第二步 写串口程序

这里,串口通信和测试的方式有很多中,可以通过python gcc等方式进行通信

python的方式比较简单,但是我考虑了一下,可能不太适用于我后面的工作,所以这里只把这个作为测试接口是否能用,具体参考这位博主的python方式
https://blog.csdn.net/weixin_41656968/article/details/80085836

下面还是来说说利用gcc g++的方式通信,这里用到一个好用的库 wiringPi

具体怎么安装就不再介绍,很简单。主要是看怎么用

这位博主对于这个写得很仔细,介绍得也很清晰
https://www.cnblogs.com/lulipro/p/5992172.html

这个代码可以用来测试接口是否开启等
创建一个新的.c文件,然后利用gcc来运行

#include <stdio.h>
#include <wiringPi.h>
#include <wiringSerial.h>
 
int main(){
	int fd;
	if(wiringPiSetup()<0)
		return 1;
	if((fd=serialOpen("/dev/ttyAMA0",9600))<0)
		return 1;
	printf("serial test start ...\n");
	serialPrintf(fd,"hello world!!\n");
	serialClose(fd);
	return 0;
}

编辑完之后利用gcc编译并运行,能够在终端输出一个hello world!

  gcc test.c -o test -lwiringPi
    ./test

一定要带上后面的库,不然编译会失败

猜你喜欢

转载自blog.csdn.net/sinat_16643223/article/details/108893959