在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

Visual Studio 2019 +STM32實現串口通訊

Q4MP_gh_c472c21 ? 來源:21ic資深壇友劉東君 ? 作者:21ic資深壇友劉東君 ? 2021-03-26 14:05 ? 次閱讀

1.下載 免費版 Visual Studio 2019 并進行安裝visualstudio.microsoft.com/zh-hans/

daadf568-8dcb-11eb-8b86-12bb97331649.png

2.雙擊軟件創建項目

daebd6b2-8dcb-11eb-8b86-12bb97331649.png

3.選擇Windows窗體應用程序(.NET Framework)創建項目。

db06d14c-8dcb-11eb-8b86-12bb97331649.png

4.項目創建完成,初始界面。

dba655c8-8dcb-11eb-8b86-12bb97331649.png

5.選擇左側的工具欄,選擇 組件,然后雙擊 串口組件將串口添加進入項目。

dccc68ac-8dcb-11eb-8b86-12bb97331649.png

6.點擊鼠標右鍵,修改串口模塊的屬性,包括 波特率等,本實驗采用默認。

dcfc2790-8dcb-11eb-8b86-12bb97331649.png

7.雙擊串口模塊,添加數據接收中斷函數

dd496316-8dcb-11eb-8b86-12bb97331649.png

8.添加按鈕模塊,控制STM32開發板LED燈的亮滅。

dd83a774-8dcb-11eb-8b86-12bb97331649.png

9.好的現在基本界面與模塊添加完成,開始寫程序,添加程序各種變量:

//串口通訊命令 public static byte[] SendOrder = new byte[3] { 0x5A,0x00, 0xA5 }; //中間為命令,頭尾為校驗 00 關燈 01開燈 02關蜂鳴器 03開蜂鳴器 // 串口接收 public static byte[] revcmd = new byte[3];

10. 開燈LED0程序如下:

private void button1_Click(object sender, EventArgs e) //開燈LED0 { try { if (serialPort1.IsOpen) { serialPort1.Close(); } serialPort1.Open(); //打開串口 serialPort1.DiscardInBuffer();//清空緩沖區數據 SendOrder[1] = 0x01;//發送開燈命令 serialPort1.Write(SendOrder, 0, 3);//寫入串口緩沖區 } catch { MessageBox.Show("請檢查串口1是否打開"); } }

11.關燈LED0程序如下:

private void button2_Click(object sender, EventArgs e) { try { if (serialPort1.IsOpen) { serialPort1.Close(); } serialPort1.Open(); //打開串口 serialPort1.DiscardInBuffer();//清空緩沖區數據 SendOrder[1] = 0x00;//發送開燈命令 serialPort1.Write(SendOrder, 0, 3);//寫入串口緩沖區 } catch { MessageBox.Show("請檢查串口1是否打開"); } }

12.蜂鳴器程序留給大家寫,偷個懶(●'?'●)

13.串口接收函數如下:

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) //串口接收中斷 { try { serialPort1.Read(revcmd, 0, 3); // 將接收緩沖區輸入revcmd } catch { MessageBox.Show("請檢查串口1是否打開"); } this.Invoke(new EventHandler(ComService)); //調用事件處理函數 } 15.串口接收數據處理函數如下: private void ComService(object sender, EventArgs e) { if ((revcmd[0] == 0x5A) & (revcmd[1] == 0x01) & (revcmd[2] == 0xA5)) { button5.Text = "燈開了"; button5.BackColor = Color.FromArgb(255, 0, 0); //設置控件顏色為紅色 // button5.BackColor = Color.FromKnownColor(KnownColor.LightSeaGreen);; //設置控件顏色為 } if ((revcmd[0] == 0x5A) & (revcmd[1] == 0x00) & (revcmd[2] == 0xA5)) { button5.Text = "燈關了"; button5.BackColor = Color.FromArgb(224, 224, 224);//灰色 } }

14.上位機程序編寫完成。

15.下面開始寫STM32開發板程序,這個比較簡單,大家應該都會吧。(●'?'●)

void USART1_IRQHandler(void)//串口1中斷服務程序{ u8 res; USART1_StartFlag=1; if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { res=USART_ReceiveData(USART1); //讀接收到的字節,同時相關標志自動清除 if(USART1_RX_CNT<100) { USART1_RX_BUFF[USART1_RX_CNT]=res; USART1_RX_CNT++; TIM_ClearITPendingBit(TIM7,TIM_IT_Update);//清除定時器溢出中斷 TIM_SetCounter(TIM7,0);//當接收到一個新的字節,將定時器7復位為0,重新計時(相當于喂狗) TIM_Cmd(TIM7,ENABLE);//開始計時 } }} ///////////////////////////////////////////////////////////////////////////////////// //串口服務函數void USART1RX_Service(void){ if(USART1_FrameFlag==1) { USART1_StartFlag=0; USART1_FrameFlag=0; //復位幀結束標志 USART1_RX_CNT=0;//接收計數器清零 if((USART1_RX_BUFF[0]==0x5A)&&(USART1_RX_BUFF[1]==0x00)&&(USART1_RX_BUFF[2]==0xA5)) //通訊測試 5A 00 A5 { SendBUF[0]=0x5A; SendBUF[1]=0x00; SendBUF[2]=0xA5; LED0=1; USART1_SendData(SendBUF,3); } if((USART1_RX_BUFF[0]==0x5A)&&(USART1_RX_BUFF[1]==0x01)&&(USART1_RX_BUFF[2]==0xA5)) //通訊測試 5A 00 A5 { SendBUF[0]=0x5A; SendBUF[1]=0x01; SendBUF[2]=0xA5; LED0=0; USART1_SendData(SendBUF,3); } }}

16.下面進行配置電腦,由于水平有限,本程序需要設置電腦的COM口且需要改為COM1如下圖:

de15e242-8dcb-11eb-8b86-12bb97331649.png

或者更改VS2019中串口模塊的屬性,如下:

de3fe8bc-8dcb-11eb-8b86-12bb97331649.png

17.好的完成了,謝謝大家。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23322

    瀏覽量

    661943
  • STM32
    +關注

    關注

    2270

    文章

    10915

    瀏覽量

    356778
  • 串口通信
    +關注

    關注

    34

    文章

    1627

    瀏覽量

    55613
  • Com
    Com
    +關注

    關注

    1

    文章

    107

    瀏覽量

    40668

原文標題:Visual Studio 2019 +STM32實現串口通訊

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Vector推出一套基于Visual Studio Code的免費插件

    在汽車軟件開發過程中,除使用MATLAB開發算法外,專業開發者也偏向使用Visual Studio Code來開發代碼,其中軟件測試用例的編寫是確保系統穩定性和可靠性的重要環節。傳統的CAPL腳本
    的頭像 發表于 11-24 14:15 ?505次閱讀
    Vector推出一套基于<b class='flag-5'>Visual</b> <b class='flag-5'>Studio</b> Code的免費插件

    stm32串口燒錄怎么設置

    準備工作 確保您擁有STM32開發板和相應的硬件設備,如USB轉串口模塊。 安裝STM32CubeMX和STM32CubeProgrammer軟件,這些是ST官方提供的工具,用于配置和
    的頭像 發表于 08-22 09:33 ?1723次閱讀

    LABVIEW串口通訊

    labview實現串口通訊
    發表于 08-19 14:37 ?7次下載

    求助,用visual studio 2017開發esp32的問題求解

    各位好,esp32開發我這邊用的是visual studio 2017+visual的形式,我在打開工程樣例文件后,編譯通過并成功燒錄,但是右擊“source Files”文件夾想添加一個C文件
    發表于 06-25 07:07

    Visual Studio下無法安裝ESP-IDF,提示Invalid ESP-IDF的原因?

    求助:Visual Studio下無法安裝ESP-IDF,提示Invalid ESP-IDF! idf_versions.txt has (1) KB idf_versions.txt
    發表于 06-14 06:05

    如何在沒有安裝visual studio或EZ-USB FX3 SDK的win10電腦上使用FwDownloadApp.exe?

    我想在沒有安裝 visual studio 或 EZ-USB FX3 SDK 的 win10 電腦上使用 FwDownloadApp.exe。 我看到了沒有 msvcp90.dll
    發表于 05-30 08:31

    STM32F407VE使用Visual studio 2017 + VisualGDB 5.4版調試程序,運行時報錯的原因?

    STM32F407VE板子使用Visual studio 2017 + VisualGDB 5.4版調試程序 運行到 void *p; sscanf(name, \":%p\"
    發表于 04-24 07:58

    求助,關于STM32 USB轉串口與其他單片機通訊問題求解

    實現stm32f103在usb轉串口后,跟其他的單片機 通訊,可以實現嗎? 如果用stm32f
    發表于 04-23 07:10

    用Cubeprogrammer中的API串口Visual Studio環境設置按說明書配置的,編譯有錯誤的原因?

    用Cubeprogrammer中的API 串口Visual Studio環境設置按說明書配置的,編譯還是有錯誤,有知道問題的嗎?
    發表于 03-29 08:46

    STM32怎么實現模擬串口

    STM32有沒有官方的實現模擬串口的實例啊?硬件把串口用完了,然后還有一個串口接到了普通IO上,叫我模擬一個
    發表于 03-28 08:10

    工業串口設備通訊神器:串口服務器CS64J

    在當今工業物聯網應用中,串口服務器的應用非常普遍。無論是RS485還是RS232串口通訊串口服務器都能夠輕松實現虛擬
    的頭像 發表于 03-21 17:09 ?518次閱讀
    工業<b class='flag-5'>串口</b>設備<b class='flag-5'>通訊</b>神器:<b class='flag-5'>串口</b>服務器CS64J

    如何實現STM32 USB host對另外的一個USB虛擬串口設備的通訊

    如何實現STM32 USB host 對另外的一個USB 虛擬串口設備的通訊
    發表于 03-07 06:10

    為什么RTThread STUDIO生成的工程啟動終端串口不顯示串口號?

    RTT STUDIO生成的工程啟動終端串口不顯示串口號。 單片機 STM32F091CBT RTT STUDIO 版本 2.2.7
    發表于 02-29 07:37

    stm32f103zet用rtthread studio生成帶finsh的項目程序,串口輸入help沒有反應是為什么?

    直接用rt thread studio 生成 帶finsh 的 項目程序,串口輸入help 沒有反應,只是一直有hello 字符串輸出。 芯片是stm32f103zet ,這是為什么啊
    發表于 02-20 08:14

    串口通訊時的數據幀格式和通訊協議有什么區別?

    串口通訊時的數據幀格式和通訊協議是兩個不同的概念,它們在串口通訊中起著不同的作用,但都是為了實現
    的頭像 發表于 01-30 09:21 ?2121次閱讀
    主站蜘蛛池模板: 狠狠色狠狠干| 亚洲男同tv| 亭亭色| 在线啪| 午夜色网站| 深爱五月婷婷| 在线观看你懂得| 亚洲欧美日本综合| 色宅男午夜电影在线观看| 日本最好的免费影院| 亚洲综合婷婷| 亚洲香蕉电影| 三级免费观看| 久久国产乱子伦精品免费强| 国产精品欧美一区二区三区 | 一区二区三区视频在线观看| 视频在线观看一区二区| 伊人婷婷涩六月丁香七月| 色偷偷人人| 久久婷婷六月| 一级特黄a免费大片| 奇米色88欧美一区二区| 亚洲综合色dddd26| 久久激情网| 视频在线欧美| 精品国产三级a∨在线| 久久这里只有精品免费播放| 日本久久综合视频| 久久久久久久久综合影视网| 91九色成人| 婷婷网址| 国产激情久久久久影院小草| 国产精品嫩草影院人体模特| 一区二区不卡视频在线观看| 一级a毛片免费| 欧美日韩国产在线一区| 你懂的在线视频网站| 美女全黄网站免费观看| ts人妖在线观看| 亚洲精品综合网在线8050影院| 狠狠干天天|