日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

不知道大家有沒(méi)有研究過(guò)PID或者一些更高級(jí)的算法,仿真吧我們根本不知道我們要研究的對(duì)象的系統(tǒng)傳遞函數(shù),不仿真直接在設(shè)備上運(yùn)行如果是復(fù)雜的算法,沒(méi)有借助Matlab的話首先找到合適的C算法就很困難,更別說(shuō)進(jìn)行調(diào)試,數(shù)據(jù)采集可視化以及分析了。今天阿圓就要帶大家把Matlab和STM32結(jié)合起來(lái),強(qiáng)強(qiáng)聯(lián)合!

(為什么阿圓感覺(jué)所有人都可以來(lái)吃嵌入式這碗飯了呢???。浚。??!?)

廢話不多說(shuō),開(kāi)始搞事情!要實(shí)現(xiàn)阿圓這篇文章,首先你得準(zhǔn)備好下面的軟件環(huán)境(今天的文章有點(diǎn)復(fù)雜,圖片有點(diǎn)多,大家注意一點(diǎn)嘍~

  • MATLAB (阿圓用的是MATLAB R2016a)

  • en.stm32-mat_target.zip

  • STM32CubeMX(軟件包看你使用哪個(gè)MCU)

  • KEIL MDK

MATLAB,STM32CubeMX及Keil的下載安裝阿圓不廢話了,自行百度。

en.stm32-mat_target.zip這是個(gè)什么玩意???

這個(gè)其實(shí)相當(dāng)于MATLAB和STM32CubeMX的中間件,用于生成代碼以及工程。根據(jù)ST官方的介紹,它支持

  • Simulink應(yīng)用程序?qū)TM32進(jìn)行配置

  • STM32配置的生成依賴(lài)STM32CubeMX

  • 生成的C代碼依賴(lài)STM32CubeMX HAL 庫(kù)

  • 支持串口RTioStream PIL(Processor In the Loop)

Ok,上下載鏈接

http://www.stmicroelectronics.com.cn/content/ccc/resource/technical/software/sw_development_suite/91/4c/d3/45/f1/83/48/ba/stm32-mat_target.zip/files/stm32-mat_target.zip/_jcr_content/translations/en.stm32-mat_target.zip

這個(gè)STM32MAT/TARGET需要在安裝好MATLAB后安裝,另外大家要注意它安裝的位置

E:MATLABSTM32-MATSTM32 這是阿圓的安裝位置,阿圓的MATLAB安裝在D盤(pán)

好了,安裝好后就可以開(kāi)始啦

[1]打開(kāi)Matlab,設(shè)置好workspace的路徑,非常關(guān)鍵,如果workspace在系統(tǒng)路徑,在后面會(huì)有很多想不到的錯(cuò)誤。

阿圓這里設(shè)置的路徑為E:ProjectMatlabTestworkspace

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

[2]添加 STM32MAT/TARGET路徑,在命令窗口輸入pathtool后會(huì)跳出設(shè)置路徑,點(diǎn)擊[添加并包含子文件夾] 需要添加的路徑為E:MATLABSTM32-MATSTM32

注意,這里有個(gè)坑,添加完后如果直接繼續(xù)后面的步驟會(huì)有問(wèn)題,建議保存后重啟下MATLAB。

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

[3]新建Simulink Model,這里只需要新建一個(gè)空的Model即可

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

[4]在新建的Simulink并進(jìn)行STM32CubeMX工程配置

點(diǎn)擊小齒輪

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

再點(diǎn)擊左側(cè)的Code Generation選擇System target filestm32.tlc(需要點(diǎn)擊Browse進(jìn)行選擇)

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

點(diǎn)擊Comments勾選 上Comments里的Simulink block/Stateflow object comments,不然編譯會(huì)報(bào)錯(cuò),有點(diǎn)奇怪。

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

還沒(méi)完?。▋?nèi)心崩潰。。。。)

點(diǎn)擊STM32 Options設(shè)置好STM32CubeMx Path update,并且勾上(MATLAB可以自動(dòng)識(shí)別,不過(guò)有點(diǎn)慢,最好自己填了)

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

搞定配置!(噓噓噓噓噓噓噓噓噓噓噓噓噓噓噓)

[5]現(xiàn)在來(lái)準(zhǔn)備生成框圖了!

點(diǎn)擊View->Library Browser進(jìn)行庫(kù)的瀏覽

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

拉到最下,這里一定要有Target Support Package – STM32 Adapter

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

STM32_Conifg拖到Simulink(MATLBA基本操作),并雙擊

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

點(diǎn)擊New ioc file生成所需要的一個(gè)工程,這里呢,就是生成普通的工程,完全沒(méi)有什么特別的,生成完工程后點(diǎn)擊

Select STM32 configuration file選中生成的工程的ioc就可以了!

為演示目的,阿圓用的是STM32F437ZGT6,并使用PA1和PA2,目標(biāo)是將PA1配置成輸入,并將值輸出到PA2引腳,就這么簡(jiǎn)單。

STM32CubeMX可關(guān)可不關(guān),不影響使用。

[6]配置最簡(jiǎn)單的系統(tǒng)框圖

GPIO_Read/GPIO_Write拖過(guò)來(lái),雙擊配置

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

會(huì)發(fā)現(xiàn)只有配置好的PIN才能選擇,很方便!

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

最后將兩個(gè)引腳連接在一起!框圖就算好了!

[7]生成KEIL支持的代碼工程,終于到最后一步了

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

等待一會(huì),電腦差的就去休息一下吧,正常的話就會(huì)跳出要

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

打開(kāi)Open Project。

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

工程左側(cè)多了一欄的MATLAB文件夾, 看下代碼MatlabTest.c里的內(nèi)容,確實(shí)是輸入輸出的

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

試試能不能編譯下載!阿圓在MatlabTest.c下了個(gè)斷點(diǎn),編譯運(yùn)行,正常!

「話說(shuō)嵌入式」STM32算法的翅膀之MATLAB

萬(wàn)里長(zhǎng)征第一步,終于把MATLAB的代碼在STM32上跑起來(lái)了!

看到這兒,MATLAB還有好多功能沒(méi)有用到,阿圓會(huì)在后面的合適的機(jī)會(huì)再向大家展示。

在這里不得不吐槽一下,MATLAB的配置過(guò)程中遇到了好多問(wèn)題,要么是STM32CubeMX 不能生成工程,要么是奇怪的編譯錯(cuò)誤,還不是很順手,大家遇到問(wèn)題,可以來(lái)阿圓這里進(jìn)行討論~

好了,今天阿圓的分享就到這,謝謝大家?。ɡ鄣脡騿埽。?/p>

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢(xún)
分享本頁(yè)
返回頂部
富阳市| 电白县| 兴安县| 木兰县| 武宁县| 姚安县| 灌南县| 永修县| 绿春县| 芒康县| 邯郸市| 灌云县| 诸暨市| 平南县| 南部县| 松江区| 通许县| 双城市| 乌拉特前旗| 泰来县| 东阳市| 东乡族自治县| 惠水县| 拉萨市| 屯门区| 贵州省| 白沙| 汝州市| 咸丰县| 建湖县| 固始县| 逊克县| 涿州市| 大兴区| 东台市| 钦州市| 灵台县| 黄冈市| 池州市| 桐梓县| 友谊县|