精华内容
下载资源
问答
  • linux判断 串口是否通讯 UART DEBUG

    千次阅读 2012-05-13 22:50:07
    通常uart连接其他设备例如BT,首先要调通该uart,最简单方法如下: uart 调试方法 adb shell cat /dev/ttyHS0&(ls -s /dev/ttyHS*)(ttyHS0代表所要调试的串口) 使用手触摸rx即可有字符输出 或者 echo ...

    1:使用示波器看TX:

    将TX连接到示波器

    echo djqewdhheudfueufu > /dev/ttyHS0

    如有波形输出则TX通;


    2:Dump RX char buff :

    cat /dev/ttyHS0&(ls -s /dev/ttyHS*)(ttyHS0代表所要调试的串口)  //DUMP ALL RX DATA 到控制台

    或者 再起一个adb shell cat /dev/ttyHS0

    将TX与RX短接

    echo djqewdhheudfueufu > /dev/ttyHS0

    控制台持续输出字符

    这说明TX和RX都是ok的。


     

    展开全文
  • 通常uart连接其他设备例如BT,首先要调通该uart,最简单方法如下: uart 调试方法 adb shell cat /dev/ttyHS0&(ls -s /dev/ttyHS*)(ttyHS0代表所要调试的串口) 使用手触摸rx即可有字符输出
    http://blog.csdn.net/eqwewr/article/details/7563211
    

    在调试BT中发现以下方法:

     

    通常uart连接其他设备例如BT,首先要调通该uart,最简单方法如下:

    uart 调试方法
    adb shell
    cat /dev/ttyHS0&(ls -s /dev/ttyHS*)(ttyHS0代表所要调试的串口)
    使用手触摸rx即可有字符输出

    或者

    echo djqewdhheudfueufu > /dev/ttyHS0

    再将rx与tx短接,即有字符输出,则说明串口通讯正常。

     

    android kernel实时打印log方法

    1:最简单的cat /proc/kmsg.

    2:adb shell
    cat /dev/ttyHS0&

    再将rx于tx短接,可以看见串口输出的log实时打印。


    展开全文
  • 再从串扣回传给7445,已知我当前的串口设备文件是tty1,怎么编写C程序读取改开发板上cc2530传来的温度数据,和通过串口给cc2530发送命令! ![图片说明]...
  • linux下的设备

    2008-10-31 19:01:00
    分为字符设备(键盘,鼠标,显示器串口字节流的方式) 和块设备(硬盘,flash) 判断是否能随机访问!独占设备(字符设备) 共享设备 虚拟设备设备控制器,i/o通道(作用类似于相当于DMA)三线分离 数据寄存器 ...

    分为字符设备(键盘,鼠标,显示器串口字节流的方式) 和块设备(硬盘,flash) 判断是否能随机访问!独占设备(字符设备) 共享设备 虚拟设备!

    设备控制器,i/o通道(作用类似于相当于DMA)

    三线分离 数据寄存器 控制/状态寄存器

    存储器-- 通道-- 控制器-- i/o设备

    设备驱动(访问一般是寄存器) 上层是内核 下层是硬件

    程序i/o方式 查询方式  向io控制器发读命令 读io状态没就绪再读循环 检查状态(查错),就绪后从io读出数据 传给cpu或者给寄存器(看有没有传完 否的话再循环)

     

    又是SMB服务今天总算 熬到了 终端上做了

    找不到 eth0的话可以打 dhclient eth0 很常用!

    dns 域名解析服务器 主机名与ip名的转换

    ping 是基于tcp/ip协议组组里面的icmp协议的

    ping IP 看连接是否成功

     

    展开全文
  • 大致思路:定时器不断获取在线串口信息QSerialPortInfo和网卡在线信息QNetworkInterface,前后信息对比,从而判断add or remove 实现:QSerialPortInfo + QNetworkInterface + QTimer 功能:网卡监听、串口监听 ...

    一、简介

    一些与硬件设备相关的软件需要监听设备的热插拔、断开、连接情况,本文介绍了QT中定时器实现方式。

    大致思路:定时器不断获取在线串口信息QSerialPortInfo和网卡在线信息QNetworkInterface,前后信息对比,从而判断add or remove

    •  实现:QSerialPortInfo  + QNetworkInterface  + QTimer
    •  功能:网卡监听、串口监听
    •  优点:监听网卡、串口都能及时响应
    •  缺点:消耗资源

    QSerialPortInfo介绍:https://doc.qt.io/qt-5/qserialportinfo.html

    QNetworkInterface介绍:https://doc.qt.io/qt-5/qnetworkinterface.html

    netlink的实现方式见我另一篇博客(推荐):https://blog.csdn.net/qq_40602000/article/details/109553334

    二、效果

    启动软件,显示当前已经存在的设备

    当有设备插入、拔出或者连接、断开时弹窗提示

    插入串口设备

    断开网络

     

    三、实现

    linuxdevicemonitor.h

    #ifndef LINUXDEVICEMONITOR_H
    #define LINUXDEVICEMONITOR_H
    
    #include <QObject>
    #include <QTimer>
    #include <QSerialPortInfo>
    #include <QNetworkInterface>
    #include <QDebug>
    #include <QMap>
    
    class LinuxDeviceMonitor : public QObject
    {
        Q_OBJECT
    
      public:
        LinuxDeviceMonitor(QObject *parent = 0);
        ~LinuxDeviceMonitor();
        QList<QString> getSerialPortNames();
        QList<QString> getNetworkNames();
        QMap<QString, QList<QString>> getAllDevice();
        void start();
        void update();
      signals:
        void deviceChanged(QString);
      private:
        QTimer *timer;
        QList<QString> _serialPortNames;
        QList<QString> _networkNames;
    };
    
    #endif // LINUXDEVICEMONITOR_H

     

    linuxdevicemonitor.cpp

    #include "linuxdevicemonitor.h"
    
    LinuxDeviceMonitor::LinuxDeviceMonitor(QObject *parent)
            : QObject(parent)
    {
        _serialPortNames = getSerialPortNames();
        _networkNames = getNetworkNames();
        qDebug() << "初始化设备";
        qDebug() <<"串口:"<< _serialPortNames;
        qDebug() <<"网卡:"<< _networkNames;
        timer = new QTimer(this);
        connect(timer, &QTimer::timeout, this, &LinuxDeviceMonitor::update);
    }
    
    LinuxDeviceMonitor::~LinuxDeviceMonitor(){timer->stop();}
    
    QList<QString> LinuxDeviceMonitor::getSerialPortNames()
    {
        QList<QString> serialPortNames;
        foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts()) {
            serialPortNames.append(info.portName());
        }
        return serialPortNames;
    }
    
    QList<QString> LinuxDeviceMonitor::getNetworkNames()
    {
        QList<QString> networkNames;
        QList<QNetworkInterface> list = QNetworkInterface::allInterfaces();
        foreach (QNetworkInterface interfaceItem, list) {
            if (!interfaceItem.isValid())
                continue;
            QList<QNetworkAddressEntry> addressEntryList = interfaceItem.addressEntries();
            foreach(QNetworkAddressEntry addressEntryItem, addressEntryList)
            {
                if(addressEntryItem.ip().protocol()==QAbstractSocket::IPv4Protocol&&
                        addressEntryItem.ip().toString().left(3)=="192")
                {
                    networkNames.append(interfaceItem.name());
                }
            }
        }
        return networkNames;
    }
    
    QMap<QString, QList<QString>> LinuxDeviceMonitor::getAllDevice()
    {
        QMap<QString, QList<QString>> allDevice;
        allDevice.insert("network", _networkNames);
        allDevice.insert("serialPort",_serialPortNames);
        return allDevice;
    }
    
    void LinuxDeviceMonitor::start()
    {
        timer->start(2000);
    }
    
    void LinuxDeviceMonitor::update()
    {
        QList<QString> serialPortNames = getSerialPortNames();
        QList<QString> networkNames = getNetworkNames();
        if(_serialPortNames != serialPortNames)
        {
            if (serialPortNames.length() > _serialPortNames.length())
            {
                _serialPortNames = serialPortNames;
                emit deviceChanged("串口插入");
            }
    
            if (serialPortNames.length() < _serialPortNames.length())
            {
                _serialPortNames = serialPortNames;
                emit deviceChanged("串口拔出");
            }
        }
        if(_networkNames != networkNames)
        {
            if(networkNames.length()  > _networkNames.length())
            {
                _networkNames = networkNames;
                emit deviceChanged("网卡连接");
            }
            if(networkNames.length()  < _networkNames.length())
            {
                _networkNames = networkNames;
                emit deviceChanged("网卡断开");
            }
        }
    }
    
    

    使用:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QMessageBox>
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        device = new LinuxDeviceMonitor(this);
        connect(device, &LinuxDeviceMonitor::deviceChanged, this, &MainWindow::deviceChanged);
        device->start();
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::deviceChanged(QString msg)
    {
        qDebug() << device->getAllDevice();
        QMessageBox::information(this, tr("设备"),"Linux设备变动:" + msg);
    }

     

     

     

    展开全文
  • S3C2410 串口驱动uart_ops结构体的tx_empty()成员函数s3c24xx_serial_tx_empty()用于判断发送缓冲区是否为空,其实现 如代码清单14.30,当使能FIFO模式的时候,判断UFSTATn寄存器,否则判断UTRSTATn寄存器的相应位...
  • statserial(status ofserial port)可显示各个接脚的状态,常用来判断串口是否正常。 语法statserial [-dnx][串口设备名称] 参数说明: -d 以10进制数字来表示串口的状态。 -n 仅显示一次串口的状态后即结束程序。 -x...
  • 语 法:statserial [-dnx][串口设备名称] 补充说明:statserial可显示各个接脚的状态,常用来判断串口是否正常。 参 数: -d 以10进制数字来表示串口的状态。 -n 仅显示一次串口的状态后即结束程序。 -x ...
  • linux 驱动学习之poll与select

    千次阅读 2012-12-03 18:04:42
    在使用socket或串口的时候应用代码经常使用select来判断有没接收到数据,驱动需要做什么处理,应用层用户才能正确判断有数据收到并读取数据呢?使用select能够监视我们需要监视的文件描述符的变化情况——读写或是...
  • 打印机调试

    2020-08-14 15:35:39
    1: 权限申请 2: 获取所有USB设备http://www.linux-usb.org/usb.ids所有厂家...3:判断 哪一个usb 是打印机设备 4:从所有打印机列表中过滤出 打印机usb , 然后发起打印机连接,最后通过串口打印文本或者二维码 ...
  • 基于stm32 lwip + Telnet 调试打印

    千次阅读 2019-08-04 15:54:18
    玩stm32陆陆续续也有1年半了,从51到linux驱动到stm32发现了不少好玩的东西,应了大家的要求开通了博客,记录一些在stm32上。 做产品的同学可能已经发现,产品正式出厂后是很少允许拆壳的,但是产品结构上也不会...
  • usb_bootloader.zip

    2020-04-29 21:45:33
    但用户体验完全不同,拿串口升级来说,首先用户需要一个串口软件,然后对于没有硬件串口的PC来说,就需要一个USB转串口设备,对于不同PC平台,串口软件就不一样,这需要学习成本,过程繁琐;所以在一些需要用户自行...
  • 另外,通过在喂食盆附近的放置该设备,还可以通过对图片的统计算出宠物被感应到的次数,就可以绘制出一个曲线,判断萌宠饥饿的程度,然后提供的数据可以总结后设置一个自动喂食机构,在达到阈值就投放食物,真是宠物...
  • 支持两种数据源,一种是串口和网络通过协议采集设备数据,一种是数据库采集。数据库采集模式可以作为通用的系统使用。 自带设备模拟工具,支持16个设备数据模拟,同时还带数据库数据模拟,以便在没有设备的时候测试...
  • 4、交叉编译器 arm-softfloat-linux-gnu-gcc-3.4.5 【实验步骤】 一、建立自己的平台类型 (1)解压文件 #tar jxvf u-boot-1.3.1.tar.bz2 (2)进入 U-Boot源码目录 #cd u-boot-1.3.1 (3)创建自己的开发板...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) IOCP 完成端口编程技术 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    系统硬件信息、存储设备管理、鼠标及键盘、声音和视频、图形和图像、网络、数据库) 《远程控制编程技术》源代码 内含(重启、图片操作、ip操作、键盘与鼠标、客户端以及服务端、文件传输等实例源码) 多个VC++...
  • 使用设备:以开放root权限的机顶盒,可以进入fastboot,采用串口方式进行调试, 进入fastboot 通过不停按Ctrl+C还是可以进入fastboot界面,通过显示的可以判断是中断了内存读取强制进入的。 Bootrom start Boot from...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

linux判断串口设备

linux 订阅