我正在使用 C# 串行端口控制 gsm 调制解调器。现在在 Mikroelectronia USART 终端中发送后:
AT+CUSD=1,"*778#",15
它接收:
AT+CUSD=1,"*778#",15
好的
+CUSD: 0,"余额: 0.00 TK. 有效期: 29-Jul-13. Bonus: 0.00TK. Free Min: 0. 拨打 *121*2092# 获取 Ashiqui-2 的 3 首热门歌曲作为你的 Caller Tunetk.10" ,64
但是在C#中发送数据后
AT+CUSD=1,"*778#",15
它返回:
AT+CUSD=1,"*778#",15
好的
+CUSD: 0,"Balance: 0.00 TK. 有效期: 29-Jul-13. Bonus: 0.00TK. Free Min: 0. 拨打 *121*2092# 获取 Ashiqui-2 的 3 首热门歌曲作为您的 Caller Tune
这意味着在 C# 中,它在“Caller Tune”之后不会收到任何数据。为什么会这样?我使用的部分 C# 代码是
private void Form1_Load(object sender, EventArgs e)
{
sp1.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);
}
void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
var valueOfPort = sp1.ReadExisting();
textBox1.AppendText(valueOfPort);
}
private void button1_Click(object sender, EventArgs e)
{
TextBox.CheckForIllegalCrossThreadCalls = false;
try
{
if (!sp1.IsOpen)
{
sp1.Open();
}
sp1.Write(textBox2.Text+"\r");
}
catch(Exception ex)
{
MessageBox.Show(string.Format("Exception : {0}", ex.Message), "Port Error");
}
}