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

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

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

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

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

Q4MP_gh_c472c21 ? 來源:21ic資深壇友劉東君 ? 作者:21ic資深壇友劉東君 ? 2021-03-26 14:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.下載 免費(fèi)版 Visual Studio 2019 并進(jìn)行安裝visualstudio.microsoft.com/zh-hans/

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

2.雙擊軟件創(chuàng)建項(xiàng)目

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

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

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

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

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

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

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

6.點(diǎn)擊鼠標(biāo)右鍵,修改串口模塊的屬性,包括 波特率等,本實(shí)驗(yàn)采用默認(rèn)。

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 }; //中間為命令,頭尾為校驗(yàn) 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("請(qǐng)檢查串口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("請(qǐng)檢查串口1是否打開"); } }

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

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

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) //串口接收中斷 { try { serialPort1.Read(revcmd, 0, 3); // 將接收緩沖區(qū)輸入revcmd } catch { MessageBox.Show("請(qǐng)檢查串口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.上位機(jī)程序編寫完成。

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

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

16.下面進(jìn)行配置電腦,由于水平有限,本程序需要設(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    243

    文章

    24596

    瀏覽量

    690908
  • STM32
    +關(guān)注

    關(guān)注

    2309

    文章

    11162

    瀏覽量

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

    關(guān)注

    34

    文章

    1662

    瀏覽量

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

    關(guān)注

    1

    文章

    111

    瀏覽量

    45843

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

    ,其中包括 STMicroelectronics 廣泛的 STM32 產(chǎn)品系列。它將 Arm 編譯器的可靠性與成熟度、廣泛的器件支持,與 Visual Studio Code 的靈活性和可擴(kuò)展性有
    的頭像 發(fā)表于 03-05 17:41 ?1059次閱讀
    使用 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è)自動(dòng)化領(lǐng)域中常見的技術(shù)操作,其核心在于通過串口協(xié)議實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸與控制。本文將圍繞硬件連接、參數(shù)配置、協(xié)議解析及常見問題排查等方面展開詳細(xì)說明,幫助
    的頭像 發(fā)表于 03-03 17:05 ?460次閱讀
    <b class='flag-5'>串口</b>調(diào)試助手跟變頻器怎么<b class='flag-5'>通訊</b>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    。 在這種情況下,可以給PLC配備相應(yīng)的無線通訊模塊來實(shí)現(xiàn) PLC與PLC無線通訊。 串口無線通訊模塊和以太網(wǎng)無線
    的頭像 發(fā)表于 07-21 16:57 ?824次閱讀
    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 ?1799次閱讀
    第十四章 USART——<b class='flag-5'>串口</b><b class='flag-5'>通訊</b>

    如何在Visual Studio 2022中運(yùn)行FX3吞吐量基準(zhǔn)測(cè)試工具?

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

    STM32串口下載軟件(FLYMCU)

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

    Labview串口通訊,使用SerialPort

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