如何通过RS232在HP33120A上使用SCPI?
我有旧的Hewlet Packard 33120A函数发生器(应该与Agilent 33120A类型相同),我想用MCU(ATMega)对其进行控制。生成器具有RS232并使用SCPI命令。 我用MAX232制作了简单的RS232到TTL转换器,仅使用RX和TX线。根据用户指南(第4章,DTR / DSR握手协议部分),我将DSR绑定到逻辑TRUE(负电压),但未连接DTR。此配置应禁用硬件握手。 现在,我可以将转换器连接到MCU或计算机。在我的第一个实验中,我使用计算机和以下Python脚本: import serial, sys, time if __name__ == '__main__': if len(sys.argv) < 2: print 'Usage: %s <serial_port>' % sys.argv[0] sys.exit(1) s = serial.Serial(port=sys.argv[1], baudrate=2400, bytesize=8, parity='N', stopbits=2, timeout=None, xonxoff=0, rtscts=0) time.sleep(0.5) s.write('\n*CLS\n') time.sleep(0.5) s.write('SYST:REM\n') time.sleep(0.5) s.write('APPL:SIN 30E+3, 0.1\n') s.close() 这没有任何问题。发生器将其输出设置为预期的30kHz。问题是,当我尝试读取发电机的一些响应时。例如,这应该返回设备名称: s.write('*IDN?\n') print s.realine() …