树莓派wiringPi库,串口通信

树莓派wiringPi库,串口通信

(一)串口通信 使用时需要包含头文件:
#include <wiringSerial.h>
在这里插入图片描述
(二)修改配置

/* 修改 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


/*修改 inittab文件 */
>cd /etc/
>sudo vim inittab

注释掉最后一行内容:,在前面加上 # 号
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100


sudo reboot 重启

(三)代码案例

#include <stdio.h>
#include <wiringPi.h>
#include <unistd.h>
#include <wiringSerial.h>
#include <string.h>

int main()
{
    
    
	if(wiringPiSetup() == -1){
    
    
		printf("init pin failed\n");
		return 0;
	}

	int fd;
	char buf;

	fd = serialOpen("/dev/ttyAMA0",9600);
	if(fd == -1){
    
    
		printf("open serial failed\n");
		return 0;
	}

	while(1){
    
    
		if(serialDataAvail(fd) != -1){
    
    
			buf = serialGetchar(fd);
			//memset(buf,'\0',128);
			//read(fd,buf,128);
			printf("data = %c\n",buf);
		}
		//serialPrintf(fd,"no message to send\r\n");

		if(nuf == '1'){
    
    
			serialPuts(fd,"one\r\n");
		}
		else if(buf == '2'){
    
    
			serialPuts(fd,"two\r\n");
		}
		else{
    
    
			serialPuts(fd,"cmd not found\r\n");
		}
	}

	serialClose(fd);
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_51478436/article/details/113747132