91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Visual Studio 2019 +STM32實現(xiàn)串口通訊

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.雙擊軟件創(chuàng)建項目

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

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

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

4.項目創(chuàng)建完成,初始界面。

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

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

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

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

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

7.雙擊串口模塊,添加數(shù)據(jù)接收中斷函數(shù)

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

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

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

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

//串口通訊命令 public static byte[] SendOrder = new byte[3] { 0x5A,0x00, 0xA5 }; //中間為命令,頭尾為校驗 00 關(guān)燈 01開燈 02關(guān)蜂鳴器 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();//清空緩沖區(qū)數(shù)據(jù) SendOrder[1] = 0x01;//發(fā)送開燈命令 serialPort1.Write(SendOrder, 0, 3);//寫入串口緩沖區(qū) } catch { MessageBox.Show("請檢查串口1是否打開"); } }

11.關(guān)燈LED0程序如下:

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

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

13.串口接收函數(shù)如下:

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

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

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

void USART1_IRQHandler(void)//串口1中斷服務(wù)程序{ u8 res; USART1_StartFlag=1; if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET) { res=USART_ReceiveData(USART1); //讀接收到的字節(jié),同時相關(guān)標志自動清除 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);//當接收到一個新的字節(jié),將定時器7復位為0,重新計時(相當于喂狗) TIM_Cmd(TIM7,ENABLE);//開始計時 } }} ///////////////////////////////////////////////////////////////////////////////////// //串口服務(wù)函數(shù)void USART1RX_Service(void){ if(USART1_FrameFlag==1) { USART1_StartFlag=0; USART1_FrameFlag=0; //復位幀結(jié)束標志 USART1_RX_CNT=0;//接收計數(shù)器清零 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.下面進行配置電腦,由于水平有限,本程序需要設(shè)置電腦的COM口且需要改為COM1如下圖:

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

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

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

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

編輯:jq

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

    關(guān)注

    243

    文章

    24626

    瀏覽量

    691242
  • STM32
    +關(guān)注

    關(guān)注

    2310

    文章

    11167

    瀏覽量

    373698
  • 串口通信
    +關(guān)注

    關(guān)注

    34

    文章

    1662

    瀏覽量

    58026
  • Com
    Com
    +關(guān)注

    關(guān)注

    1

    文章

    111

    瀏覽量

    45876

原文標題:Visual Studio 2019 +STM32實現(xiàn)串口通訊

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    使用 Keil Studio for Visual Studio Code開發(fā) STM32 設(shè)備

    ,其中包括 STMicroelectronics 廣泛的 STM32 產(chǎn)品系列。它將 Arm 編譯器的可靠性與成熟度、廣泛的器件支持,與 Visual Studio Code 的靈活性和可擴展性有
    的頭像 發(fā)表于 03-05 17:41 ?2490次閱讀
    使用 Keil <b class='flag-5'>Studio</b> for <b class='flag-5'>Visual</b> <b class='flag-5'>Studio</b> Code開發(fā) <b class='flag-5'>STM32</b> 設(shè)備

    串口調(diào)試助手跟變頻器怎么通訊

    串口調(diào)試助手與變頻器的通訊是工業(yè)自動化領(lǐng)域中常見的技術(shù)操作,其核心在于通過串口協(xié)議實現(xiàn)數(shù)據(jù)的雙向傳輸與控制。本文將圍繞硬件連接、參數(shù)配置、協(xié)議解析及常見問題排查等方面展開詳細說明,幫助
    的頭像 發(fā)表于 03-03 17:05 ?515次閱讀
    <b class='flag-5'>串口</b>調(diào)試助手跟變頻器怎么<b class='flag-5'>通訊</b>

    STM32驅(qū)動串口屏,STM32F103C8T6串口發(fā)送指令控制HMI串口

    僅是一部分常用的基礎(chǔ)指令,更多更仔細的指令或者函數(shù)可以訪問陶晶馳資料官網(wǎng)。 硬件和接線 硬件需要一塊STM32F103C8T6的開發(fā)板,杜邦線諾干,2.4寸串口屏一塊 接線 串口STM32
    的頭像 發(fā)表于 02-10 17:07 ?186次閱讀
    <b class='flag-5'>STM32</b>驅(qū)動<b class='flag-5'>串口</b>屏,<b class='flag-5'>STM32</b>F103C8T6<b class='flag-5'>串口</b>發(fā)送指令控制HMI<b class='flag-5'>串口</b>屏

    串口到底是個啥?#串口通訊 #電路知識 #RS485 #工業(yè)以太網(wǎng)

    串口通訊
    西安阿爾泰電子科技發(fā)展有限公司
    發(fā)布于 :2025年10月16日 18:02:50

    rtstudio是否可像keil加載ini解決虛擬串口與mcu串口通訊?

    ,兩者通過虛擬串口進行通信調(diào)試。 RT-Thread Studio是否也能實現(xiàn)類似的功能? 主要是為解決在沒有實際串口與mcu連接時依然可以給單片機數(shù)據(jù)進行調(diào)試。
    發(fā)表于 10-09 06:23

    微軟Visual Studio 2026 發(fā)布!AI 深度融合、性能提升

    “ ?微軟發(fā)布 Visual Studio 2026 預覽版,新版本以深度融合的 AI Copilot 為核心,結(jié)合全新的 Fluent Design 界面與顯著的性能提升,旨在打造前所未有的智能
    的頭像 發(fā)表于 09-16 11:17 ?2055次閱讀
    微軟<b class='flag-5'>Visual</b> <b class='flag-5'>Studio</b> 2026 發(fā)布!AI 深度融合、性能提升

    RT Thread Studio新建STM32L431RCTx工程,串口無輸出怎么解決?

    又遇到這種鬼問題,采用RT Thread Studio新建了thread通用項目,內(nèi)核版本為5.0.2,芯片型號為STM32L431RCTx,芯片包為0.1.9,建好工程后,程序可以正常運行,寫的閃
    發(fā)表于 09-16 07:24

    studio 構(gòu)建stm32 RTT 工程報錯是為什么?

    使用studio 構(gòu)建STM32F4 工程,什么都沒有動報了以上錯誤.這是為什么 ?
    發(fā)表于 09-12 07:02

    通用MCU語音芯片支持串口+AT指令485通訊

    文檔簡單介紹AD24N的性能參數(shù)、串口通訊指令、應(yīng)用方向、等內(nèi)容
    的頭像 發(fā)表于 07-24 11:35 ?719次閱讀
    通用MCU語音芯片支持<b class='flag-5'>串口</b>+AT指令485<b class='flag-5'>通訊</b>

    PLC之間跨區(qū)域通訊!無線通訊方案全解析

    。 在這種情況下,可以給PLC配備相應(yīng)的無線通訊模塊來實現(xiàn) PLC與PLC無線通訊。 串口無線通訊模塊和以太網(wǎng)無線
    的頭像 發(fā)表于 07-21 16:57 ?847次閱讀
    PLC之間跨區(qū)域<b class='flag-5'>通訊</b>!無線<b class='flag-5'>通訊</b>方案全解析

    第十四章 USART——串口通訊

    本章介紹了USART串口通訊,含物理層(RS-232、TTL電平)、協(xié)議層(波特率、數(shù)據(jù)幀),及W55MH32的USART功能與應(yīng)用。
    的頭像 發(fā)表于 06-14 16:30 ?1839次閱讀
    第十四章 USART——<b class='flag-5'>串口</b><b class='flag-5'>通訊</b>

    如何在Visual Studio 2022中運行FX3吞吐量基準測試工具?

    Visual Studio 2022 中運行此工具的步驟嗎? 此外,是否有我可能錯過的可執(zhí)行文件(例如在 GitHub 上)? 預先感謝您的幫助!
    發(fā)表于 05-13 08:05

    單端信號與差分信號的區(qū)別#單端信號 #差分信號 #串口通訊 #RS232 #RS485

    串口通訊
    安泰小課堂
    發(fā)布于 :2025年04月10日 18:02:00

    STM32串口下載軟件(FLYMCU)

    STM32串口下載軟件(FLYMCU),經(jīng)典版本,親試可用。
    發(fā)表于 04-09 15:59 ?11次下載