1. 程式人生 > >樹莓派的除錯串列埠作為普通串列埠使用

樹莓派的除錯串列埠作為普通串列埠使用

修改cmdline.txt

將所有ttyAMA0相關配置刪除

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

刪除後是這樣

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

如果/etc/inittab 裡面有內容

註釋#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

最後重啟,除錯串列埠就是預設串列埠,就可以用下面的程式收發資料

原始碼:

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

unsigned char UartBuff[256] = { 0 };

int main(void)
{
	int fd;
	if ((fd = serialOpen("/dev/ttyAMA0", 115200)) < 0)
	{
		printf("serial err\n");
	}
	else
	{
		printf("start serial\n");
	}
	

	while (1)
	{
		UartBuff[0] = (unsigned char)serialGetchar(fd);
		printf("rev:%c\n", UartBuff[0]);
		if (UartBuff[0] == 'a')
		{
			printf("is a:%c\n", (char)UartBuff[0]);
			serialPutchar(fd, (char)UartBuff[0]);
		}
		else
		{
			printf("not a:%c\n", (char)UartBuff[0]);
		}
		sleep(0.5);
	}
	return 0;
}