win10系统rust串口通信实现

这篇具有很好参考价值的文章主要介绍了win10系统rust串口通信实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、用cargo创建新工程

命令:cargo new comport

win10系统rust串口通信实现,rust,串口,通信

use std::env;
use std::{thread, time};
use serialport::{DataBits, StopBits, Parity, FlowControl};
use std::io::{self, Read, Write};
use std::time::Duration;

fn main() -> io::Result<()> {

    let mut args: Vec<String> = env::args().collect();
    if args.len() < 1+3 {
        println!("{} ComPort Baudrate Command [DelayMS]",args[0]);
        std::process::exit(-1);
    }

    let mut duration: u64 = 100;//seconds
    if args.len() > 1+3 {
        duration = args[args.len()-1].parse::<u64>().unwrap();
    }

    let mut port = serialport::new(&args[1], args[1+1].parse::<u32>().unwrap())
    .data_bits(DataBits::Eight).stop_bits(StopBits::One).parity(Parity::None)
    .flow_control(FlowControl::None).timeout(Duration::from_secs(1)).open()?;

    let offset = 1+1+1;
    args[offset]=args[offset].replace("\\r", "\r");
    args[offset]=args[offset].replace("\\n", "\n"); 
    let data = &args[offset];
    port.write_all(data.as_bytes())?;

    thread::sleep(time::Duration::from_millis(duration));
    let mut buffer: Vec<u8> = vec![0; 80000000];
    let bytes_read = port.read(buffer.as_mut_slice())?;
    let received_data = String::from_utf8_lossy(&buffer[..bytes_read]);
    println!("Received: {}", received_data);

    Ok(())
        
}

二、进入到新建工程文件夹并编译

命令:cd ./comport && cargo build

win10系统rust串口通信实现,rust,串口,通信

三、运行上面编译的工程

命令输入格式:cargo run COM6 921600 "AT\n"

win10系统rust串口通信实现,rust,串口,通信文章来源地址https://www.toymoban.com/news/detail-672401.html

到了这里,关于win10系统rust串口通信实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 蓝桥杯模块学习10——串口通信(深夜学习——单片机)

    蓝桥杯模块学习10——串口通信(深夜学习——单片机)

    51单片机——串口通信详解(STC89C51为例)_佛科院深夜学习的博客-CSDN博客 (1)波特率与SMOD无关 (2)波特率等于溢出率除4 (1)T2R:控制定时器2是否允许使用,置“1”为允许 (2)T2_C/T:控制定时器2用作定时器还是计数器,置“0”为定时器(默认) (3)T2X12:控制定时器

    2023年04月08日
    浏览(18)
  • 在win10上,配置 Rust 开发环境(使用 mingw64编译器) 和 idea 配置 Rust 插件

    在win10上,配置 Rust 开发环境(使用 mingw64编译器) 和 idea 配置 Rust 插件

    2.1、编译器 mingw 与 visual studio 之间的选择 Rust 底层是依赖C/C++的 编译器,所以需要先安装C/C++编译环境。 Windows上C/C++ 的 编译器 有两种: 微软 的 Visual Studio (msvc) GNU 的 Mingw (gnu): 官网地址:https://www.mingw-w64.org/ Rust 默认使用的是 Visual Studio, 使用默认选项就能安装上,

    2024年02月02日
    浏览(10)
  • STM32入门笔记10_USART串口通信+案例:上位机控制LED亮灭(USART串口通信、TIM定时器、EXTI综合案例)

    STM32入门笔记10_USART串口通信+案例:上位机控制LED亮灭(USART串口通信、TIM定时器、EXTI综合案例)

    通信的目的: 将一个设备的数据传送到另一个设备, 扩展硬件系统 通信协议: 制定通信的规则, 通信双方按照协议规则进行数据收发 名称 引脚 双工 时钟 电平 设备 USART TX、RX 全双工 异步 单端 点对点 I2C SCL、SDA 半双工 同步 单端 多设备 SPI SCLK、MOSI、MISO、CS 全双工 同步 单端

    2024年02月09日
    浏览(13)
  • 单片机第一季:零基础10——串口通信和RS485

    单片机第一季:零基础10——串口通信和RS485

    目录 1,串口通讯基础 1.1,同步和异步 1.2,并行和串行  1.3,单工、半双工与全双工通信  1.4,通信速率  2,单片机串口通讯 2.1,接口标准  2.2,通讯协议  2.3,串口内部结构  3,串口相关寄存器  4,波特率计算  5,串口初始化  6,开发板硬件设计  7,串口发送和接收

    2024年02月04日
    浏览(14)
  • Win10配置Airsim环境并设置Python通信

    Win10配置Airsim环境并设置Python通信

    和朋友交流时,了解到微软开发了一个仿真环境叫Airsim,可以作为插件插入到虚幻引擎4中,进行汽车、无人机等实际环境的仿真。于是打算跟着知乎宁子安写的教程来配置一下环境。 官方文档:https://microsoft.github.io/AirSim/ 官方仓库:https://github.com/microsoft/AirSim 经过了无数的

    2023年04月12日
    浏览(10)
  • win10中ros与ubuntu中ros通信

    参考:Windows与Ubuntu间ROS主从机通信_ubuntu与windows通信_NINGCONG2021的博客-CSDN博客

    2024年02月09日
    浏览(12)
  • 【FPGA教程案例40】通信案例10——基于FPGA的简易OFDM系统verilog实现

    FPGA教程目录 MATLAB教程目录 --------------------------------------------------------------------------------------- 目录 1.软件版本 2.OFDM原理 3.OFDM系统的verilog实现

    2024年02月12日
    浏览(17)
  • 采用串口中断方式实现串口通信

    采用串口中断方式实现串口通信

    中断方式 中断方式是处理器和外部设备的数据传输方式。一方通过申请中断的方式与另一方进行数据传输,收发双方可以并行工作。 中断系统 中断装置和中断处理程序统称为中断系统。 中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数

    2024年02月16日
    浏览(13)
  • Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    Proteus平台下基于Arduino的通过UART串口可靠通信系统仿真、传感器数据采集、以及LCD屏幕二级菜单功能实现(附工程源码、设计报告)

    三个按键控制菜单,功能分别为:选择功能1,选择功能2,以及返回上一级; 通过三个外部中断对页面状态参量进行控制: 停止等待 当U1收到U2的ACK后才会发送下一次传感器采集到的数据 超时重传 当关闭U2后,U1到达设定的超时时间后,进行重传操作,直到收到U2的确认收到

    2024年02月16日
    浏览(13)
  • Labview串口通信VISA实现串口收发

    Labview串口通信VISA实现串口收发

    前面使用过调用 MSComm 控件的方式(Labview串口通信MSComm实现串口收发),即利用 Windows 提供的控件对象,在 LabVIEW 中对该控件的属性和方法进行操作,来实现串口通信。之所以使用 MSComm 控件,是因为比使用 VISA 来实现串口通信要灵活一些,比如可以通过回调的方式,在 PC 的

    2024年02月15日
    浏览(9)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包