chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

上位機制作方案

汽車電子技術(shù) ? 來源:物聯(lián)網(wǎng)知識 ? 作者: 跋扈洋 ? 2023-01-20 16:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

需求

我們在平時使用單片機制作項目時,總是希望能夠?qū)崟r顯示一些數(shù)據(jù),并將這些數(shù)據(jù)進行處理,從而進行使用。那么上位機就必不可少了。上位機是指可以直接發(fā)出操控命令的計算機,一般是PC屏幕上顯示各種信號變化。下位機是直接控制設(shè)備獲取設(shè)備狀況的計算機,一般是單片機之類的。上位機發(fā)出的命令首先給下位機,下位機再根據(jù)此命令解釋成相應(yīng)時序信號直接控制相應(yīng)設(shè)備。下位機不時讀取設(shè)備狀態(tài)數(shù)據(jù)(一般為模擬量),轉(zhuǎn)換成數(shù)字信號反饋給上位機。簡言之如此,實際情況千差萬別,但萬變不離其宗:上下位機都需要編程,都有專門的開發(fā)系統(tǒng)。

在概念上,控制者和提供服務(wù)者是上位機,被控制者和被服務(wù)者是下位機,也可以理解為主機和從機的關(guān)系,但上位機和下位機是可以轉(zhuǎn)換的。

那么我今天就來制作這樣一款上位機,主要用來實現(xiàn)獲取開發(fā)板的數(shù)據(jù),并進行判別,顯示不同的提示。還可以發(fā)送給單片機相關(guān)數(shù)據(jù)。

準備

  1. 帶串口的單片機(用來進行測試,沒有也行)
  2. Visual Studio 2019
  3. 設(shè)置波特率等串口參數(shù)
  4. 打開串口
  5. 檢測串口
  6. 發(fā)送數(shù)據(jù)
  7. 接收數(shù)據(jù)
  8. 調(diào)整格式
  9. 檢測收發(fā)數(shù)據(jù)的字節(jié)總量
  10. 清空接收區(qū)和發(fā)送區(qū)
  11. 對收到的數(shù)據(jù)進行處理
  12. 設(shè)置串口數(shù)據(jù)緩沖等待時間

界面設(shè)計

微信截圖_20230105161930.png

關(guān)鍵程序

打開串口

if (cbbComList.Items.Count <= 0)
            {
                MessageBox.Show("沒有發(fā)現(xiàn)串口,請檢查線路!");
                return;
            }


            if (ComDevice.IsOpen == false)
            {
                ComDevice.PortName = cbbComList.SelectedItem.ToString();
                //ComDevice.BaudRate = Convert.ToInt32(cbbBaudRate.SelectedItem.ToString());
                ComDevice.BaudRate = Convert.ToInt32(cbbBaudRate.Text.ToString());
                ComDevice.Parity = (Parity)Convert.ToInt32(cbbParity.SelectedIndex.ToString());
                ComDevice.DataBits = Convert.ToInt32(cbbDataBits.SelectedItem.ToString());
                ComDevice.StopBits = (StopBits)Convert.ToInt32(cbbStopBits.SelectedItem.ToString());
                time = Convert.ToInt32(cbBox_time.Text.Trim());
                try
                {
                    ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived);
                    ComDevice.Open();
                    btnSend.Enabled = true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                btnOpen.Text = "關(guān)閉串口";
                pictureBox1.BackgroundImage = Properties.Resources.green;
            }
            else
            {
                try
                {
                    ComDevice.DataReceived -= new SerialDataReceivedEventHandler(Com_DataReceived);//取消綁定COM接收
                    Thread.Sleep(1000);
                    ComDevice.Close();
                    btnSend.Enabled = false;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                btnOpen.Text = "打開串口";
                pictureBox1.BackgroundImage = Properties.Resources.red;
            }
            cbbComList.Enabled = !ComDevice.IsOpen;
            cbbBaudRate.Enabled = !ComDevice.IsOpen;
            cbbParity.Enabled = !ComDevice.IsOpen;
            cbbDataBits.Enabled = !ComDevice.IsOpen;
            cbbStopBits.Enabled = !ComDevice.IsOpen;
            cbBox_time.Enabled = !ComDevice.IsOpen;

發(fā)送數(shù)據(jù)

if (ComDevice.IsOpen)
            {
                try
                {
                    ComDevice.Write(data, 0, data.Length);//發(fā)送數(shù)據(jù)
                    return true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("串口未打開", "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return false;

接收數(shù)據(jù)

//等待緩沖區(qū)數(shù)據(jù)
            Thread.Sleep(time);


            byte[] ReDatas = new byte[ComDevice.BytesToRead];
            byte[] DIY = new byte[ComDevice.BytesToRead];
            DIY[0] =0x6F;
            ComDevice.Read(ReDatas, 0, ReDatas.Length);//讀取數(shù)據(jù)
            if (ReDatas[0] ==0x63 )
            {
                MessageBox.Show("正確");
            }
            else
                MessageBox.Show("錯誤");
            //丟棄接收緩沖區(qū)數(shù)據(jù)
            ComDevice.DiscardInBuffer();


            this.AddData(ReDatas);//輸出數(shù)據(jù)

實現(xiàn)頁面

微信截圖_20230105161930.png

微信截圖_20230105161930.png

微信截圖_20230105161930.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6074

    文章

    45324

    瀏覽量

    663001
  • 上位機
    +關(guān)注

    關(guān)注

    27

    文章

    992

    瀏覽量

    56692
  • 下位機
    +關(guān)注

    關(guān)注

    0

    文章

    96

    瀏覽量

    19425
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如圖,關(guān)于上位機制作

    像這種上位機的軟件是怎樣制作的。
    發(fā)表于 02-07 13:10

    求助 零基礎(chǔ) 想學(xué)基于COM通訊(scpi指令)的上位機制作

    求助 零基礎(chǔ) 想學(xué)基于COM通訊(scpi指令)的上位機制作有什么好的資料學(xué)習
    發(fā)表于 12-28 15:49

    電流檢測裝置樣機制作

    想用磁場傳感器設(shè)計制作一個電流監(jiān)測裝置,有基本原理,要在哪里找技術(shù)支撐來實現(xiàn)樣機制作?
    發(fā)表于 04-16 21:16

    單片機制作的高頻正弦波逆變器

    單片機制作的高頻正弦波逆變器方案
    發(fā)表于 09-21 07:13

    使用Stellaris(群星)單片機制作自動小車

    使用Stellaris(群星)單片機制作自動小車 本文講述如何使用Stellaris(群星)單片機制作自動小車
    發(fā)表于 04-06 17:28 ?25次下載

    807膽機制作電路圖

    807膽機制作電路圖
    發(fā)表于 02-03 17:02 ?1.2w次閱讀
    807膽<b class='flag-5'>機制作</b>電路圖

    電魚機制作線路圖

    電魚機制作線路圖
    發(fā)表于 07-30 17:21 ?7.2w次閱讀
    電魚<b class='flag-5'>機制作</b>線路圖

    簡易鉆孔機制作

    簡易鉆孔機制作
    發(fā)表于 09-08 17:15 ?1662次閱讀
    簡易鉆孔<b class='flag-5'>機制作</b>

    單片機制作繼電器 【匯編版】

    單片機制作繼電器 【匯編版】單片機制作繼電器 【匯編版】單片機制作繼電器 【匯編版】
    發(fā)表于 12-29 13:50 ?0次下載

    單片機制作繼電器 【C語言版】

    單片機制作繼電器 【C語言版】單片機制作繼電器 【C語言版】單片機制作繼電器 【C語言版】單片機制作繼電器 【C語言版】
    發(fā)表于 12-29 13:53 ?0次下載

    單片機制作譯碼器實驗程序+文檔

    單片機制作譯碼器實驗程序+文檔 單片機制作譯碼器實驗程序+文檔 單片機制作譯碼器實驗程序+文檔
    發(fā)表于 12-29 15:51 ?3次下載

    高頻電魚機制作

    本文介紹高頻電魚機制作方法,包含高頻電魚機電路圖以及高頻電魚機元器件清單。
    發(fā)表于 08-27 17:10 ?2.3w次閱讀
    高頻電魚<b class='flag-5'>機制作</b>

    少年收音機制作

    少年收音機制作
    發(fā)表于 07-08 12:00 ?62次下載

    礦石收音機制作詳解

    礦石收音機制作詳解
    發(fā)表于 12-27 17:52 ?107次下載

    使用visual studio制作上位

    使用visual studio 制作上位機使用visual studio 制作上位機 1.新建工程 2.放置組件,組件,按鈕等 3.放置串口,放置定時器! 4.串口相關(guān)設(shè)置 搜索串口
    發(fā)表于 05-10 11:00 ?11次下載
    使用visual studio<b class='flag-5'>制作</b><b class='flag-5'>上位</b>機