- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这个问题已经被问过很多次了,我看了所有的答案,还是没能弄清楚问题所在。
我已经建立了与 COM1 端口的连接使用 WriteFile 将数据写入 COM1 端口现在我正在尝试使用 ReadFile 从端口读取数据,但它没有读取任何内容。我有硬件环回 RS232 的第二个和第三个,这样输入就可以作为输出读取
#include <windows.h>
#include <stdio.h>
# include <tchar.h>
int main(int argc, char *argv[])
{
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
char *pcCommPort = "COM3";
hCom = CreateFile( _T("COM3"), //pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0, // must be opened with exclusive-access
0, // no security attributes
OPEN_EXISTING, // must use OPEN_EXISTING
FILE_ATTRIBUTE_NORMAL, // not overlapped I/O
NULL // hTemplate must be NULL for comm devices
);
if (hCom == INVALID_HANDLE_VALUE)
{
// Handle the error.
printf ("CreateFile failed with error %d.\n", GetLastError());
}
// Build on the current configuration, and skip setting the size
// of the input and output buffers with SetupComm.
fSuccess = GetCommState(hCom, &dcb);
if (!fSuccess)
{
// Handle the error.
printf ("GetCommState failed with error %d.\n", GetLastError());
}
dcb.BaudRate = 9600; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit
fSuccess = SetCommState(hCom, &dcb);
if (!fSuccess)
{
// Handle the error.
printf ("SetCommState failed with error %d.\n", GetLastError());
}
printf ("Serial port %s successfully reconfigured.\n", pcCommPort);
char Buff[] = "Hello";
char Buff2[50] = {};
DWORD dwNumBytesWritten;
DWORD dwBytesTransferred;
printf("\n\n\n\n\n\n Start writting ! \n");
WriteFile (hCom, // Port handle
Buff, // Pointer to the data to write
sizeof(Buff), // Number of bytes to write
&dwNumBytesWritten, // Pointer to the number of bytes written
NULL // Must be NULL for Windows Embedded CE
);
printf("\n Bytes Written to the terminal ");
for( int j=0; j<dwNumBytesWritten; j++)
printf("%c",Buff[j]);
printf("\n Byte length %d \n", dwNumBytesWritten);
printf("\n\n\n\n\n\n Start reading !\n");
ReadFile (hCom, // Port handle
Buff2, // Pointer to data to read
dwNumBytesWritten, // Number of bytes to read
&dwBytesTransferred, // Pointer to number of bytes read
NULL // Must be NULL for Windows Embeddded CE
);
for( int j=0; j<dwNumBytesWritten; j++)
printf("%c",Buff2[j]);
printf("\n BytesRead from the terminal:%d \n",dwBytesTransferred);
CloseHandle(hCom);
int num;
scanf("%d", &num);
}
程序没有返回任何错误代码,但它一直在等待从 COM1 端口读取数据,但从未收到任何东西。我被困住了,因为我无法真正确定问题出在哪里。任何指示都会有所帮助。
谢谢,
约格什
最佳答案
您没有做任何明显的事情来设置硬件握手信号。串行端口设备几乎总是检查 RTS 和 DTR 信号,并且在它们处于事件状态之前不会发送任何内容。从 EscapeCommFunction 强制它们打开,设置 DCB.fDtrControl 和 fRtsControl 成员以打开硬件握手。
不设置波特率、奇偶校验、数据位和停止位等基本通信属性,如果默认设置不合适或被其他程序更改,您也会面临失败。
并使用 Putty 或 Hyperterminal 等单独的程序检查接线是否正常。
关于c - 串行端口 : Read data problem with loopback, 未读取任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4126457/
我正在尝试将扩展的环回用户模型与 loopback-component-passport 一起用于 facebook 登录。登录本身是有效的,但我无法让它使用我的自定义用户模型而不是内置的“用户”。
用于文件(或文件)上传的 loopback-component-storage 文档是这样说的: loopback documentation 描述: Upload one or more files
在 lib/models/user-identity.js 中 function profileToUser(provider, profile, options) { // Let's c
我已在 iisnode Windows Web 应用程序上托管了我的环回 4 应用程序,该应用程序将端口作为管道提供,在我的环回 4 应用程序中,我将端口读取为 Process.env.PORT。我收
我使用环回来生成我的 api 和 AngularJS 来与之通信。我有一个模型叫 Sync包含以下记录: Sync": { "34": "{\"uuid\":\"287c6625-4a95-4e11-
我关注了Loopback4 datasources文档并放置 sample.datasource.json 和 sample.test.datasource.json 下的文件src/数据源 .每当我
如何在 Loopback 中定义 decimal(10,2)?我查看了 api 和示例,但无法正常工作。它只是不断地创建一个小数(10,0)。 columnName 确实会影响输出,但未设置精度和比例
我正在使用 Loopback,我想创建一个记录上传数量的上传接口(interface)。我将自己的模型与存储组件一起使用。 我正在使用存储组件的上传功能,并且我想在上传成功后更新对象属性“upload
场景是, 删除用户时,我们只是将名为“状态”的字段更新为 -1。 但是,在添加具有已删除电子邮件 ID 的用户时,内置的环回用户模型会抛出错误,因为电子邮件已存在,因为它仅检查电子邮件是否存在。我想检
我正在使用 Loopback 3 开发一个应用。我在 ServiceEvaluation 模型上创建了一个远程方法,以返回服务模型中的 ServiceEvaluations 和相关属性的列表。 Ser
我正在使用环回。在名为 Report 的模型中创建一个名为 stats 的新方法。我想在另一个名为 Acount 的模型中创建相同的方法,但参数是 id。 模型报告: Report.remoteMet
如何在环回中创建动态模型,而不是对所有模型使用命令“lb model”。 例如: 如果我想创建 30 个具有几乎相同属性的模型,那么会遇到一次又一次创建所有 30 个模型和那些相应属性的麻烦。 是否可
如何在环回中创建动态模型,而不是对所有模型使用命令“lb model”。 例如: 如果我想创建 30 个具有几乎相同属性的模型,那么会遇到一次又一次创建所有 30 个模型和那些相应属性的麻烦。 是否可
我正在开发一个环回项目,我有一个名为 Depot 的模型,它有一个字段 likersList,该字段是一个字符串数组(用户 id)我想找到其 likersList 中没有特定 userId 的所有 D
我很难理解 Loopback 4 中 Repositories 的概念,文档说: A Repository represents a specialized Service interface tha
所以我有下表: external_user_has_survey_question_answer 此表与表有 belongsTo 关系: external_user 现在我正在尝试查询 member_
我将 Loopback 3 与 Mysql 结合使用。我们使用动态数据模型。例如,包含“管理员”或“用户”等类型的 UserAnswers。我想为类型的 countOfAnswers 字段添加答案计数
我有一个环回应用程序,我希望能够在 API 调用中包含来自关系的计算属性。例如,假设我有一个 apartment 模型和一个 address 模型。 address 具有属性 city 和 state
对于某些端点,我在调用时返回一个函数而不是实际值(最后的代码)。看起来它只出现在我的 Patient 模型中的嵌套端点上。 例如localhost:3000/api/Patients/{id}/Mea
我是环回平台的新手。我按照这个教程loop-back official tutorial for third-party和本教程 also a tutorial that i find 。我想要做的是
我是一名优秀的程序员,十分优秀!