串口通信实战编程

本文介绍了如何配置树莓派进行串口通信,包括修改cmdline.txt文件以禁用串口控制台,然后使用C语言编程实现串口数据收发。程序中包含了wiringSerial库,通过serialOpen打开串口,serialDataAvail检查数据可用性,serialGetchar读取数据。代码展示了如何实现串口的持续监听和数据打印。
摘要由CSDN通过智能技术生成

树莓派和电脑之间的串口通信

初次使用树莓派串口编程,需要配置:
/* 修改 cmdline.txt文件 */ 树莓派启动的时候会去执行这个文件里的命令。

cd /boot/
sudo vim cmdline.txt

删除【】之间的部分

dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

sudo reboot //重启

使用时需要包含头文件:#include <wiringSerial.h>

#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <wiringSerial.h>

int main()
{
	int fd; //Linux 的思想是:将一切 IO设备,都看做文件,fd就是代表串口抽象出来的文件
	int cmd;//用来存放接收到的字节数据
	wiringPiSetup();//端口初始化
	fd = serialOpen("/dev/ttyAMA0",9600);//打开并初始化串口,波特率9600
	if(fd == -1){
		printf("打开串口失败\n");
		exit(-1);
	}
	while(1){
		while(serialDataAvail(fd) != -1){//获取串口缓存中可用的字节数。没有则返回-1
			cmd = serialGetchar(fd);//从串口读取一个字节数据返回。如果串口缓存中没有可用的数据,则会等待10秒,如果10后还有没,返回-1。所以,在读取前,做好通过serialDataAvail判断下。
			printf("get data:cmd = %d\n",cmd);
		}
		//serialPutchar(fd,'a');//发送一个字节
		//serialPuts(fd,"Hello world\r\n");//发送一个字符串  \r\n意思是回车加换行
		//delayMicroseconds(1000000);//一百万微秒=一秒
	}
	
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值