我正在使用移远通信的 BC66 调制解调器。在我的程序中,当我向调制解调器输入一些 AT 命令时,它无法显示调制解调器的完整响应,而是显示 AT 命令的回复。见下图:相反,使用终端程序并键入 AT 命令,我得到了请求的状态。见下图:这是我在程序中所期待的,但不幸的是没有发生。代码片段:static void Main(string[] args) { if (InitPort() == true) { Console.WriteLine("Port initialized"); TestAT(); } }private static void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e){ byte[] data = new byte[serialPort.BytesToRead]; serialPort.Read(data, 0, data.Length); Console.WriteLine(Encoding.ASCII.GetString(data)); //Console.WriteLine(serialPort.ReadExisting());}private static void TestAT(){ for (int i = 0; i < 10; i++) { serialPort.Write("at"); Thread.Sleep(2000); serialPort.Write("at+cereg"); Thread.Sleep(2000); }}private static bool InitPort() { serialPort.PortName = "COM51"; serialPort.BaudRate = 115200; serialPort.DataBits = 8; serialPort.Parity = Parity.None; serialPort.StopBits = StopBits.One; serialPort.DataReceived += SerialPort_DataReceived; try { serialPort.Open(); return true; } catch { return false; } }关于哪里出了问题有什么建议吗?
1 回答

紫衣仙女
TA贡献1839条经验 获得超15个赞
正如您在第 7 页上看到的,您需要使用 来完成命令<CR><LF>
。
必须在每个命令行的开头设置“AT”或“at”前缀。输入
<CR>
将终止命令行。
在 C# 中,等价的是\r\n
正如@Mong Zhu 指出的,你可以通过使用来实现这一点 serialPort.WriteLine("at");
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消