飞凌ok6410的串口测试程序

 

调了好几天,问题很奇葩

不过最终还是解决了,先上代码吧

#include <stdio.h>/*标准输入输出定义*/
#include <stdlib.h>/*标准函数库定义*/
#include <unistd.h>/*UNIX标准函数定义*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>/*文件控制定义*/
#include <termios.h>/*PPSIX 终端控制定义*/
#include <errno.h>/*错误号定义*/
#include <string.h>

#define STTY_DEV "/dev/ttySAC2"
#define BUFF_SIZE 512

int main()
{
    int stty_fd, n;
    char buffer[BUFF_SIZE];
    struct termios opt;
    printf("---->> input test 1 !\n\n");

    /*打开串口设备*/
    stty_fd = open(STTY_DEV, O_RDWR|O_NOCTTY|O_NDELAY);
    if(stty_fd == -1)
    {
        perror("open device error");
        return 0;
    }

    fcntl(stty_fd, F_SETFL, 0);
    printf("---->> input test 2 !\n\n");    

    //printf("---->> input test 3 !\n\n");
    /*设置波特率 - 19200*/
    cfsetispeed(&opt, B19200);
    cfsetospeed(&opt, B19200);
    //printf("---->> input test 4 !\n\n");
    /*设置数据位 - 8位数据位*/
    opt.c_cflag &= ~CSIZE;
    opt.c_cflag |= CS8;
    opt.c_cflag |= CREAD;
    opt.c_cflag |= CLOCAL;
    /*设置奇偶位 - 无奇偶校验*/
    opt.c_cflag &= ~PARENB;
    opt.c_iflag &= ~INPCK;
    opt.c_iflag &= ~HUPCL;

    /*设置停止位 - 1位停止位*/
    opt.c_cflag &= ~CSTOPB;

    /*设置超时时间 */
    opt.c_cc[VTIME] = 0;
    opt.c_cc[VMIN] = 0;

    /*设置写入设备*/
    tcflush(stty_fd, TCIOFLUSH);
    if(0 != tcsetattr(stty_fd, TCSANOW, &opt))
    {
        perror("set baudrate");
        return 0;
    }

    memset(buffer, 0, BUFF_SIZE);
    n = write(stty_fd, "hello world",11);
    /*读取数据,直到接收到‘quit’字符串退出*/
    while(1)
    {
        n =  read(stty_fd, buffer, BUFF_SIZE);
        if(n < 0)
        {
            perror("read data");
            break;
        }
        if(n > 0)
        {
            buffer[n] = ‘\0‘;
            printf("%d\n", n);
            printf("%s\n", buffer);
            if(0 == strncmp(buffer, "quit", 4))
            {
                printf("User send quit!\n");
                break;
            }
        }
    }
    close(stty_fd);
}

问题出在大约第三十行的地方,本来写了一句 tcgetattr(stty_fd, &opt);这句是用来获取当前串口状态的参数付给要设置的参数的

加了这句飞凌的板子上的串口就不能用,可能是原来默认设置的问题吧,总之,我记下只是为了以后的参考

 

论坛帖子:   http://bbs.witech.com.cn/forum.php?mod=viewthread&tid=58085&page=1#pid197007 

 

我忘记了我弟弟18岁的生日…太过意不去了…

时间: 2024-10-10 14:27:18

飞凌ok6410的串口测试程序的相关文章

飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的.这么到我这里就不行了呢?妈蛋...郁闷了...智能自己动手,把驱动移植进去... 1  找8189es芯片的原厂驱动代码:这里我找了N久,传到网盘里... http://pan.baidu.com/s/1bn7Gz6n 2 解压拷贝 tar jxvf rtl8288EUS_rtl8189ES_lin

【转】飞凌嵌入式(Forlinx)TE/OK6410内核编译:“make: arm-none-linux-gnueabi-gcc:命令未找到”

原文网址:http://www.xuebuyuan.com/1104711.html Ubuntu10.04下编译飞凌嵌入式(Forlinx)TE/OK6410开发板提供的内核2.6.36 本以为按照用户手册的操作,不会有任何问题的,可能是因为内核是在Unbuntu10.10下测试通过的吧,在Ubuntu10.04下反而出了问题. 已经执行export PATH=/usr/local/arm/arm-none-linux-gnueabi/bin:$PATH,但还是出现如下问题 make: arm

飞凌嵌入式 S5P4418 核心板为自助加油系统“加油”

五一小长假即将到来,对于已经工作上班的人来说,这段时间休息一下,放松一下真的是非常让人开心的!往年五一假期为三天,很多人都选择在家呆着,不过今年我们迎来了令人振奋的消息,今年五一将放四天假! 幸福来得太突然, 不占用双休的劳动节简直清流. 为了 合理利用来自不易的"良心假", 很多人选择自驾方式出游.多数车主会提前排队加油,加油站将会出现排长队现象. 随着近几年信息技术的不断发展,智能化的概念逐渐***到各行各业以及我们的生活里,智能化.自助设备随处可见. 自助加油机,应运而生. 节省

飞凌百套OK335xS-2开发平台免费申请

AM335X是TI(德州仪器)推出的一款功能强大的ARM Cortex A8内核处理芯片.作为TI(德州仪器)的官方合作伙伴,飞凌嵌入式基于该芯片陆续开发生产了三款工业级开发平台:335xD,335xS和335xS-Ⅱ.而作为全系产品中最新推出的335xS-Ⅱ开发平台,一经问世,便因为其小巧的尺寸(104mm*81mm),国际认证的品质(通过CE.FCC双认证),最具竞争力的性价比(整套仅售298元),和强大的真工业级性能(-40℃~+85℃ 的运行温度及抗电磁干扰能力)而受到广大企业和工程师的

芯飞凌S9132/S9133/S9136 非隔离S513X升级版

芯飞凌S9132/S9133/S9136 非隔离S513X升级版 --  QQ  2892715427 方案名称:S9132/S9133/S9136 非隔离降压 LED 开关 方案品牌:芯飞凌-SDS(自主研发) 方案功能及特点: 1.高效的临界工作模式 2. 专利的零电流检测 3.专利潮湿漏电检测 4. 栅极驱动技术 5. ±3%的输出恒流精度 6. 内置 500V 功率管 7. 内置逐周期的电流限制及前沿消隐 8. 输出过压可调节 9.LED 开/短路保护 10. 无需任何环路补偿 11.芯

芯飞凌调色温驱动SCR092/S4120//S4225 双驱双色温

芯飞凌调色温驱动  Q Q 2892715427 SCR092/S4120//S4225 双驱双色温 S4225LD 系列开关调色温控制芯片 特点 内置400V 开关管,无需外挂开关管 S4225LD系列芯片是开关调色温的专用芯 外围原件简单,无需对AC 输入检测 片,该芯片内置了400V的开关管,简化了外围电 多个电源同时使用时无逻辑紊乱的问题 路结构.该系列芯片采用了芯飞凌的专利技术,能 内置限压电路,保证可以更宽的工作范围 够既可以最大限度地简化外围的原件个数,又可以 兼容隔离和非隔离的应

跟着飞凌嵌入式一起参观华清实战项目研发基地

为了深化校企合作,增进校企了解,飞凌嵌入式北京中心梁经理.产品研发部杨经理和市场部栾经理在研发中心老师带领下,参观了华清学员项目研发基地.参观期间,“星创客”精英班产品经理秦老师,对学员项目教学做了详细介绍,双方对嵌入式研发项目做了深入交流. 参观期间,北京中心梁经理询问了学生实习的很多细节.在梁经理和秦老师的一问一答中,企业对华清远见的项目实训及研发实力有了更深入的了解. 问:“学员项目教学时,这些项目都要参与研发吗?” 答:“项目教学期间,我们会跟根据学员的选择,参与其中一项或几项研发,采用

飞凌嵌入式丨我们是如何解决TVS管使用错误的

背景 一位客户在我司购买的某核心板,自己设计的底板.但在设计好底板后,发现不能通过USB更新程序,用SD卡可以正常程序烧写.出现此问题后,客户将底板快递至飞凌嵌入式申请技术服务,经过工程师反复测试后,发现确实存在此问题. 在寻找问题原因的过程中,发现是客户原理图中的TVS管使用错误导致问题出现.下图为客户设计原理图: 跟客户沟通GND_ETH连接的机壳,打静电过程中干扰信号可以通过TVS泄放到GND_ETH. TVS二极管反应速度快,钳位电压精确,结电容低,较大电容的保护器件可导致数据信号波形恶

飞凌嵌入式FET1052-C解决方案 扫描枪方案

扫描枪是继键盘和鼠标之后的第三代主要的电脑输入设备.直接从图片.照片.胶片到各类图纸图形以及文稿资料都可以用扫描枪输入到计算机中,进而实现对这些图像信息的处理.管理.使用.存储或输出. 随着条形码技术的发展,扫描枪目前以广泛的应用到电力行业.交通运输业.物流行业.邮电通讯业.鞋服行业.行政执法等行业. 扫描枪构成: 常见的扫描枪一般由光源.光学透镜.扫描模组.模拟数字转换电路加塑料外壳构成. 扫描枪原理: 扫描枪通过打出的光源来扫描条码,通过条码的黑白条空所反射的光的巨大差别来识别条码,当扫描一