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

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窗體應用程序(.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ā)板程序,這個比較簡單,大家應該都會吧。(●'?'●)

void USART1_IRQHandler(void)//串口1中斷服務程序{ 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);//開始計時 } }} ///////////////////////////////////////////////////////////////////////////////////// //串口服務函數(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

    文章

    24327

    瀏覽量

    683727
  • STM32
    +關(guān)注

    關(guān)注

    2301

    文章

    11073

    瀏覽量

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

    關(guān)注

    34

    文章

    1653

    瀏覽量

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

    關(guān)注

    1

    文章

    109

    瀏覽量

    44022

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    串口到底是個啥?#串口通訊 #電路知識 #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 ?852次閱讀
    微軟<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ù)、串口通訊指令、應用方向、等內(nèi)容
    的頭像 發(fā)表于 07-24 11:35 ?381次閱讀
    通用MCU語音芯片支持<b class='flag-5'>串口</b>+AT指令485<b class='flag-5'>通訊</b>

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

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

    第十四章 USART——串口通訊

    本章介紹了USART串口通訊,含物理層(RS-232、TTL電平)、協(xié)議層(波特率、數(shù)據(jù)幀),及W55MH32的USART功能與應用。
    的頭像 發(fā)表于 06-14 16:30 ?1334次閱讀
    第十四章 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

    STM32串口下載軟件(FLYMCU)

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

    Labview串口通訊,使用SerialPort

    在項目開開發(fā)的時候難免需要使用到串口,那么有兩個選擇一是使用VISA進行串口通訊,二使用SerialPort進行串口通訊等。當然還有其它的方
    發(fā)表于 03-08 18:38

    Visual Studio中運行Hello分類樣本 ,僅在Visual Studio輸出中收到錯誤消息,怎么解決?

    Visual Studio* 中運行 Hello 分類樣本 ,僅在 Visual Studio* 輸出中收到錯誤消息: Exception thrown
    發(fā)表于 03-05 08:16

    串口通訊隔離器的定義與作用

      在現(xiàn)代工業(yè)自動化、通信系統(tǒng)和嵌入式設(shè)備中,串口通訊(Serial Communication)是一種常見的數(shù)據(jù)傳輸方式。由于其簡單、可靠且成本低廉,串口通訊被廣泛應用于各種設(shè)備之間
    的頭像 發(fā)表于 02-06 16:01 ?1787次閱讀

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

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

    6軸控制程序,帶串口通訊

    6軸控制程序,帶串口通訊
    發(fā)表于 11-09 14:08 ?0次下載