OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 20741|回复: 34

分享一个我使用C#写的串口助手源码。。。

[复制链接]

45

主题

99

帖子

1

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2015-7-24
在线时间
89 小时
发表于 2016-2-5 20:13:06 | 显示全部楼层 |阅读模式
源码见附件:



运行界面图

运行界面图

Serial助手工程 C#语言.zip

701.06 KB, 下载次数: 4122

我的淘宝小店 shop113369282.taobao.com
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

281

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2015-8-17
在线时间
383 小时
发表于 2016-2-6 12:25:17 | 显示全部楼层
本帖最后由 wszdxmh 于 2016-2-6 12:29 编辑

[mw_shl_code=csharp,true]            for (int i = 1; i < 256; i++)
            {
                comport.Items.Add("COM"+i.ToString());

            }[/mw_shl_code]
当我看到这个的时候,我想说,有必要这么做吗?
[mw_shl_code=csharp,true]        //
        // 摘要:
        //     获取当前计算机的串行端口名的数组。
        //
        // 返回结果:
        //     当前计算机的串行端口名的数组。
        //
        // 异常:
        //   T:System.ComponentModel.Win32Exception:
        //     无法查询的串行端口名称。
        public static string[] GetPortNames();[/mw_shl_code]
在serialport中本来就有这个种自动获取端口号的方法。连看打开设备管理器看COM号都省了我来说一下我的方法吧
[mw_shl_code=csharp,true]            string[] comname = SerialPort.GetPortNames();
            Array.Sort(comname);
            comboBox_com.Items.AddRange(comname);
            comboBox_com.SelectedIndex = comboBox_com.Items.Count > 0 ? 0 : -1;[/mw_shl_code]
这样即可。
做事的原则:
1.每个问题重复三遍、研究三遍后再提问,直接得到答案的人什么都没学会。
2.做事要有始有终,感谢那些帮助自己解决问题的人,把解决的方法总结起来。
回复 支持 1 反对 0

使用道具 举报

28

主题

190

帖子

0

精华

高级会员

Rank: 4

积分
758
金钱
758
注册时间
2012-8-23
在线时间
71 小时
发表于 2016-2-7 15:13:29 | 显示全部楼层
本帖最后由 月光疾風 于 2016-2-7 15:16 编辑

送上USB插拔检测代码一段

[mw_shl_code=csharp,true]        // USB消息定义
        public const int WM_DEVICE_CHANGE = 0x219;
        public const int DBT_DEVICEARRIVAL = 0x8000;
        public const int DBT_DEVICE_REMOVE_COMPLETE = 0x8004;
        public const UInt32 DBT_DEVTYP_PORT = 0x00000003;
        [StructLayout(LayoutKind.Sequential)]
        struct DEV_BROADCAST_HDR
        {
            public UInt32 dbch_size;
            public UInt32 dbch_devicetype;
            public UInt32 dbch_reserved;
        }

        [StructLayout(LayoutKind.Sequential)]
        protected struct DEV_BROADCAST_PORT_Fixed
        {
            public uint dbcp_size;
            public uint dbcp_devicetype;
            public uint dbcp_reserved;
            // Variable?length field dbcp_name is declared here in the C header file.
        }[/mw_shl_code]

[mw_shl_code=csharp,true]        /// <summary>
        /// 检测USB串口的拔插
        /// </summary>
        /// <param name="m"></param>
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_DEVICE_CHANGE)        // 捕获USB设备的拔出消息WM_DEVICECHANGE
            {
                switch (m.WParam.ToInt32())
                {
                    case DBT_DEVICE_REMOVE_COMPLETE:    // USB拔出  
                    {
                        MessageBox.Show("USB设备拔出!");
                        break;
                    }

                    case DBT_DEVICEARRIVAL:             // USB插入获取对应串口名称
                    {
                        MessageBox.Show("USB设备插入!");
                        /*
                        DEV_BROADCAST_HDR dbhdr = (DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_HDR));
                        if (dbhdr.dbch_devicetype == DBT_DEVTYP_PORT)
                        {
                            string portName = Marshal.PtrToStringUni((IntPtr)(m.LParam.ToInt32() + Marshal.SizeOf(typeof(DEV_BROADCAST_PORT_Fixed))));
                            Console.WriteLine("Port '" + portName + "' arrived.");
                        }*/

                        //自动搜索串口,并将其加入到[串口选择框]中
                        string[] SCIPorts;//字符串数组存放搜索到的COM口

                        SCIPorts = System.IO.Ports.SerialPort.GetPortNames();//获取所有COM口
                        this.UART_Num_ComboBox.Items.Clear();//首先将现有的项清除掉

                        int num = SCIPorts.Length;

                        //向[串口选择框]中添加搜索到的串口号
                        for (int i = 1; i <= SCIPorts.Length; i++)
                        {
                            this.UART_Num_ComboBox.Items.Add(SCIPorts[num - i]);
                        }

                        //UART_Num_ComboBox.Text

                        //设置各组合框的初始显示值
                        if (SCIPorts.Length != 0)
                        {
                            //初始值选择第一个Index的内容
                            this.UART_Num_ComboBox.SelectedIndex = 0;//串口号
                            this.UART_Speed_ComboBox.SelectedIndex = 0;//波特率

                        }
                        else
                        {
                            MessageBox.Show("没有可用的串口,请检查!");
                        }

                        break;                       
                    }
                }
            }
            base.WndProc(ref m);
        }[/mw_shl_code]



一介草民……
回复 支持 1 反对 0

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2016-2-5 20:19:09 | 显示全部楼层
不错,楼主做过大量数据测试吗
我的博客:http://blog.csdn.net/itdo_just
回复 支持 反对

使用道具 举报

45

主题

99

帖子

1

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2015-7-24
在线时间
89 小时
 楼主| 发表于 2016-2-5 20:35:16 | 显示全部楼层
229382777@qq.co 发表于 2016-2-5 20:19
不错,楼主做过大量数据测试吗

没问题呀!
我的淘宝小店 shop113369282.taobao.com
回复 支持 反对

使用道具 举报

45

主题

99

帖子

1

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2015-7-24
在线时间
89 小时
 楼主| 发表于 2016-2-6 15:40:04 | 显示全部楼层
wszdxmh 发表于 2016-2-6 12:25
[mw_shl_code=csharp,true]            for (int i = 1; i < 256; i++)
            {
                c ...

谢谢
我的淘宝小店 shop113369282.taobao.com
回复 支持 反对

使用道具 举报

11

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2016-1-21
在线时间
27 小时
发表于 2016-2-6 20:09:11 | 显示全部楼层
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-2-7 17:54:47 | 显示全部楼层
不错,谢谢分享。
回复 支持 反对

使用道具 举报

45

主题

99

帖子

1

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2015-7-24
在线时间
89 小时
 楼主| 发表于 2016-2-8 20:39:13 | 显示全部楼层
正点原子 发表于 2016-2-7 17:54
不错,谢谢分享。

我的淘宝小店 shop113369282.taobao.com
回复 支持 反对

使用道具 举报

13

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2012-5-3
在线时间
60 小时
发表于 2016-2-10 15:51:53 | 显示全部楼层
很好,我也在学习C#,可以学习一下。
回复 支持 反对

使用道具 举报

10

主题

146

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2015-12-19
在线时间
99 小时
发表于 2016-2-13 15:45:02 | 显示全部楼层
用VS2012打开 提示错误啊
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2016-3-22
在线时间
29 小时
发表于 2016-11-21 09:30:36 | 显示全部楼层
楼主辛苦了,参考下看看
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2016-10-31
在线时间
8 小时
发表于 2016-11-24 07:18:58 | 显示全部楼层
bu&#8198;cuo&#8198;yo
回复 支持 反对

使用道具 举报

17

主题

51

帖子

0

精华

高级会员

Rank: 4

积分
745
金钱
745
注册时间
2015-11-25
在线时间
119 小时
发表于 2016-12-5 21:41:22 | 显示全部楼层
     //自动扫描添加串口号
string[] str=SerialPort.GetPortname();
    for(int i=0;i<str.Length;i++)
    {
            baude.Item.Add(str[i]);
    }
不积跬步无以至千里!
回复 支持 反对

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2016-12-8 11:38:53 | 显示全部楼层
wszdxmh 发表于 2016-2-6 12:25
[mw_shl_code=csharp,true]            for (int i = 1; i < 256; i++)
            {
                c ...

正解。
回复 支持 反对

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2016-12-8 11:44:38 | 显示全部楼层
月光疾風 发表于 2016-2-7 15:13
送上USB插拔检测代码一段

[mw_shl_code=csharp,true]        // USB消息定义

谢谢分享。
回复 支持 反对

使用道具 举报

8

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2016-12-14
在线时间
75 小时
发表于 2017-9-11 17:19:48 | 显示全部楼层
mark........
书山有路勤为径,学海无涯苦作舟!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2017-5-10
在线时间
10 小时
发表于 2017-10-16 17:01:21 | 显示全部楼层
很好,谢谢分享
回复 支持 反对

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6681
金钱
6681
注册时间
2017-4-12
在线时间
1254 小时
发表于 2018-1-26 18:23:38 | 显示全部楼层
不知道为什么,跟我写的那个串口助手一样,我单片机一次发送7个数据,助手接收到 的数据丢失,只有2-3个
回复 支持 反对

使用道具 举报

23

主题

256

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-2-19
在线时间
133 小时
发表于 2018-1-27 09:50:02 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2017-7-25
在线时间
127 小时
发表于 2018-3-28 15:07:52 | 显示全部楼层
楼主,你这个用VS创建工程的时候是   WPF应用程序吗
回复 支持 反对

使用道具 举报

9

主题

57

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2017-5-9
在线时间
153 小时
发表于 2018-3-28 17:56:30 | 显示全部楼层
读设备名称
回复 支持 反对

使用道具 举报

0

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2018-6-17
在线时间
57 小时
发表于 2019-1-22 19:55:39 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2019-2-25
在线时间
2 小时
发表于 2019-2-25 15:32:22 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-5-3
在线时间
2 小时
发表于 2019-5-3 14:41:53 | 显示全部楼层
可以,很好
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-5-3
在线时间
2 小时
发表于 2019-5-3 17:29:06 | 显示全部楼层
楼主您好,我想咨询一下,波形图显示可以用VS中的VB语言写吗?我看大家都是C#
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
333
金钱
333
注册时间
2016-10-14
在线时间
57 小时
发表于 2019-6-21 15:00:37 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
376
金钱
376
注册时间
2019-5-8
在线时间
46 小时
发表于 2019-6-23 10:36:51 | 显示全部楼层

看下我的实用调试上位机:

Snipaste_2019-06-23_10-32-54.png
2.png
3.png

另有STM8S103系列的:
1.png
2.png
3.png
4.png

回复 支持 反对

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6084
金钱
6084
注册时间
2018-6-27
在线时间
524 小时
发表于 2019-7-6 14:32:39 | 显示全部楼层
学习学习,学习学习。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-10-17
在线时间
3 小时
发表于 2020-6-27 14:15:26 | 显示全部楼层
路过看看
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2013-10-27
在线时间
5 小时
发表于 2020-8-1 10:47:52 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

5

主题

305

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1690
金钱
1690
注册时间
2018-11-28
在线时间
214 小时
发表于 2022-12-7 13:26:14 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-12-8
在线时间
0 小时
发表于 2022-12-8 09:49:00 | 显示全部楼层
245925587 发表于 2018-1-26 18:23
不知道为什么,跟我写的那个串口助手一样,我单片机一次发送7个数据,助手接收到 的数据丢失,只有2-3个

应该要接收完发一个回传信息叭然后在接着发送?
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-12-9
在线时间
0 小时
发表于 2022-12-9 10:58:02 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
0
金钱
0
注册时间
2022-12-9
在线时间
0 小时
发表于 2022-12-9 14:26:16 | 显示全部楼层
111111111111
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 19:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表