本帖最后由 ypw 于 2015-12-29 14:17 编辑
今天我们目的是实现串口回环测试,意思就是自己给自己发,然后自己接收到自己发送的内容。
首先呢,根据pinMap我们可以知道,8脚是UART3_TXD,10脚是UART3_RXD,所以我们需要将NanoPi2的8脚和10脚用杜邦线接起来。
然后呢,我们连接NanoPi2,写一个程序循环读取串口数据,并打印到屏幕上。
- #include
- #include
- #include
- #include
- int main()
- {
- int fd = -1;
- fd = open("/dev/ttyAMA2", O_RDWR | O_NOCTTY | O_NDELAY);
- if (fd == -1)
- {
- perror("Open Serial Port Error!n");
- return -1;
- }
- struct termios options;
- tcgetattr(fd, &options);
- //115200, 8N1
- options.c_cflag = B115200 | CS8 | CLOCAL | CREAD;
- options.c_iflag = IGNPAR;
- options.c_oflag = 0;
- options.c_lflag = 0;
- options.c_cc[VTIME]=0;
- options.c_cc[VMIN]=1;
- tcflush(fd, TCIFLUSH);
- tcsetattr(fd, TCSANOW, &options);
- unsigned char rx_buffer[256];
- while(1){
- int rx_length = read(fd, (void*)rx_buffer, 255);
- if (rx_length > 0)
- {
- //Bytes received
- rx_buffer[rx_length] = '\0';
- printf("%i bytes read : %sn", rx_length, rx_buffer);
- }
- }
- close(fd);
- return 0;
- }
复制代码
编译
- nano read.c
- gcc read.c -o read
- ./read
复制代码
然后我们向串口写入数据:
- echo hello > /dev/ttyAMA2
- echo test > /dev/ttyAMA2
- echo hahaha > /dev/ttyAMA2
复制代码
|