精华内容
下载资源
问答
  • 现象:(以下描述中,用vs 写程序,简称为程序)用串口助手给程序发数据,如果数据为全英文,则结果正确,而如果数据中含有英文,则结果有时正确,有时错误。代码如下 private void serialPort1_DataReceived...

    现象:(以下描述中,用vs 写的程序,简称为程序)

    用串口助手给程序发数据,如果数据为全英文,则结果正确,而如果数据中含有英文,则结果有时正确,有时错误。

     

    代码如下

    private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                int iThisLength = serialPort1.BytesToRead;

                if (iThisLength > 0)
                {
                    byte[] cpConfig = new byte[iThisLength];
                    serialPort1.Read(cpConfig, 0, iThisLength);


                    string sReceiveContent = Encoding.GetEncoding(“GB2312”).GetString(cpConfig);

               
                   

                    if (sReceiveContent != "")

                   {

                      AllReceive  += sReceiveContent ;

                    }

                }

            }

     

    以上代码中为了处理串口事件的一个特性(发送端发送了一串数据,但是接收端有可能会分几次触发这个事件,每次都只收一部分) ,因此使用了一个全局字符串AllReceive  。

    并且使用了一个timer来判断串口是否收完整了一包数据(这里,我判断数据的完整性依据:如果串口在一定时间内(如200ms)再没有收到任何内容,则认为已经收到了一个完整的包) 。

     

    注意:就是这句导致了乱码的问题

    string sReceiveContent = Encoding.GetEncoding(“GB2312”).GetString(cpConfig);

    如果串口事件,在一次触发中,数据的最末端正好收到了一个完整的汉字(一个汉字使用2个字节来表示),那么没有问题。

    但是如果数据的最末端正好收到了前半个汉字的编码,则经过 Encoding.GetEncoding(“GB2312”).GetString(cpConfig) 之后,就会把汉字补齐,因此就会出现问题。

     

    解决的办法:

    不能在此处做编码转换的工作,而应该是在收到完整的一包数据后,再去转换整个完整的包,这样就不会出现问题了。

    有的网友提到在接收之前来句System.Threading.Thread.Sleep(1000); 就可以解决问题了,这样是可以解决问题,但是

    道理上还是等完整的一包数据都存放到缓冲区后再去触发串口的接收事件,因为经过了1s的延迟,因此串口的接收事件只会触发因此,而不会像我的代码中会触发多次了。

    当然,付出的代价就是,延迟了1s的时间,这在很多场合是不可接受的。

     

    转载于:https://www.cnblogs.com/gaotaozhaolei/archive/2010/12/02/1894735.html

    展开全文
  • 如果从串口或者网络收到传送过来的中文数据解析发生乱码,解决办法如下: 1、发送时把中英文混合字符串转换成16进制用:.QByteArray tsd=tstr.toLocal8bit(); 2、收到数据时,使用如下方法处理: 2.1.QByteArray...

    如果从串口或者网络收到传送过来的中文数据解析发生乱码,解决办法如下:

    1、发送时把中英文混合字符串转换成16进制用:.QByteArray tsd=tstr.toLocal8bit();

    2、收到数据时,使用如下方法处理:

          2.1.QByteArray td;

          2.2.td=接收的16进制数据

          2.3.QTextCodec *tc=QTextCodec::codeForNmae("GBK");

          2.4.tstr=tc->toUnicode(td);

          2.5.此时,tstr里面中文英文均正常了

     

    展开全文
  • 串口输出中文乱码

    千次阅读 2020-07-29 17:14:03
    最近在使用OpenMV,但是由于没有转接板和软排线来连接串口,不过手上有一块STM32F4开发板,于是就想到将其作为一个转接,通过其接收OpenMV发送的数据,并将其转发到电脑上,结果串口助手一直输出乱码。 寻找问题...

    问题产生

    最近在使用OpenMV,但是由于没有转接板和软排线来连接串口,不过手上有一块STM32F4的开发板,于是就想到将其作为一个转接,通过其接收OpenMV发送的数据,并将其转发到电脑上,结果串口助手一直输出乱码。

    寻找问题产生的原因

    一开始以为是自己波特率设置的有问题,但是查验后并不是,PCOpenMVSTM32之间设置的波特率都是对应的。然后又以为是自己改过STM32F4的时钟频率,然后开始查STM32时钟频率的设置,发现也没问题。怎么也找不到问题在哪。/(ㄒoㄒ)/~~

    后来突然想到OpenMV是使用MicorPython语言写的,一般的字符编码为UTF-8,而STM32用的是keil的IDE开发的,编码格式一般为ASNII,两个字符编码不一样也会导致乱码,于是将其都改为UTF-8编码,结果乱码依旧。。。 (╯‵□′)╯︵┻━┻

    为了继续查找问题所在,先是将OpenMV发送给STM32数据直接返回OpenMV结果正确,然后将串口助手发送给STM32的数据直接返回,结果正确。由此可以看出,串口助手和OpenMV的字符编码不一致导致的乱码。这里给出一个网址,可以在线转换乱码。乱码恢复 。从中我们可以看到,前后的编码不一致。

    image-20200729163715363

    至此,找到了问题所在,串口助手不支持UTF-8编码。( ̄_ ̄|||)

    解决问题

    既然串口助手不支持,那就找支持的串口助手,或者自己开发一个(暂时有点想法)。目前使用的星瞳串口助手,接收结果如下:

    结果

    总结

    串口助手显示中文乱码的原因有以下几点:

    1. 波特率不对应。
    2. 字符编码不对应。
    3. 串口助手不支持字符编码方式。

    推荐两个串口助手:

    1. 星瞳串口助手SingTownSerialport(支持Mac,Windows,Ubuntu)
    img
    1. 串口调试助手(Windows)

    串口调试助手

    展开全文
  • 6.发送和接收的字符数统计更准确. 7.不再接收到一定数量字符数就清屏,因为发现即使收到很多内容也不会溢出,速度仍然很快. 8,可以打开二进制文件并发送,从前只能发文本文件. 9.打开文件后可以用asc方式或者hex方式...
  • 本篇文章制作的串口助手存在一个中文乱码问题,后期文章会解决这个问题。【后期文章:C#实现串口助手,解决中文乱码问题】 功能一:串口简单实现【C#制作的串口向主流助手发送数据】 功能二:C#实现简易串口助手...

    大家好,我是皮皮猫吖!

    每文一言:愿新年,胜旧年!


    本篇文章:

    主要是关于C#制作简单的串口助手,实现串口之间收发数据。本篇文章制作的串口助手存在一个中文乱码问题,后期文章会解决这个问题。【后期文章:C#实现串口助手,解决中文乱码问题

    功能一:串口简单实现【C#制作的串口向主流的串口助手发送数据】

    功能二:C#实现简易串口助手【发送、接收数据】

    功能三:C#扫描串口助手

    正文如下:

    一、串口简单实现【C#制作的串口向主流的串口助手发送数据】

    1)设置串口控件

    在这里插入图片描述

    2)通过串口发送数据

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp5
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            //窗体创建初始化函数
            private void Form1_Load(object sender, EventArgs e)
            {
                //存储下拉框中的内容
                string str;
                for(int i = 0; i < 256; i++)
                {
                    //把0-255个数字装换成十六进制,同时变为大写
                    //toString(参数1),根据参数的不同,可转换为任意进制的数据
                    str = i.ToString("x").ToUpper();
    
                    //如果得到数字的长度是1位的话,就需要在最前面加上一个0,比如0的十六进制应该是00
                    if(str.Length == 1)
                    {
                        //str是一位数的时候,在前面添加一个“0”
                        str = "0" + str;
                    }
                    //在数字的前面加上0x,变为真正的十六进制数据
                    comboBox1.Items.Add("0x" + str);
    
                }
                //初始化多选框的值
                comboBox1.Text = "0x00";
            }
    
            //按键单击函数
            private void button1_Click(object sender, EventArgs e)
            {
                //存储当前下拉框选中的内容
                string data = comboBox1.Text;
    
                //把字符分开,截取获得十六进制的数据,去掉0x
                string convertdata = data.Substring(2, 2);
    
                //定义一个数组
                byte[] buffer = new byte[1];//一个字节
    
                //将字符串,转换为byte类型的变量,buffer[0]存储的是十六进制的数据
                buffer[0] = Convert.ToByte(convertdata, 16);
    
                //防止异常出错
                try
                {
                    serialPort1.Open();
                    //里面需要的是字节数组
                    //0:从数组的第几位开始读取
                    //1:读取几个数据
                    serialPort1.Write(buffer, 0, 1);
                    serialPort1.Close();
                }
                catch//出错就执行此代码
                {
                    //串口打开了,写数据时出错,要关闭串口,等待下一次使用
                    //串口都没有找到,串口未找到,串口出错
                    if (serialPort1.IsOpen)
                        //如果写数据出错,此时的窗口状态时打开的,关闭串口
                        serialPort1.Close();
    
                    MessageBox.Show("端口错误", "错误");
                }
    
            }
        }
    }
    
    

    3)由于手上没有单品机设备,我使用了虚拟串口进行模拟,很香,完全可以实现串口通信。

    ① 关于VSPD(虚拟串口)的安装在上一篇文章里面【vspd虚拟串口安装】,这里不做详细描述,直接使用vspd虚拟串口:

    • 【注意】:
      • VSPD是以串口的形式添加的,这里的COM1,COM2成对,COM1的数据只能发送给COM2,COM2会自动接收来自COM1的数据

    在这里插入图片描述

    ② 串口助手效果

    在这里插入图片描述
    ③ 使用完,删除虚拟串口

    在这里插入图片描述

    ④ 本项目中,Visual Studio模拟的是COM1端口,需要使用vspd虚拟串口软件创建一个虚拟的COM2,设置为COM1向COM2发送数据,即可看到如下效果【C#串口助手向其他串口助手【下面有串口助手链接】发送数据】:

    在这里插入图片描述

    二、C#实现简易串口助手【发送、接收数据】

    1)串口视图化

    ① 基本控件

    • groupBox1:带标题的框
    • label:文本
    • radioButton:单选
    • comboBox:多选框
    • panel【容器】:面板(内置单选框,面板内的单选框会相互影响,与面板外的单选框无相互影响)
    • button:按钮
    • textbox:
      • scrollbars:vertical、both、horizontal设置滚动条属性
      • Multiline:true / false 文本可以跨越多行
    • serialPort:串口

    在这里插入图片描述

    2)通过串口发送、接收数据

    • 代码
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO.Ports;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace SerialPort_2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            }
    
            private void label1_Click(object sender, EventArgs e)
            {
    
            }
    
    
            //窗体初始化
            private void Form1_Load(object sender, EventArgs e)
            {
                //窗体加载前
                for (int i = 0; i < 20; i++)
                {
                    //添加串口信息
                    comboBox1.Items.Add("COM" + i.ToString());
    
                }
                //设置串口为COM1
                comboBox1.Text = "COM1";
    
                //设置默认波特率为9600
                comboBox2.Text = "9600";
    
    
                //手动设置串口的接收回调函数
                //当串口中有数据发送过来的时候,默认会调用回调函数
                serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
    
                button3.Enabled = false;
            }
    
    
            //串口接收数据回调函数
            private void port_DataReceived(Object sender, SerialDataReceivedEventArgs e)
            {
                //如果接收模式为字符模式
                if (radioButton3.Checked)
                {
                    //读取串口中的数据:以字符串方式进行接收
                    String str = serialPort1.ReadExisting();
                    //在文本框中添加内容
                    textBox1.AppendText(str);
                }
                else//接收模式为数值接收
                {
    
                    byte data;
    
                    //读取串口中的数据:读取到的是int类型的数据,需要进行一次转换。强转为byte类型
                    data = (byte)serialPort1.ReadByte();
    
                    //把data数据,转换为16进制的字符串,再转换为字符全大写
                    String str = Convert.ToString(data, 16).ToUpper();
    
                    //如果是一位数据的话,需要再数据的前面进行补0
                    //比如说串口中的数据为155
                    //读取到的数值为   0x0e.0x05
                    textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");
                }
            }
    
            //打开串口按钮
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    //设置串口号
                    serialPort1.PortName = comboBox1.Text;
    
                    //设置波特率:将字符串转换为10进制类型数据
                    //参数1:需要转换的字符串
                    //参数2:默认(10进制),可以是x(十六进制)
                    serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10);
    
                    //打开串口
                    serialPort1.Open();
    
                    //设置打开串口为非点击状态:打开串口不可用
                    button1.Enabled = false;
                    //关闭串口按钮为可以点击状态:关闭串口可用
                    button2.Enabled = true;
                }
                catch
                {
                    MessageBox.Show("串口打开错误,请检查...", "错误");
                }
            }
    
            //关闭串口按钮
            private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    //关闭串口
                    serialPort1.Close();
    
                    //打开串口可点击
                    button1.Enabled = true;
                    //关闭串口不可点击
                    button2.Enabled = false;
                }
                catch
                {
                    MessageBox.Show("串口关闭错误,请检查...", "错误");
                }
            }
    
            //发送数据按钮
            private void button3_Click(object sender, EventArgs e)
            {
                byte[] Data = new byte[1];
                //判断串口是否打开
                if (serialPort1.IsOpen)
                {
                    //判断发送域是否有数据
                    if (textBox2.Text != "")
                    {
                        
                        //以字符形式发送数据
                        if (!radioButton1.Checked)
                        {
                            try
                            {
                                //向串口中写入数据
                                serialPort1.WriteLine(textBox2.Text);
                            }
                            catch (Exception err)
                            {
                                //向串口写入数据发生错误
                                MessageBox.Show("串口写入数据错误", "错误");
                                //关闭串口
                                serialPort1.Close();
    
                                //打开串口按钮开启
                                button1.Enabled = true;
                                //关闭串口按钮关闭
                                button2.Enabled = false;
                            }
                        }
                        else
                        {
                            //以数值形式发送数据
    
                            //防止用于输入的个数为奇数个
                            for (int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++)
                            {
                                //将字符串转换为16进制的数值
                                Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);
                                //向串口中写入数据
                                serialPort1.Write(Data, 0, 1);
    
                            }
                            if (textBox2.Text.Length % 2 != 0)
                            {
                                //
                                Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);
                                //发送数据
                                serialPort1.Write(Data, 0, 1);
                            }
                        }
    
                    }  
                }
            }
    
    
    
            private void textBox2_TextChanged(object sender, EventArgs e)
            {
                if (textBox2.Text == "")
                {
                    button3.Enabled = false;
                }
                else
                {
                    button3.Enabled = true;
                }
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                //保持文本框的滚动条移动到最下方
                textBox1.ScrollToCaret();
            }
        }
    }
    
    

    3)效果如下:

    ① C#打开串口COM1,其他串口助手打开COM2。C#串口助手向其他串口助手发送数据,其他串口助手接收到C#串口助手发送的数据。情况如下图:

    在这里插入图片描述

    ② C#打开串口COM2,其他串口助手打开COM1。其他串口助手向C#串口助手发送数据,C#串口助手接收其他串口助手发送的数据。情况如下图:

    在这里插入图片描述

    4)注意:

    ① 使用串口之前,需要设置串口的波特率,只有当两个串口的波特率相同的时候,发送的数据才可以接收到

    ② 发送串口需要和接收串口设置一定的发送数据和接收数据的规则:接收数据模式,发送数据模式

    ③ 此串口助手有一个小缺点是,中文会出现乱码,在后续文章中会进行改正

    三、C#扫描串口助手

    1)串口视图化

    ① 基本控件

    • label:文本
    • button:按钮
    • groupBox:带标题的框
    • comboBox:下拉框
    • serialPort:串口

    在这里插入图片描述

    2)代码

    • 【注意】:
      • 扫描按键的部分设计非常的巧妙。一个一个的试探哪一个串口是打开的,是通过异常试探的方式来实现串口扫描的功能的。然后把打开的串口的名字,加入到comboBox里面即可。本串口助手只扫描到COM20,可以自行更改扫描的上限。
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO.Ports;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace SerialPort_3
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //扫描当前哪个串口是打开状态
                SearchAndAddSerialToComboBox(serialPort1, comboBox1);
            }
    
    
            //串口打开 / 关闭按钮
            private void button2_Click(object sender, EventArgs e)
            {
                //如果当前串口是打开的
                if (serialPort1.IsOpen)
                {
                    try
                    {
                        //关闭串口
                        serialPort1.Close();
    
                        radioButton1.Checked = false;
                    }
                    catch
                    {
    
                    }
                    //文字设置为打开串口
                    button2.Text = "打开串口";
                }
                else
                {
                    try
                    {
                        //此时串口是关闭状态:连接当前扫描到的串口
                        serialPort1.PortName = comboBox1.Text;
                        //打开指定串口号的串口
                        serialPort1.Open();
    
                        
                        radioButton1.Checked = true;
    
                        //按钮设置为关闭串口
                        button2.Text = "关闭串口";
                    }
                    catch
                    {
                        MessageBox.Show("串口打开失败", "错误");
                    }
                }
            }
    
    
    
            //扫描按键的作用:扫描当前电脑中,串口打开状态
            private void SearchAndAddSerialToComboBox(SerialPort MySerialPort, ComboBox comboBox)
            {
                string buffer;
    
                //清除下拉框的内容
                comboBox.Items.Clear();
    
                //获取当前计算机打开的串口
                for(int i = 1; i < 20; i++)
                {
                    try
                    {
                        buffer = "COM" + i.ToString();
    
                        //假设COM+i是打开状态
                        MySerialPort.PortName = buffer;
                        //如果当前串口真的处于打开状态,会成功开启串口;否则会打开串口失败,直接跳到catch那边
                        MySerialPort.Open();
    
                        //把打开的串口名字,添加到下拉框中
                        comboBox.Items.Add(buffer);
    
                        //关闭打开的串口
                        MySerialPort.Close();
                    }
                    catch
                    {
    
                    }
                }
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                SearchAndAddSerialToComboBox(serialPort1, comboBox1);
            }
    
    
            //向串口写入数据
            private void writeByteToSerialPort(byte data)
            {
                //封装这写入的数据
                byte[] buffer = new byte[1] {data};
    
                if (serialPort1.IsOpen)
                {
                    try
                    {
                        //向串口中写入数值数据
                        serialPort1.Write(buffer, 0, 1);
                    }
                    catch
                    {
    
    
                        MessageBox.Show("串口发送数据错误", "错误");
                    }
                }
            }
    
            //NO.1的开按钮
            private void button4_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("11", 10));
            }
    
            //NO.1的关按钮
            private void button3_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("10", 10));
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("21", 10));
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("20", 10));
            }
    
            private void button8_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("31", 10));
            }
    
            private void button7_Click(object sender, EventArgs e)
            {
                writeByteToSerialPort(Convert.ToByte("30", 10));
            }
        }
    }
    
    

    3)实现效果

    ① 其他串口助手占用COM1端口,C#串口助手只扫描到COM2

    在这里插入图片描述

    ② 其他串口助手不使用串口,C#串口助手扫描到COM1、COM2

    在这里插入图片描述

    ③ C#串口助手向其他串口助手发送数据:

    十进制:11、10、21、20、31、30

    十六进制:0B、0A、15、14、1F、1E

    在这里插入图片描述
    在这里插入图片描述

    4)注意

    ① 主要是如何实现串口助手的扫描。使用异常的方式,来搜索电脑上面可以使用的串口,通过试错的方式找到可以使用的串口助手。


    其他串口助手资源链接:https://pan.baidu.com/s/1agi_IXcSI3L4URVlDzDXUw

    提取码:x9i3


    希望本篇文章对大家有所帮助,后续会继续分享C#串口助手相关知识…

    如果文章内容有错误的地方,请在留言处留下你的见解,方便大家共同学习。谢谢。

    作者:皮皮猫吖


    `

    展开全文
  • WIN10上 非常好用 串口调试助手

    千次阅读 2020-04-19 14:28:19
    1.接收串口进来的数据并在窗口显示。 2.接收的数据显示方式可以选择为"字符串"或"HEX"。 3.中文显示无乱码。可以在设置中更改字符串编码类型。支持多种字符编码 “ASCII”,“GB2312”,“UNICODE”,“UTF-8”,...
  • 1.在菜单栏中选择’Edit’选项 2.把Encoding换掉 void USART1_IRQHandler(void) //串口1中断服务程序 { u8 Res; #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则...= RESET) //接收中断(接收的数据必须
  • 修复接收中文UTF8乱码 之前写小工具,本来是自己用,想着放到网上给大家用。没想到挺多人喜欢。 所以18年更新一下,主要是增加了保存日志功能,以及可以同时打开多个串口设备。 其他更新: 1. 接收区收到数据...
  • 串口调试工具

    2007-09-12 00:04:25
    Serial2Tool 串口调试工具,作为你真正调试帮手! 软件采用C++编制,单文件,可在Win95... 4、接收数据并显示时间,并且可以调整每个串口接收数据的显示颜色和字体大小 5、设置发送时间间隔后,定时重复发送数据
  • 然后打开串口,测试到有数据输出,能够在XP/WIN7系统下运行,能够接收串口进来的数据并在窗口中显示,所接收的数据显示方式可以选择字符方式或者HEX方式,中文件显示无乱码也不影响速度,可以选择串口的波特率,...
  • BCOM串口调试助手1.0

    2015-03-13 09:09:17
    和其它串口主要不同在于添加了更新串口端口号按钮,不需重新打开软件就可重新获取串口串口输出数据编码可选,这样可以完美支持中文,不会出现乱码,并且算法保证因故障乱码后可自动恢复。另外命令列表行数可变。 ...
  • 6.发送和接收的字符数统计更准确. 7.不再接收到一定数量字符数就清屏,因为发现即使收到很多内容也不会溢出, 速度仍然很快. 8,可以打开二进制文件并发送,从前只能发文本文件. 9.打开文件后可以用asc方式或者hex方式...
  • 2.串口接收10进制,16进制数据 3.Text文本行字体颜色设置(蓝色字体为串口返回的数据) 4.INI配置文件读写操作(保存所有信息,方便下一次启用) 5.中文乱码需加 RS232.Encoding = System.Text.Encoding.GetEncoding(...
  • ComMagic串口调试助手

    2013-07-09 17:26:14
    1.接收串口进来的数据并在窗口显示. 2.所接收的数据数据显示方式可以选择为字符方式或者HEX方式 3.中文显示无乱码,且不影响速度 4.串口波特率可以选择为110bps-115200bps 5.可以选择“5、6、7、8”四种数据长度....
  • TCP串口调试软件

    2013-11-16 10:16:16
    6.发送和接收的字符数统计更准确. 7.不再接收到一定数量字符数就清屏,因为发现即使收到很多内容也不会溢出,速度仍然很快. 8,可以打开二进制文件并发送,从前只能发文本文件. 9.打开文件后可以用asc方式或者hex方式...
  • 串口调试助手 sscom3.2

    2011-05-26 15:41:02
    1.接收串口进来的数据并在窗口显示. 2.所接收的数据数据显示方式可以选择为字符方式或者HEX方式 4.中文显示无乱码,且不影响速度 5.串口波特率可以选择为110bps-256000bps.(波特率>115200时需要硬件支持) 6.可以...
  • ISP+串口调试助手(支持STCISP)

    热门讨论 2012-02-25 17:06:15
    1.接收串口进来的数据并在窗口显示. 2.所接收的数据数据显示方式可以选择为字符方式或者HEX方式 3.中文显示无乱码,且不影响速度 4.串口波特率可以选择为110bps-115200bps 5.可以选择“5、6、7、8”四种数据长度....
  • 20.可以保存串口接收内容到文件,文件名取自当前时间,保存在当前目录. 21.可以即时显示发送字节数和接收到字节数,按清除窗口将会清零. 22.带有功能强大扩展功能:多条字符串发送预先定义,并自动保存. 23....
  • sscom32.rar

    2019-05-23 14:52:02
    好用的串口调试助手,比ISP更加方便,可支持发送中文接收数据不会乱码
  • 莱康-源码

    2021-02-08 10:16:25
    串口数据发送,接收 十六进制,文本数据发送 十六进制,文本数据显示 支持自动发送换行 数据接收时间显示任选 支持周期循环发送 发送,接收流量统计 支持中文发送,接收 支持文件发送 可保存接收数据 支持多行发送 ...
  • 友善串口调试助手支持常用50-256000bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符(包括中文),可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意...
  • 中文显示无乱码.  2.USB串口误拔不易死机,大部分型号USB芯片插回能自动恢复(pl2303除外).  3.通讯方面支持串口和网卡TCP/IP,UDP通讯.  4.波特率支持自定义,  5.可以实现“帧头+数据+校验+帧尾”  6....
  • 1.接收串口进来的数据并在窗口显示. 2.所接收的数据数据显示方式可以选择为字符方式或者HEX方式 3.中文显示无乱码,且不影响速度 4.串口波特率可以选择为110bps-115200bps 5.可以选择“5、6、7、8”四种数据长度....
  • Com调试程序

    2011-09-23 22:37:40
    发送和接收的字符数统计更准确. 7.不再接收到一定数量字符数就清屏,因为发现即使收到很多内容也不会溢出,速度仍然很快. 8,可以打开二进制文件并发送,从前只能发文本文件. 9.打开文件后可以用asc方式或者hex方式预览...

空空如也

空空如也

1 2
收藏数 24
精华内容 9
关键字:

串口接收的中文数据乱码