查看: 2676|回复: 2

[求助] uart 非标准 波特率 imx6dl

[复制链接]

该用户从未签到

2

主题

7

帖子

0

新手上路

Rank: 1

积分
46
最后登录
2016-12-6
发表于 2016-5-26 22:44:06 | 显示全部楼层 |阅读模式

首先我用板子是imx6dl的,然后运行的系统是linux,我这里要调试出一个串口,波特率在256000,遇到问题是在对应的应用程序头文件里面并没有定义这个波特率,现在也不知道该怎么添加?现在调试的波特率只能到115200,在它里面的有的230400都不能调试成功,不知道是哪里问题?求大神指导!!!

这个是我用的设置波特率的函数:

#include     <termios.h>


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)
    {
        tcflush(fd, TCIOFLUSH);
      cfsetispeed(&Opt, speed_arr);
      cfsetospeed(&Opt, speed_arr);
//     cfsetispeed(&Opt,0x0010003);
//     cfsetospeed(&Opt, 0x0010003);
   status = tcsetattr(fd, TCSANOW, &Opt);
   if (status != 0)
perror("tcsetattr fd1");
   return;
      }
tcflush(fd,TCIOFLUSH);
    }
}

这个可以调试出115200以及以下的波特率,但是不知道什么原因以上波特率不能调试出,求大神指点一下,谢谢!

我知道答案 目前已有2人回答
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-5-27 08:52:15 | 显示全部楼层
    帮顶
    签到 签到
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    46
    最后登录
    2016-12-6
     楼主| 发表于 2016-5-27 10:08:19 | 显示全部楼层

    谢谢O(∩_∩)O谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 04:24 , Processed in 0.084367 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表