久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4124|回復: 3
打印 上一主題 下一主題
收起左側

上位機聯合調試-串口控制LED燈

[復制鏈接]
跳轉到指定樓層
樓主

界面設計:
<Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="1*"/>
            <RowDefinition Height="1*"/>
            <RowDefinition Height="1*"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*"/>
            <ColumnDefinition Width="1*"/>
        </Grid.ColumnDefinitions>
        <GroupBox x:Name="groupBox" Header="串口設置" FontSize="18" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="23,33,0,0" Height="261" Grid.RowSpan="3" Width="241" />
        <Label Content="串口" FontSize="18" VerticalAlignment="Center" Width="100" HorizontalAlignment="Center" HorizontalContentAlignment="Right" Margin="23,0.5,137,71" Grid.Row="1" Height="36"/>
        <Label Content="波特率" FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" Width="100" Grid.Row="1" HorizontalContentAlignment="Right" Margin="23,55,135,10" Height="42"></Label>
        <ComboBox x:Name="cmbChuanKou" Width="100" Height="30" Margin="148,6,10,71" Grid.Row="1"/>
        <ComboBox x:Name="cmbBaud" Width="100" Height="30" Margin="148,55,10,22" Grid.Row="1"/>
        <Button x:Name="btnOpenSerialPort" FontSize="18" Grid.Row="2" Height="30" Width="100" Content="打開串口" Margin="36,27,122,49" Click="btnOpenSerialPort_Click"></Button>
        <Button x:Name="btnCloseSerialPort" FontSize="18" Grid.Row="2" Height="30" Width="100" Content="關閉串口" Margin="148,27,10,49" Click="btnCloseSerialPort_Click"></Button>
        <GroupBox x:Name="groupBox1" Header="控制LED" FontSize="18" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="9.5,33,0,0" Height="261" Grid.RowSpan="3" Width="255" Grid.Column="1" />
        <Label Content="請選擇LED" FontSize="18" VerticalAlignment="Center" HorizontalAlignment="Center" RenderTransformOrigin="0.603,0.654" Grid.Column="1" Margin="10,38,142,22" Grid.Row="1" Height="47" Width="107"></Label>
        <ComboBox x:Name="cmbLed" Grid.Column="1" Height="30" Width="100"  Margin="149,38,10,39" Grid.Row="1" ></ComboBox>
        <Button x:Name="btnOpenLed" FontSize="18" Grid.Row="2" Height="30" Width="100" Content="開燈" Grid.Column="1" Margin="17,27,142,49" Click="btnOpenLed_Click"></Button>
        <Button x:Name="btnCloseLed" FontSize="18" Grid.Row="2" Height="30" Width="100" Content="關燈" Grid.Column="1" Margin="149,27,10,49" Click="btnCloseLed_Click"></Button>
    </Grid>
</Window>
后臺代碼:
  private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            foreach (string s in SerialPort.GetPortNames())
            {
                cmbChuanKou.Items.Add(s);
            }
            List<string> Baud = new List<string>(new string[] { "600", "1200", "2400", "4800", "9600", "14400", "19200", "115200" });
            cmbBaud.ItemsSource = Baud;
            cmbLed.Items.Add("全部");
            for (int i = 1; i < 17; i++)
            {
                cmbLed.Items.Add(string.Format("{0}號燈", i));
            }
            cmbChuanKou.SelectedIndex = 0;
            cmbLed.SelectedIndex = 0;
            cmbBaud.SelectedIndex = 0;

        }
  private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {


        }


        private void btnOpenSerialPort_Click(object sender, RoutedEventArgs e)
        {
            mySerialPort.PortName = cmbChuanKou.Text;
            mySerialPort.BaudRate = Convert.ToInt32(cmbBaud.Text);
            try
            {
                mySerialPort.Open();
                btnOpenSerialPort.IsEnabled = false;
                btnCloseSerialPort.IsEnabled = true;
                cmbChuanKou.IsEnabled = false;
                cmbBaud.IsEnabled = false;
            }
            catch
            {
                MessageBox.Show("打開端口出錯,請檢查串口", "錯誤");
            }
        }


        private void btnCloseSerialPort_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                mySerialPort.Close();
                btnOpenSerialPort.IsEnabled = false;
                btnCloseSerialPort.IsEnabled = true;
                cmbChuanKou.IsEnabled = true;
                cmbBaud.IsEnabled = true;
            }
            catch
            {
            }
        }
        private byte sum(byte[] d)
        {
            byte s = 0;
            for (int i = 0; i < d.Length - 1; i++)
            {
                s += d[ i];[ i]
            }
            return s;
        }


        private void btnOpenLed_Click(object sender, RoutedEventArgs e)
        {
            byte[] data = new byte[5];
            data[0] = 0x55;
            data[1] = 0xaa;
            data[2] = (byte)cmbLed.SelectedIndex;
            data[3] = 0x00;
            data[4] = sum(data);
            mySerialPort.Write(data, 0, 5);
        }


        private void btnCloseLed_Click(object sender, RoutedEventArgs e)
        {
            byte[] data = new byte[5];
            data[0] = 0x55;
            data[1] = 0xaa;
            data[2] = (byte)cmbLed.SelectedIndex;
            data[3] = 0xFF;
            data[4] = sum(data);
            mySerialPort.Write(data, 0, 5);
        }
    }

}


51hei.png (5.67 KB, 下載次數: 144)

51hei.png

聯合調試-LED.zip

73.18 KB, 下載次數: 42, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:885725 發表于 2021-2-23 15:47 | 只看該作者
這是利用單片機做下位機實現的嗎?有硬件圖嗎?
回復

使用道具 舉報

板凳
ID:885725 發表于 2021-2-26 11:22 | 只看該作者
試了一下,居然能運行!請問樓主,程序現在控制的是P0口,怎樣修改成控制P1口呢?
回復

使用道具 舉報

地板
ID:885725 發表于 2021-3-3 10:00 | 只看該作者
請問以上程序運行后,串口模擬輸入1時顯示的是6,輸入2時顯示亂碼,請見附件顯示圖片。該怎樣解決顯示不正確的這個問題呢?

串口測試輸入1時的顯示.jpg (125.04 KB, 下載次數: 133)

串口測試輸入1時的顯示.jpg

串口測試輸入2時的顯示.jpg (141.67 KB, 下載次數: 137)

串口測試輸入2時的顯示.jpg
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩在线电影 | 国产激情精品一区二区三区 | 中文字幕在线欧美 | 久久在线 | 亚洲欧美在线视频 | 日韩视频一区 | 99re在线| 欧美日韩国产精品激情在线播放 | 国产精品久久亚洲7777 | 久久久久久国产免费视网址 | 在线欧美亚洲 | 玖玖视频国产 | 99精品国产成人一区二区 | 亚欧精品 | 日韩精品在线观看视频 | 在线视频91| 视频1区2区 | 淫片专区 | 激情网站| 亚洲精品一区二区三区蜜桃久 | 99综合| 亚洲精品免费观看 | 亚洲精品成人网 | 午夜丁香视频在线观看 | 欧美自拍日韩 | 久热国产在线 | av av在线 | 日本黄视频在线观看 | 综合自拍| 日韩精品成人 | 九色在线观看 | 久久久国产精品 | 久久久久99 | 国产美女黄色片 | 国产精品美女久久久 | 最新免费视频 | 瑟瑟免费视频 | 日韩高清国产一区在线 | 一区二区成人 | 久久久久久久久久久高潮一区二区 | 精品久久久久久红码专区 |