首先我用板子是imx6dl的,然后运行的系统是linux,我这里要调试出一个串口,波特率在256000,遇到问题是在对应的应用程序头文件里面并没有定义这个波特率,现在也不知道该怎么添加?现在调试的波特率只能到115200,在它里面的有的230400都不能调试成功,不知道是哪里问题?求大神指导!!!
这个是我用的设置波特率的函数:
#include
int speed_arr[] = {B460800,B256000, B115200, B57600, B38400, B19200, B9600, B4800, B2400, B1200};
int name_arr[] = {460800,256000,115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200};
void set_speed(int fd, int speed)
{
int i;
int status;
struct termios Opt;
tcgetattr(fd, &Opt);
for ( i= 0; i < sizeof(speed_arr) / sizeof(int); i++)
{
if (speed == name_arr[i])
{
tcflush(fd, TCIOFLUSH);
cfsetispeed(&Opt, speed_arr[i]);
cfsetospeed(&Opt, speed_arr[i]);
// cfsetispeed(&Opt,0x0010003);
// cfsetospeed(&Opt, 0x0010003);
status = tcsetattr(fd, TCSANOW, &Opt);
if (status != 0)
perror("tcsetattr fd1");
return;
}
tcflush(fd,TCIOFLUSH);
}
}
这个可以调试出115200以及以下的波特率,但是不知道什么原因以上波特率不能调试出,求大神指点一下,谢谢!!!