WPF制作简易串口调试助手

这篇博客介绍了如何利用WPF在Visual Studio 2013环境下制作一个简单的串口调试助手。主要内容包括UI界面的设计,特别是实现数据发送区域的自动换行功能,以及如何动态设置串口号以适应不同电脑的端口配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WPF制作简易串口调试助手(上位机部分)

实验环境:vs2013
参考文档:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.ports?view=netframework-4.7.2

下位机部分:https://blog.youkuaiyun.com/weixin_42462552/article/details/85937289

一、窗体程序制作:

(一)UI界面

1.首先我们参照网上的串口调试助手将UI界面的大体框架完成

2.其中数据发送区域的文本需要实现自动换行功能,根据网上资料,需要设置TextWrapping的属性为"Wrap"。
3.接下来是对串口号、波特率、校验位等的一些内容设置,其中较复杂的是串口号的设置,需要根据电脑的端口实际情况来确定串口数量,不能同设置波特率属性一般,直接在程序里指定唯一值。


UI界面xml代码

<Window x:Class="WpfApplication7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DIY视界-旋转LED改字软件" Height="600" Width="850" WindowState="Maximized" FontFamily="Segoe UI" FontSize="12" Icon="Resources/5.jpg">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="185*"/>
        <RowDefinition Height="410*"/>
    </Grid.RowDefinitions>
    <Grid Grid.Column="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200*"/>
            <ColumnDefinition Width="220*"/>
            <ColumnDefinition Width="390*"/>
        </Grid.ColumnDefinitions>
        <Image HorizontalAlignment="Left" Height="169" VerticalAlignment="Top" Width="211" Source="Resources/9.jpg" Margin="0,0,0,0.2"/>
        <Image HorizontalAlignment="Left" Height="169" Margin="2,0,0,-0.2" VerticalAlignment="Top" Width="228" Source="Resources/10.jpg" Grid.Column="1" Grid.ColumnSpan="2"/>
        <Image Grid.Column="2" HorizontalAlignment="Left" Height="169" Margin="0.4,10,-1.8,-10.2" VerticalAlignment="Top" Width="407" Source="Resources/11.jpg"/>
    </Grid>
    <TabControl HorizontalAlignment="Left" Height="372" Margin="10,10.4,0,0" Grid.Row="1" VerticalAlignment="Top" Width="823">
        <TabItem Header="平面数据">
            <Grid Background="#FFE5E5E5">
                <GroupBox Grid.Row="2">
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="510,270,0,5" Width="291">
                        <Button x:Name="bt_ClearSendFData" Content="清空平面数据" Margin="20,15,20,15" Click="bt_ClearSendFData_Click" Width="92"/>
                        <Button x:Name="bt_sendf" Content="发送平面数据" Margin="20,15,20,15" Click="bt_sendf_Click"  Width="92"/>
                    </StackPanel>
                </GroupBox>
                <GroupBox Header="发送平面数据区"  BorderBrush="Black" Margin="10,10,10,80">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <TextBox Name="tb_SendFlatData" TextWrapping="Wrap"/>
                    </ScrollViewer>
                </GroupBox>
            </Grid>
        </TabItem>
        <TabItem Header="立体数据">
            <Grid Background="#FFE5E5E5">
                <GroupBox  Grid.Row="2">
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="510,270,0,5" Width="291">
                        <Button Name="bt_ClearSendSData" Content="清空立体数据" Margin="20,15,20,15" Click="bt_ClearSendSData_Click"/>
                        <Button Name="bt_sends" Content="发送立体数据" Margin="20,15,20,15" Click="bt_sends_Click"/>
                    </StackPanel>
                </GroupBox>
                <GroupBox Header="发送立体数据区"  BorderBrush="Black" Margin="10,10,10,80">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <TextBox Name="tb_SendStereoData" TextWrapping="Wrap"/>
                    </ScrollViewer>
                </GroupBox>
            </Grid>
        </TabItem>
        <TabItem Header="串口参数">
            <Grid Background="#FFE5E5E5">
                <GroupBox  BorderBrush="Black" Margin="10,10,9.8,10">
                    <StackPanel >
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="串口号" Width="auto" Margin="15" Padding="10,6,0,0"/>
                            <ComboBox Name="cb_SerialPortNumber" Width="180" Margin="30,10,0,10"/>
                            <Button  x:Name="btn1" Height="21" HorizontalAlignment="Left" Margin="11,12,0,0" VerticalAlignment="Top" Width="22" Click="btn1_Click">
                                <Button.Background>
                                    <ImageBrush ImageSource="Resources/7.jpg"/>
                                </Button.Background>
                            </Button>
                            <TextBlock Text="波特率" Width="auto" Margin="15" Padding="70,6,0,0"/>
                            <ComboBox x:Name="cb_BaudRate" Width="180" Margin="100,10,0,10" SelectedIndex="8"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值