为了账号安全,请及时绑定邮箱和手机立即绑定

控制台不显示来自串行端口的整个 answar

控制台不显示来自串行端口的整个 answar

C#
翻阅古今 2023-08-20 14:56:26
我正在使用移远通信的 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");


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信