我正在尝试从我的PC使用一个python控制台来读取和写入在microblaze主机上运行的嵌入式C应用程序。两者之间的连接是通过FTDI芯片的USB->;UART。你知道吗
简要说明我的技能/背景:射频/微波工程师,有丰富的硬件经验和大量的HDL经验,但几乎没有软件经验,当然没有C或python方面的经验。你知道吗
问题:
下面是一段描述uart\ U写函数的代码:
*
void uart_write_char(char data)
{
putchar(data);
}
你知道吗* 我想知道“打印”数据到控制台和“传输”数据到另一端之间是否有区别,这样我就可以接收数据并将其转储到文件中。你知道吗
编辑:我还尝试了查询ascii值()和查询二进制值(),如https://media.readthedocs.org/pdf/pyvisa/1.6/pyvisa.pdf中所述 结果仍然是一样的,我在python控制台中收到一个超时错误。你知道吗
更新我使用NI-MAX捕获跟踪IO,超时似乎在读取端。如果我连接到设备,我假设它将完成写功能,这是真的吗?这是Ni-MAX日志
viOpenDefaultRM(0x00001001) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:12.0642通话时长00:00:00.0139 状态:0(成功)
维克洛斯(0x00000000) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:12.0781通话时长00:00:00.0000 状态:0x3FFF0082(VI\u WARN\u NULL\u OBJECT)
viparserrcex(0x00001001,“ASRL6::INSTR”,4(0x4),6(0x6),“INSTR”,“ASRL6::INSTR”,“COM6”) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:12.0781通话时长00:00:00.0000 状态:0(成功)
viOpen(0x00001001,“ASRL6::INSTR”,0(0x0),0(0x0),0x00000001) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:12.0792通话时长00:00:00.0657 状态:0(成功)
viparserrcex(0x00001001,“ASRL6::INSTR”,4(0x4),6(0x6),“INSTR”,NULL,NULL) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:12.1450通话时长00:00:00.0000 状态:0(成功)
viWrite(ASRL6::INSTR(0x00000001),“tx\U lo\U freq?…”,14(0xE),14(0xE)) 进程ID:0x000082C8线程ID:0x00006F90 开始时间:15:21:24.5897通话时长00:00:00.0000 状态:0(成功)
- viRead (ASRL6::INSTR (0x00000001), 0x000001DF461F5420, 20480 (0x5000), 0 (0x0)) Process ID: 0x000082C8 Thread ID: 0x00006F90 Start Time: 15:21:24.5897 Call Duration 00:00:02.0006 Status: 0xBFFF0015 (VI_ERROR_TMO)
我很感激任何关于这个问题的建议,并很高兴提供更多的代码片段/信息。也渴望得到任何关于岗位礼仪和改进岗位要求潜力的反馈
干杯
为了完整性,我设法制定了一个解决方案,使用NIMAX跟踪所有VISA事务,使用VISA测试面板实现工作状态,然后在代码中实现
问题:我在仪器类定义中设置波特率和读/写终止字符,但它们从未实现。似乎我是在尝试用默认设置BAUD=9600和不正确的读取终止进行查询。你知道吗
在修复过程中,我将设置波特率和读取终止的代码行移动到我的设备类中,这样当我将设备定义为工具时,它会在任何事务发生之前设置这些属性。现在我读写都很好了。你知道吗
干杯
相关问题 更多 >
编程相关推荐