如何用c编写程序 读取端口com xx 的数据?

如何用c编写程序 读取端口com xx 的数据?,第1张

com串口在windows系统下被封装成了一个文件,文件名就是串口名,没有路径直接写名字,读写方法和普通文件读写方法相同,就是需要先设置一些属性,比如字节长度,波特率等等,属性设置C语言的文件函数库没有,需要调用WINDOWS的API函数,C语言将所有windows的API函数声明道了windowsh中。。。。

//创建一个串口通讯
SerialPort CurrentPort = null;
CurrentPort = new SerialPort();
                CurrentPortReadBufferSize = 128;
                CurrentPortPortName = comName;  //端口号 
                CurrentPortBaudRate = bandRate; //比特率 
                CurrentPortParity =parity;//奇偶校验 
                CurrentPortStopBits = stop;//停止位 
                CurrentPortDataBits = databit;//数据
                CurrentPortReadTimeout = 1000; //读超时,即在1000内未读到数据就引起超时异常 
                //绑定数据接收事件,因为发送是被动的,所以你无法主动去获取别人发送的代码,只能通过这个事件来处理
                CurrentPortDataReceived += Sp_DataReceived;
                CurrentPortOpen();
                
                
                
           定义一个变量 byte[] receiveStr;          
                
         //绑定的事件处理函数
         private static void Sp_DataReceived(object sender, SystemIOPortsSerialDataReceivedEventArgs e)
        {
            SerialPort sp = sender as SerialPort;
            if (sp == null)
                return;
            byte[] readBuffer = new byte[spReadBufferSize];
            spRead(readBuffer, 0, readBufferLength);
            
            //赋值
            receiveStr=readBuffer;//当然你可以通过转换将byte[]转换为字符串。
        }
        
        
        //你要求的按钮事件可以这么写
         private void button1_Click(object sender, EventArgs e)
         {
                 if(receiveStr!=null)
                 {
                     变量  xxx=receiveStr;
                 }
         }

你的称重器是电子的吗,可以调数据发送方式的吧,建议你把它调成手动发送,就是按一下确定就发送一次数据,根据你提供的数据帧,仔细观察会发现,你的数据帧长度为12,你看下称重器的说明书,看第几帧到第几帧是真是的数据(估计是用十六进制表示的),然后转化成10进制就是你要的称重物品的重量

不能实现在显示的同时输出到文本。只能二选其一。如果要实现输出到文本的话,可以使用重定向 *** 作符pingzhidaobaiducom>c:\ping_resulttxt如果想要在atxt文件中追加的话,用下面这行命令pingzhidaobaiducom>>c:\ping_resulttxt


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13323289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存