国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于MATLAB App搭建STM32用戶交互界面(1)——MATLAB與STM32串口通訊的實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了基于MATLAB App搭建STM32用戶交互界面(1)——MATLAB與STM32串口通訊的實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????最近幾個(gè)月,DIY了塊板子,選用的芯片是STM32F407,該板子與上位機(jī)(也就是電腦)的通訊方式有兩種,一是用串口發(fā)送程序進(jìn)程數(shù)據(jù),二是用網(wǎng)口發(fā)送原始數(shù)據(jù)。在調(diào)試時(shí),需要用XCOM接收串口信息、用XNET接收網(wǎng)口信息。由于這塊板子是用來學(xué)術(shù)研究的,數(shù)據(jù)每次都要拷到MATLAB中分析,非常的不方便。于是想一步到位,使用 MATLAB App 制作一個(gè)GUI實(shí)現(xiàn)與單片機(jī)的交互。

????????本系列文檔將記錄該用戶界面的搭建過程,本人才疏學(xué)淺,如有錯(cuò)誤,還請(qǐng)指正,廢話不多說,直接上本人的移植記錄。

一、 MATLAB App設(shè)計(jì)

????????首先打開MATLAB軟件,在命令行窗口輸入“appdesigner” 打開MATLAB App,該界面還是很友好的,如下圖所示,用“文本區(qū)域”、“下拉框”、“按鈕”組件簡(jiǎn)單搭建了一個(gè)界面。

matlab 串口通訊程序,STM32學(xué)習(xí),stm32,嵌入式硬件,單片機(jī)

?????????網(wǎng)上有不少關(guān)于MATLAB與單片機(jī)的串口通訊介紹資料,講的也很詳細(xì)。MATLAB :【11】一文帶你讀懂serialport串口收發(fā)原理與實(shí)現(xiàn)_Alex-YiWang的博客-CSDN博客https://blog.csdn.net/Alex497259/article/details/125922427

? ? ? ? ?但有一個(gè)很奇怪的Bug,在 MATLAB App 中,不管是用 serial 還是 serialport 函數(shù),串口始終跳不進(jìn)回調(diào)函數(shù),同樣的代碼在.m文件卻可以正常運(yùn)行。本人能力有限,哪位大佬知道原因還請(qǐng)告知。

? ? ? ? 不斷調(diào)試,最終選擇了用 serial 函數(shù)加上輪詢實(shí)現(xiàn)與單片機(jī)的交互,所設(shè)計(jì)的串口函數(shù)代碼如下:

properties (Access = public)
        USART_SerialObj      % 串口結(jié)構(gòu)體
end 


methods (Access = private)
        
        %=========================串口初始化函數(shù)==========================
        function USART_startSerial(app, ~)
            delete(instrfindall);                               %刪除串口
            app.USART_SerialObj = serial('COM4','BaudRate',115200,'StopBits',1,'Parity','none');       %新建串口
            fopen(app.USART_SerialObj);                         %打開串口
            fprintf(app.USART_SerialObj, '%s', 'USART_OK');     %發(fā)送握手信息
        end

        %======================串口接收回調(diào)函數(shù)輪詢=======================
        function USART_readSerial(app,~)
            while app.USART_SerialObj.BytesAvailable == 0                   % 循環(huán)檢查串口是否有新數(shù)據(jù)
                pause(0.1);
            end    
            data = fread(app.USART_SerialObj, app.USART_SerialObj.BytesAvailable, 'char');                  % 讀取串口接收到的數(shù)據(jù)
            app.USART_Rev_Data.Value = [app.USART_Rev_Data.Value;convertCharsToStrings(char(data'))];       % 顯示接收到的數(shù)據(jù) 讀者根據(jù)自身代碼修改
            app.USART_readSerial();                                                                         % 繼續(xù)循環(huán)讀取數(shù)據(jù)
        end
end

二、單片機(jī)程序設(shè)計(jì)

????????單片機(jī)上的串口按正常流程調(diào)用串口初始化函數(shù),這里我添加的了一個(gè)握手信號(hào),握手程序的代碼如下:

u8 USART_RX_BUF[USART_REC_LEN];     //接收緩沖,最大USART_REC_LEN個(gè)字節(jié).
//接收狀態(tài)
//bit15,	接收完成標(biāo)志
//bit14,	接收到0x0d
//bit13~0,	接收到的有效字節(jié)數(shù)目
u16 USART_RX_STA = 0;       //接收狀態(tài)標(biāo)記	

#define PHY_USART_PC_HANDSHAKE  "USART_OK"             //定義上位機(jī)握手信號(hào)

//串口上位機(jī)握手
unsigned char PhyUart_PC_handshake(void)
{
    u8 len,t;
    char data_Rev[16];

    if(USART_RX_STA&0x8000)
    {					   
        len=USART_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
            
        for(t = 0;t<len;t++)
            data_Rev[t] = USART_RX_BUF[t];
        for(t = len;t<16;t++)   
            data_Rev[len] = '\0';
            
        if(strcmp(data_Rev,PHY_USART_PC_HANDSHAKE) == 0)    //與上手機(jī)握手驗(yàn)證
        {
            USART_RX_STA=0;
            return 1;
        }
        else
        {
            USART_RX_STA=0;
            return 0;
        }
    }
}

三、程序運(yùn)行效果

????????板子連接上電腦,選擇好串口和波特率,點(diǎn)擊連接,串口成功接收到了板子發(fā)送來的信息。

matlab 串口通訊程序,STM32學(xué)習(xí),stm32,嵌入式硬件,單片機(jī)文章來源地址http://www.zghlxwxcb.cn/news/detail-696764.html

到了這里,關(guān)于基于MATLAB App搭建STM32用戶交互界面(1)——MATLAB與STM32串口通訊的實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32連接OV2640攝像頭串口方式在PyQt5界面上展示視頻界面 以及使用MQTT方式進(jìn)行展示

    STM32連接OV2640 視頻源接入到PyQt5界面中 作為AI模型的輸入,視頻流是非常重要的。在本文中,我們將介紹如何將STM32連接到OV2640攝像頭,并將視頻流接入到PyQt5界面中。 硬件連接 首先,我們需要將OV2640攝像頭連接到STM32上。我們可以使用以下連接方式: OV2640 | STM32 ------|------

    2024年02月06日
    瀏覽(25)
  • 【基于STM32的串口通信----用軟件模擬】

    【基于STM32的串口通信----用軟件模擬】

    注: 這是我上班第一次學(xué)習(xí)串口通信,此文章基于STM32F4系列單片機(jī)。 1、平常所用串口通信都是用的單片機(jī)外設(shè),是單片機(jī)內(nèi)部自帶的模塊,只需要配置好初始化就可以使用,在這里老師為了更好的讓我們理解其原理所以讓我們模擬串口通信; 2、軟件模擬串口通信就是用普

    2024年02月05日
    瀏覽(25)
  • 基于stm32與串口通信的freeMaster使用

    基于stm32與串口通信的freeMaster使用

    ????????從安裝驅(qū)動(dòng)程序FMASTERSCIDRV.exe的安裝路徑上獲取源碼,如圖1所示。其中src_common文件夾里放著串行通信通用的驅(qū)動(dòng)源碼,將其全部復(fù)制到自己項(xiàng)目的文件中。src_platforms文件夾里放著與硬件平臺(tái)相關(guān)的示例源代碼,如圖3、4所示,我們選擇基于Arm??Cortex?-A、Cortex-R和

    2024年02月09日
    瀏覽(107)
  • 【STM32開發(fā)環(huán)境搭建】 - st-link驅(qū)動(dòng)安裝和串口驅(qū)動(dòng)安裝

    【STM32開發(fā)環(huán)境搭建】 - st-link驅(qū)動(dòng)安裝和串口驅(qū)動(dòng)安裝

    下載地址:https://download.csdn.net/download/weixin_39035140/86248921 包含軟件如下: 1、下載線我們使用了st-link,為了能夠下載程序到開發(fā)板,需要先安裝st-link驅(qū)動(dòng)。打開設(shè)備管理器,可以通過熱插拔法確認(rèn)是哪一個(gè)設(shè)備(STM32 STLink顯示感嘆號(hào)就是缺少驅(qū)動(dòng)),右擊更新驅(qū)動(dòng),選擇瀏覽

    2024年02月12日
    瀏覽(29)
  • stm32基于UART串口實(shí)現(xiàn)modbusRTU(軟件方式)

    stm32基于UART串口實(shí)現(xiàn)modbusRTU(軟件方式)

    ?此程序中, 串口通信方式: 115200-n-8-1, modbus協(xié)議要求幀與幀之間的間隔必須大于3.5個(gè)字符時(shí)間間隙作為幀與幀之間的分割.? 字符時(shí)間計(jì)算公式: interval_time?= character_interval * 8?/ baud_speed?* 10 ^ 6 (微秒) 1.1 設(shè)置定時(shí)器, 超時(shí)時(shí)間為interval_time. 1.2 設(shè)置stm32的uart串口接收數(shù)據(jù)中斷, 每

    2024年02月15日
    瀏覽(21)
  • 【單片機(jī)】基于STM32的UART串口通信

    【單片機(jī)】基于STM32的UART串口通信

    簡(jiǎn)單講解一下UART通信協(xié)議,以及UART能夠?qū)崿F(xiàn)的一些功能,還有有關(guān)使用STM32CubeMX來配置芯片的一些操作。實(shí)驗(yàn)內(nèi)容基于 正點(diǎn)原子精英板 開發(fā)板,單片機(jī)芯片為 STM32F103ZET6 。 在后面我會(huì)以我使用的STM32F429開發(fā)板來舉例講解(其他STM32系列芯片大多數(shù)都可以按照這些步驟來操作

    2024年01月17日
    瀏覽(96)
  • 【STM32】-串口開發(fā)經(jīng)驗(yàn)分享-基于RTOS+空閑中斷

    【STM32】-串口開發(fā)經(jīng)驗(yàn)分享-基于RTOS+空閑中斷

    目錄 1. 概述? ?? 2.串口介紹 2.1 原理框圖 2.2 RS-232C 2.3 RS-422 2.4 RS-485 2.5 UART 3. STM32 USART介紹 4. CubeMx生成Uart初始化代碼 4.1 NewProject選擇單片機(jī)型號(hào) 4.2 設(shè)置rcc時(shí)鐘 ?4.3 設(shè)置Usart 4.4 初始化代碼 4.5 注意 5 工程源碼解析 5.1 程序架構(gòu) 5.2 源碼 fml_ring_buffer.c fml_usart.c app_usart_task.c stm3

    2023年04月16日
    瀏覽(25)
  • STM32F4 基于USART串口的藍(lán)牙通信

    STM32F4 基于USART串口的藍(lán)牙通信

    目錄 一、硬件資源 連接方案 其他配置 二、實(shí)驗(yàn)原理 基本定義 USART介紹 USART工作原理 數(shù)據(jù)發(fā)送 數(shù)據(jù)接收 藍(lán)牙HM-10配置 三、代碼部分 usart.c usart.h Serial.c Serial.h main.c 結(jié)語 STM32F401,OLED,藍(lán)牙hm10 連接方案 設(shè)備1的TX與設(shè)備2的RX連接,這樣設(shè)備1發(fā)送的數(shù)據(jù)可以被設(shè)備2接收到。

    2024年01月17日
    瀏覽(52)
  • 基于STM32F1以及STM32CubeMx實(shí)現(xiàn)串口中斷通訊(字符串發(fā)送與接收)

    基于STM32F1以及STM32CubeMx實(shí)現(xiàn)串口中斷通訊(字符串發(fā)送與接收)

    首先選好自己的板子并打開軟件設(shè)置,本實(shí)驗(yàn)基于STM32F103ZET6實(shí)現(xiàn),打開軟件后如圖: 打開外部高速晶振,然后接著配置時(shí)鐘: 將時(shí)鐘頻率修改為72MHz,接著設(shè)置接線方式為SW 接下來需要使用串口中斷通訊,打開我們的串口設(shè)置并打開中斷 這里波特率設(shè)置為115200,數(shù)據(jù)位為

    2024年02月09日
    瀏覽(25)
  • STM32基于HAL庫的串口接受中斷和空閑中斷

    在通信方面。UART由于全雙工通信,可以同時(shí)接受數(shù)據(jù)和發(fā)送數(shù)據(jù)而被廣泛使用。 而接受數(shù)據(jù)則又有很多種方法 比如: 1根據(jù)結(jié)束符判斷,數(shù)據(jù)是字符串形式,所以一般串口接受的接受符就是 \\\"rn\\\"? 換成16進(jìn)制ascil碼顯示就是 0X0D? ?0X0A (對(duì)應(yīng)rn) ?2定時(shí)器中斷,設(shè)計(jì)\\\"喂狗信號(hào)量

    2023年04月08日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包