WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。
----串口通信----
串口通信是指外设和计算机之间通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口通信可以是基于RS-232、RS-485、UART(通用异步收发器)或USART(通用同步/异步收发器)等标准。串口通信可以是异步的,也可以是同步的,并且可以是全双工或半双工的。
----采用虚拟串口驱动进行调试----
----前端画面展示----
----前端代码展示----<TextBlockText="串口端口"Grid.Row="0"Grid.Column="0"FontSize="15"Margin="23,7,2,8"/><ComboBoxx:Name="cmb_com"Width="125"Height="25"Margin="3,7,97,8"Grid.Row="0"Grid.Column="1"VerticalContentAlignment="Center"/><TextBlockText="波特率"Grid.Row="1"FontSize="15"Margin="23,7,2,8"/><ComboBoxx:Name="cmb_bote"Width="125"Height="25"Margin="3,7,97,8"Grid.Row="1"Grid.Column="1"VerticalContentAlignment="Center"><ComboBoxItemContent="4800"/><ComboBoxItemContent="9600"/><ComboBoxItemContent="14400"/><ComboBoxItemContent="28800"/></ComboBox><TextBlockText="数据位"Grid.Row="2"FontSize="15"Margin="23,7,2,8"/><ComboBoxx:Name="cmb_bate"Width="125"Height="25"Margin="3,7,97,8"Grid.Row="2"Grid.Column="1"VerticalContentAlignment="Center"><ComboBoxItemContent="5"/><ComboBoxItemContent="6"/><ComboBoxItemContent="7"/><ComboBoxItemContent="8"/></ComboBox><TextBlockText="奇偶校验"Grid.Row="3"FontSize="15"Margin="23,7,2,8"/><ComboBoxx:Name="cmb_jiou"Width="125"Height="25"Margin="3,7,97,8"Grid.Row="3"Grid.Column="1"VerticalContentAlignment="Center"><ComboBoxItemContent="None"/><ComboBoxItemContent="Odd"/><ComboBoxItemContent="Even"/><ComboBoxItemContent="Mark"/><ComboBoxItemContent="Space"/></ComboBox><TextBlockText="停止位"Grid.Row="4"FontSize="15"Margin="23,7,2,8"/><ComboBoxx:Name="cmb_Stop"Width="125"Height="25"Margin="3,7,97,8"Grid.Row="4"Grid.Column="1"VerticalContentAlignment="Center"><ComboBoxItemContent="One"/><ComboBoxItemContent="OnePoinFive"/><ComboBoxItemContent="Two"/></ComboBox><ButtonName="but_open"Content="打开"Grid.Row="5"Grid.Column="1"Width="75"Height="26"Margin="33,16,142,-2"Click="but_open_Click"/>
----后端代码展示----
publicMainWindow(){ InitializeComponent();//初始化控件的界面 InitUI(); //实例化串口对象 serial = new SerialPort();//订阅收到数据的事件 serial.DataReceived += Serial_DataReceived;
timer=new DispatcherTimer(); timer.Tick += Timer_Tick;
}
----收到数据的事件----
privatevoidSerial_DataReceived(object sender, SerialDataReceivedEventArgs e){this.Dispatcher.Invoke(new Action(delegate {int len = serial.BytesToRead;if (len > 0) {byte[] data = newbyte[len];int ret = serial.Read(data, 0, len);//获取原有的文本 String strText = txt_Recv.Text;//把收到的文本进行编码 String strRecv = Encoding.UTF8.GetString(data);//获取时间 String strTime = DateAndTime.Now.ToString("y M HH:mm:ss.fff:");//显示接收的数据 txt_Recv.Text = strTime + strRecv + "\r\n" + strText;
} }));}
----发送按钮的设置----
privatevoidbut_send_Click(object sender, RoutedEventArgs e){//串口打开才发送if (serial.IsOpen) { String strSend=txt_send.Text;
byte[] data=Encoding.UTF8.GetBytes(strSend);//发送数据到串口 serial.Write(data,0,data.Length);int interval=Convert.ToInt32(txt_time.Text); timer.Interval =new TimeSpan(0, 0, 0,0,interval); timer.Start(); }
}----视频演示----
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_3644825463698194434
|