.net/c# 从0开始 (3)示例1:读写串口 SerialPort

(3)示例1:读写串口 SerialPort


利用.NET类库中的SerialPort类,你可以方便地对计算机串口进行操作,下面提供的例子是我写的手机短信控制模块的一部分,可能你稍加修改甚至原封不动就能使用。
为了方便地使用该类,你必须添加命名空间限定System.IO.Ports

using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports; //add namespace to use SerialPort conveniently
using System.Threading;

namespace MobileBlockCTRL
{
    public class ClassSend
    {
        
        /// <summary>
        /// SendMessage函数用于发送短信.参数strMobileNumber设置手机号码,strMsgContent指
        /// 定要发送的内容
        /// </summary>
        /// <param name="strMobileNumber">手机号码</param>
        /// <param name="strMsgContent">要发送的内容</param>
        /// <returns> 返回指示发送是否成功</returns>

        public static string SendMessage(string strMobileNumber,string strMsgContent)
        {
            string rt = "";
            SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None,
                                    8, StopBits.One);
            char[] sts ={ (char)0x1A };
            serialPort.WriteTimeout = 2000;
           
            try
            {
                if(serialPort.IsOpen==false)
                    serialPort.Open();
                serialPort.WriteLine("AT+CMGS=/"" + strMobileNumber +"/""+"/r");
                Thread.Sleep(100);
                serialPort.WriteLine(strMsgContent + "/r");
                Thread.Sleep(50);
                serialPort.Write(sts, 0, 1);
                //sleep,waiting for back infomation
                Thread.Sleep(500);
                
                if (serialPort.BytesToRead > 0)
                {
                    serialPort.ReadLine(); 
                   
serialPort.ReadLine(); 
                    serialPort.ReadLine(); 
                    serialPort.ReadLine(); 
                    rt = serialPort.ReadLine();//read back report
                }

                serialPort.Close();
            
                if (rt.IndexOf("OK")>-1)
                    rt = "发送成功";
                else
                    rt = "错误";                 
                
            }
            catch (Exception e)
            {
                rt = e.Message;
                //MessageBox.Show(e.Message);
            }
            finally
            {
               if (serialPort.IsOpen)
                    serialPort.Close();
               return rt;
            }

        } //end of function
    } //end of ClassSend
}

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值