之前一直是在普通的framework环境下写串口,使用的类为 SerialPort 这个类大家可能比较熟悉。但是在UWP的开发里,使用的是 SerialDevice 这个类,是不一样的。

1. 清单文件配置

首先,你需要建立UWP项目(Universal Windows),之后配置 Package.appxmanifest 文件。我们就叫它清单文件吧,如果你直接双击打开是以界面的方式编辑的,我们想要编辑的是 Capabilities 节点,因为我们要启用设备访问权限。但是微软的配置此节点的相关文章也指出了,在这个操作界面里有一些节点并不会列出,需要手动修改清单文件。

为了手动修改清单文件的xml节点,我们右击这个清单文件,选择“Open With...”,也就是所谓的打开方式,之后选择使用“XML Editor”打开,便可以以XML代码的方式编辑了。

  <Capabilities><Capability Name="internetClient" /><DeviceCapability Name="serialcommunication"><!--<Device Id="any">--><Device Id="vidpid:1A86 7523"><Function Type="name:serialPort"/></Device></DeviceCapability></Capabilities>

清单文件XML根节点为Package,当然如果你之前启用了其他权限,比如我这里有一个internetClient权限启用过。

配置串口访问功能,除了Device行,其他的都是固定写法。本行可以指定想访问的设备,设备的vid和pid标识可以在设备管理器中定位到设备并查看属性得到,一般会根据驱动提供商的公司和产品系列不同而不同。至于不指定标识直接写any我并没有试过,但是在网站上翻阅资料时,见到好几个地方是这么写的,如果你不确定设备到底有没有固定型号,或者插了多个不同型号的设备之后手动选择,这里指定any应该就能达到不筛选的效果。

2. 访问串口并收发数据

    public async Task StartAsync(){string filter = SerialDevice.GetDeviceSelector();var devices = await DeviceInformation.FindAllAsync(filter);foreach (var jd in devices){try{Debug.WriteLine("即将尝试握手串口:" + jd.Name);var client = await SerialDevice.FromIdAsync(jd.Id);client.BaudRate = 115200;// sendvar sendDatas = new byte[] { 0x83, 0xC1, 0x00, 0x00, 0x42 };var wBuffer = CryptographicBuffer.CreateFromByteArray(sendDatas);var sw = await client.OutputStream.WriteAsync(wBuffer);// readvar rBuffer = await client.InputStream.ReadAsync(new Windows.Storage.Streams.Buffer(11), 11, InputStreamOptions.None);string rString = CryptographicBuffer.EncodeToHexString(rBuffer);Debug.WriteLine("received:" + rString);}catch (Exception ex){Debug.Fail(ex.Message, ex.ToString());}}}

上面的连接串口收发功能,是最简单的。

转载于:https://www.cnblogs.com/3Tai/p/10059758.html

自己在UWP程序上调用usb转串口的路程相关推荐

  1. android usb单反相机,在Android应用程序上使用USB Camera

    只有当USB相机中的传感器符合UVC标准(今天的大多数相机都符合)时,讨论才成立. 默认情况下,没有Android API可用于外部摄像头.所以如果你对这个项目很认真,那么你所做的工作就是编写一个与内 ...

  2. USB转串口驱动分析(一)

    之前追踪代码用的grep命令效率太低了,所以这次下载C代码阅读跳转利器ctags.cscope用于分析代码 因为用的是Centos6.7所以需要用到yum install安装软件 [wuyujun@w ...

  3. 【问题解决】ESP32开发板上的CP210xUSB转串口坏了怎么办

    微信关注公众号 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天居然遇到了主板上的USB转串口芯片坏了的情况!这运气真是.. 还好问题解决了 ...

  4. USB转串口数据线Vista驱动

    现在的大多数笔记本都已经不再自带串口,并且预装的是微软最新的Vista操作系统. 但是在日常的开发工作中有可能会碰到在没有串口的笔记本上通过USB转串口数据线进行串口编程.通过Vista系统自带的解决 ...

  5. linux内核 usb转串口,求助:usb转serial串口设备在linux内核中创建及生成tty设备的改写...

    当把一个usb转serial串口设备插到linux系统上时,系统自动识别设备后会把设备和/dev目录下设备节点相关联,但是默认的关联是从ttyUSB0开始,依次ttyUSB1,ttyUSB2..... ...

  6. 乐鑫Esp32学习之旅 19 重磅开源,如何在微信小程序上ble蓝牙配网esp32,blufi的那些事!

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  7. MATLAB调用USB摄像机采集图像代码段

    利用在MATLAB上调用USB摄像机,用于实时输出图像 话不多说上代码 %%%Command Window窗口下(注释) >> info=imaqhwinfo info = Install ...

  8. 常用USB转串口工具, win10上使用的解决方案

    原文:https://blog.csdn.net/weixin_39502839/article/details/81268856 串口在嵌入式通信解决方案中使用广泛,那么当我们需要使用PC机对通信数 ...

  9. 串口,USB,USB转串口,串口驱动,仿真器下载程序

    串口,USB,USB转串口,串口驱动,仿真器下载程序 在初学stm32,接触到的第一步便是下载程序, 方法一:利用仿真器下载程序 方法二:利用串口下载程序 本文简单介绍两种下载方法,浅入窥探下载原理, ...

最新文章

  1. Java_JDBC_MySql
  2. mysql scrapy 重复数据_mysql数据库如何处理重复数据?
  3. 【asp.net Core MVC + angular6实战】 - 1. 环境搭建
  4. Socket一次Recv接受的字节有限制么?
  5. MFC之添加PNG,JPG图片
  6. python如何用requests传送json格式数据
  7. 前端工程师薪资差距可达7.3倍!4月程序员薪资统计出炉,速看!
  8. 桌面上计算机快捷方式打不开,桌面快捷方式打不开解决步骤
  9. SAT考试填空习题(一)及答案
  10. 引入ant组件分页时显示英文问题
  11. 基于OpenCV实现简单人脸面具、眼镜、胡须、鼻子特效(详细步骤 + 源码)
  12. 腾讯笔试编程题,贪吃的小Q(二分查找)
  13. 什么是服务熔断,什么是服务降级?
  14. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
  15. OSChina 周三乱弹 —— 我就是太阳拳的传承者,光之魔法师
  16. SpringBoot 微信点餐开源系统,值得一看
  17. 淘宝API学习之道:淘宝TOP之API接口接入教程
  18. MM32F3273G8P火龙果开发板MindSDK开发教程12 -获取msa311加速器的敲击事件
  19. jquery日历插件 途牛_11个实用jQuery日历插件
  20. java编写测试类test,已获万赞

热门文章

  1. ping github超时问题
  2. 【Qt】Qt中信号与槽
  3. datatable 导入mysql 解决_将DataTable中的数据导入到数据库中
  4. 循环结构作业c语言,C语言循环结构练习题带答案(最新整理)
  5. java文件编译_【java】javac编译多个有依赖关系的java文件为class文件
  6. python计算相关矩阵_Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2...
  7. 计算机二级学习考试题,全国计算机等级考试一级Window复习题及答案
  8. C中的危险函数(缓冲区溢出)
  9. 单词拆分—leetcode139
  10. obfuscator-llvm Theos 集成配置