樹莓派的除錯串列埠作為普通串列埠使用
阿新 • • 發佈:2019-01-29
修改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; }