您好,我使用的SDK是ti-processor-sdk-linux-am335x-evm-04.02.00.09-Linux-x86-Install.bin ,使用make all生成的系统镜像,然后按照Linux的文件读写的方式来操作ttyS1,但是有多个函数会返回错误值。串口操作程序和很多资料的比对过,没发现什么异常。
请问,AM3358的SDK使用uart1,在编译时需要什么配置吗?还是在程序里需要特殊设置? 能否给一份参考程序?非常感谢各位的解答!
下面是我的部分程序(到了tcgetattr();函数就返回错误值了,之后的函数也有返回错误值):
if((fd = open("/dev/ttyS1", O_RDWR | O_NOCTTY | O_NDELAY)) == -1)
{
printf("Open /dev/ttyS1 error.\n");
exit(1);
}
tcgetattr(fd, &options);
baoqing yan:
初次接触AM335x,想不出来是什么原因。
Denny%20Yang99373:
回复 baoqing yan:
排查一下看看DEVICE TREE里面有没有把UART1给定义了。可以对比UART0检查一下。
yongqing wang:
回复 Denny%20Yang99373:
装个MINCOM成熟的串口工具看看可不可以,看看这个端口是否可用
baoqing yan:
回复 yongqing wang:
刚刚试了一下,打印出 microcom: can't tcsetattr for /dev/ttyS1: Input/output error ,和我的程序结果相似。
我刚刚查看SDK中的am335x-boneblack.dts文件,感觉只定义了UART0的引脚,没有定义UART1的,是不是这个原因?
baoqing yan:
回复 Denny%20Yang99373:
请问是不是SDK中的am335x-boneblack.dts文件? 我查看了这个文件,好像只对UART0引脚定义了 ,其余的都没定义,该如何去修改此文件?
yongqing wang:
回复 baoqing yan:
没有配置,可以参考uart0的配置