1、在原理图中找到串口的接口:
从原理图中得知TX、RX为UART4。
原软件评估手册中找到uart_test的示例。
执行uart_test /dev/ttySC4 -b 115200 -r -asc -l
然后从串口助手发送数据,可以打印出来:
【编写自己的测试代码】
- #include <stdio.h>
- #include <fcntl.h>
- #include <unistd.h>
- #include <stdint.h>
- #include <termios.h>
- #include <string.h>
-
- /* 115200, 8, N, 1 */
- int uart_setup(int fd)
- {
- struct termios options;
-
- // 获取原有串口配置
- if (tcgetattr(fd, &options) < 0) {
- return -1;
- }
-
- // 修改控制模式,保证程序不会占用串口
- options.c_cflag |= CLOCAL;
-
- // 修改控制模式,能够从串口读取数据
- options.c_cflag |= CREAD;
-
- // 不使用流控制
- options.c_cflag &= ~CRTSCTS;
-
- // 设置数据位
- options.c_cflag &= ~CSIZE;
- options.c_cflag |= CS8;
-
- // 设置奇偶校验位
- options.c_cflag &= ~PARENB;
- options.c_iflag &= ~INPCK;
-
- // 设置停止位
- options.c_cflag &= ~CSTOPB;
-
- // 设置最少字符和等待时间
- options.c_cc[VMIN] = 1; // 读数据的最小字节数
- options.c_cc[VTIME] = 0; //等待第1个数据,单位是10s
-
- // 修改输出模式,原始数据输出
- options.c_oflag &= ~OPOST;
- options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
-
- // 设置波特率
- cfsetispeed(&options, B115200);
- cfsetospeed(&options, B115200);
-
- // 清空终端未完成的数据
- tcflush(fd, TCIFLUSH);
-
- // 设置新属性
- if(tcsetattr(fd, TCSANOW, &options) < 0) {
- return -1;
- }
-
- return 0;
- }
-
- int main(int argc, char *argv[])
- {
- int fd;
- int ret;
- char ch;
-
- if (argc != 2) {
- printf("usage: ./test_uart [device]\n");
- return -1;
- }
-
- /* 打开串口 */
- fd = open(argv[1], O_RDWR | O_NOCTTY | O_NDELAY);
- if (fd < 0) {
- printf("open dev fail!\n");
- return -1;
- } else {
- fcntl(fd, F_SETFL, 0);
- }
-
- /* 设置串口 */
- ret = uart_setup(fd);
- if (ret < 0) {
- printf("uart setup fail!\n");
- close(fd);
- return -1;
- }
-
- /* 串口回传实验 */
- while (1) {
- scanf("%c", &ch);
- ret = write(fd, &ch, 1);
- printf("write [%c] , ret is %d!\r\n", ch, ret);
-
- ret = read(fd, &ch, 1);
- if (ret < 1) {
- printf("read fail, ret is %d\r\n", ret);
- } else {
- printf("recv a char:[0x%02x][%c]\r\n", ch, ch);
- }
- }
-
- close(fd);
- }
编译好后上传给开发板,执行后,可以由串口终端转发给UART4
下面就可以插上开发板实现对NFC的操作了。