目前我正在尝试读取串口。在 Linux 中工作正常。但在 Windows 机器中面临错误。
我按照此链接从此处为 Windows 机器(JAR + DLL 文件)读取串行端口和下载的 RXTX 库。
操作系统:Windows 10 64 位
Java jre:Jre 1.8.0_261 版本。
通过输入流读取时抛出异常。
错误日志:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000180005b00, pid=4508, tid=0x0000000000002b90
#
# JRE version: Java(TM) SE Runtime Environment (8.0_261-b12) (build 1.8.0_261-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.261-b12 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# C …
Run Code Online (Sandbox Code Playgroud) 在 Linux 中,我可以通过调用 C 来从 USB 设备写入和读取数据fopen('/dev/ttyUSB0', 'rw')
具体来说,Windows 中的目录“/dev/ttyUSB0”相当于什么,我想在 Windows 中为 COM3 执行相同的操作。
我正在寻找一种用 JavaScript 编写并在普通浏览器中运行的 CRC-16 CRC 算法。我知道有大量以各种编程语言实现 CRC-16 的代码示例。但我仍然无法解决我的问题。以下示例显示了 NodeJ 的 CRC-16 校验和检查。
https://github.com/donvercety/node-crc16/blob/master/crc16.js
为了让 NodeJS 代码在普通浏览器中运行,我对其进行了如下修改。
const crctab16 = new Uint16Array([
0X0000, 0X1189, 0X2312, 0X329B, 0X4624, 0X57AD, 0X6536, 0X74BF,
0X8C48, 0X9DC1, 0XAF5A, 0XBED3, 0XCA6C, 0XDBE5, 0XE97E, 0XF8F7,
0X1081, 0X0108, 0X3393, 0X221A, 0X56A5, 0X472C, 0X75B7, 0X643E,
0X9CC9, 0X8D40, 0XBFDB, 0XAE52, 0XDAED, 0XCB64, 0XF9FF, 0XE876,
0X2102, 0X308B, 0X0210, 0X1399, 0X6726, 0X76AF, 0X4434, 0X55BD,
0XAD4A, 0XBCC3, 0X8E58, 0X9FD1, 0XEB6E, 0XFAE7, 0XC87C, 0XD9F5,
0X3183, 0X200A, 0X1291, 0X0318, 0X77A7, 0X662E, 0X54B5, 0X453C,
0XBDCB, 0XAC42, 0X9ED9, …
Run Code Online (Sandbox Code Playgroud)