999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MATLAB與STM32CubeMX聯(lián)合的嵌入式開(kāi)發(fā)方法

2016-11-26 08:17:47許鵬程李小波
關(guān)鍵詞:嵌入式設(shè)計(jì)

許鵬程,李小波

(中煤科工集團(tuán)重慶研究院救援分院機(jī)器人研究所,重慶414000)

MATLAB與STM32CubeMX聯(lián)合的嵌入式開(kāi)發(fā)方法

許鵬程,李小波

(中煤科工集團(tuán)重慶研究院救援分院機(jī)器人研究所,重慶414000)

利用專門(mén)的軟件STM32Cube MX與MATLAB進(jìn)行嵌入式建模與仿真,仿真成功后,在編譯器中將其翻譯為高效的MDK C語(yǔ)言代碼,大大提高了嵌入式程序的開(kāi)發(fā)效率,縮短了開(kāi)發(fā)周期,并且可以同時(shí)利用MATLAB的代碼優(yōu)化工具箱,提高代碼質(zhì)量。實(shí)驗(yàn)結(jié)果表明,利用MATLAB與STM32Cube MX生成的代碼在目標(biāo)系統(tǒng)中運(yùn)行良好,在設(shè)計(jì)效率和易維護(hù)性方面優(yōu)于手工編寫(xiě)的代碼。

STM32Cube MX;MATLAB;嵌入式系統(tǒng)

引 言

2014年ST公司推出了官方的STM32Cube MX工具,為基于STM32所有系列的上百種芯片的嵌入式開(kāi)發(fā)提供了強(qiáng)大的技術(shù)支持,使開(kāi)發(fā)人員能夠快速地完成STM32的開(kāi)發(fā)和維護(hù)工作。傳統(tǒng)的嵌入式開(kāi)發(fā)主要有兩種方法,一種是使用ST公司提供的固件庫(kù)函數(shù)來(lái)配置CPU,建立工程后調(diào)用芯片內(nèi)的各種功能;另一種是通過(guò)直接操作寄存器的方式使用STM32系列芯片。兩種方法均要求開(kāi)發(fā)者熟悉固件庫(kù)函數(shù)或者能夠準(zhǔn)確地掌握眾多寄存器結(jié)構(gòu)及其定義,使開(kāi)發(fā)者將大量精力花費(fèi)在芯片本身的操作上,而不能有效地進(jìn)行控制程序的算法設(shè)計(jì)。

MATLAB是美國(guó)Mathworks公司開(kāi)發(fā)的一款基于矩陣計(jì)算的高性能計(jì)算機(jī)軟件,其包含眾多的Simulink控制模塊,讓使用者能夠在短時(shí)間內(nèi)開(kāi)發(fā)出理想的控制程序。MATLAB2015B版本更是集成了最新的Embedded coder功能,能夠自動(dòng)生成在嵌入式芯片運(yùn)行的C語(yǔ)言代碼,同時(shí)還能夠?qū)Υa的結(jié)構(gòu)和芯片的RAM使用效率進(jìn)行優(yōu)化,可以大大提高用戶的開(kāi)發(fā)效率,降低開(kāi)發(fā)費(fèi)用。本文介紹針對(duì)ST公司STM32Cube MX所支持的芯片與MATLAB進(jìn)行聯(lián)合開(kāi)發(fā),并通過(guò)實(shí)例介紹基于MATLAB控制的STM32嵌入式快速開(kāi)發(fā)方法。

1 STM32-Matlab工具箱

STM32-Matlab工具箱是ST公司推出的使用MATLAB的工具套件,使用STM32-Matlab工具箱能夠快速為STM32芯片開(kāi)發(fā)出基于MATLAB和Simulink的應(yīng)用模型,通過(guò)USB數(shù)據(jù)線連接芯片串口后可以進(jìn)行PIL(處理器循環(huán))實(shí)時(shí)仿真,同時(shí)生成仿真報(bào)告并給出優(yōu)化建議,大量節(jié)約開(kāi)發(fā)時(shí)間與成本。該工具箱含有ADC、CAN、GPIO、SPI、USART等STM32芯片所有外設(shè)模塊,并且能過(guò)通過(guò)MCU CONFIG模塊設(shè)置任意一款STM32Cube MX所支持的芯片與MATLAB所自帶的控制、函數(shù)模塊(如高通濾波、PID控制等)進(jìn)行聯(lián)合編程,然后使用Embedded coder生成基于STM32Cube HAL libraries的C語(yǔ)言代碼,而無(wú)需具體了解底層設(shè)備配置,不用手工編寫(xiě)C語(yǔ)言代碼,能夠同時(shí)滿足對(duì)控制要求高而又有嵌入式編程需求的用戶。

2 STM32使用Simulink模型快速開(kāi)發(fā)過(guò)程

使用STM32-Matlab工具箱,快速開(kāi)發(fā)過(guò)程包括建模、仿真(Normal、SIL、PIL三種模式)、代碼優(yōu)化、代碼移植、編譯、調(diào)試等。這里重點(diǎn)介紹建模、仿真與移植。

2.1 開(kāi)發(fā)環(huán)境的設(shè)置

為了保證軟件的兼容性、可操作性和版本的連續(xù)性以及計(jì)算機(jī)程序運(yùn)行的流暢性,需要合理配置相關(guān)軟件和硬件。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,在Microsoft Windows 7下使用STM32-Matlab模塊的最低軟硬件配置如下:

配置完成后,可在意法半導(dǎo)體公司的官方網(wǎng)站下載STM32Cube MX和STM32-Matlab軟件,下載完成后分別安裝好即可。

2.2 建模與仿真

當(dāng)成功安裝了STM32-Matlab工具箱后,新建一個(gè)Simulink mode,進(jìn)入Model configuration parameters模式,找到Code Generation中的System target file并將其設(shè)置更改為stm32.tlc,然后保存,打開(kāi)系統(tǒng)仿真庫(kù)(Simulink library),找到Target support package-STM32Adapter中的MCU CONFIG模塊,并將其添加到Simulink model 中,如圖1所示。

圖1 建模界面

雙擊該圖標(biāo),在彈出的Block parameters對(duì)話框中,單擊select STM32 configuration file,選擇通過(guò)STM32Cube MX已設(shè)置好外設(shè)的硬件目標(biāo)板芯片型號(hào)(本文選擇的是STM32F103ZET6,如圖2所示)并保存,然后根據(jù)設(shè)計(jì)需要,在Target support package-STM32Adapte中合理地選擇功能模塊(比如GPIO、USART等)進(jìn)行設(shè)計(jì)。對(duì)于應(yīng)用于實(shí)際系統(tǒng),在Simulink環(huán)境中可用多個(gè)子模塊建立嵌入系統(tǒng)的軟件模型。

圖2 選擇界面

2.3 生成代碼

在MATLAB/Simulink環(huán)境中建模并完成系統(tǒng)仿真的模型,選擇Simulink model中code命令中的子命令C/C++ code,并在利用Embedded coder功能后,會(huì)生成C語(yǔ)言代碼,其中包含用于建立工程的多個(gè).c文件和.h文件。選擇Keil vision5作為目標(biāo)嵌入式系統(tǒng)的軟件編譯環(huán)境。

在STM32CubeMX軟件中,把已經(jīng)設(shè)置好外設(shè)的目標(biāo)板芯片文件(IOC文件)進(jìn)行C語(yǔ)言自動(dòng)轉(zhuǎn)換,將會(huì)得到該型號(hào)芯片的底層硬件設(shè)備配置文件及驅(qū)動(dòng)程序,最后將Embedded coder生成的main.c代碼移植到STM32Cube MX生成的main.c文件中,對(duì)軟件程序工程進(jìn)行編譯,將編譯結(jié)果下載到目標(biāo)系統(tǒng)中執(zhí)行,即可完成設(shè)計(jì)工作。

3 應(yīng)用實(shí)例

實(shí)際工程中經(jīng)常需要對(duì)芯片進(jìn)行GPIO接口的操作,而且需要產(chǎn)生滿足一定要求的信號(hào)波形,下面的實(shí)例說(shuō)明如何利用Simulink自帶的函數(shù)發(fā)生器,快速操作I/O接口并通過(guò)DAC模塊轉(zhuǎn)換成需要的波形。本設(shè)計(jì)中讓STM32的DAC分別產(chǎn)生正弦信號(hào)(y=sin(0.5×x))以及單位脈沖信號(hào)波形。

3.1 使用Simulink生成波形函數(shù)

找到simulink library中的Sources庫(kù),將sine wave模塊和pulse generator模塊添加到新建的simulink model 中,同時(shí)在Target support package-STM32Adapter庫(kù)中,找到MCU CONFI以及DAC模塊,添加到simulink model中,按照上面要求的設(shè)置將system target file設(shè)為stm32.tlc,并按照設(shè)計(jì)要求將系統(tǒng)方框圖連接好,并保存,如圖3所示。

3.2 使用STM32CubeMX與MATLAB生成嵌入式工程文件

打開(kāi)STM32CubeMX程序,點(diǎn)擊generate source code basic on user setting功能,在Project settings面板中在toolchain中選擇MDK-RAM V5,將會(huì)生成名為Drivers、Inc、MDK-ARM、Src的4個(gè)文件夾,其包含了該芯片及外設(shè)的所有底層硬件驅(qū)動(dòng)代碼。

圖3 simulink使用界面

在Simulink中運(yùn)行Embedded code將會(huì)生成一個(gè)模型名_STM32文件夾,該文件中包含一系列.c及.h文件,將該文件夾中.c文件移動(dòng)到Src文件夾,.h文件文件移動(dòng)到Inc文件夾中,并將main.c中的代碼移植到MKD ARM文件夾中的main.c文件中。

將工程編譯好后,下載到目標(biāo)開(kāi)發(fā)板中并用示波器測(cè)量DAC1(見(jiàn)圖4)、DAC2(見(jiàn)圖5)端口輸出波形。

圖4 DAC1端口輸出波形

結(jié) 語(yǔ)

利用MATLAB與STM32Cube MX可以同時(shí)實(shí)現(xiàn)復(fù)雜的控制算法與嵌入式代碼編程,與傳統(tǒng)的開(kāi)發(fā)方式相比,無(wú)論在質(zhì)量上還是效率上均有較大提高,特別適合于對(duì)控制算法要求較高的嵌入式編程環(huán)境。

圖5 DAC2端口輸出波形

[1]ST Company.STM32-MAT/TARGET[EB/OL].[2016-05].http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-softwar e-development-tools/stm32-utilities/stm32-mat-target.html.

[2]ST Company.STM32Cube initialization code generator[EB/ OL].[2016-05].http://w ww.stmicroelectronics.com.cn/ web/catalog/tools/FM147/CL1794/SC961/SS1533/PF2592 42?s_searchtype=partnumber.

許鵬程(碩士研究生),主要研究領(lǐng)域?yàn)闄C(jī)器人SLAM技術(shù)、STM32嵌入式編程;李小波(副研究員),主要研究方向?yàn)闄C(jī)器人控制理論與方法。

13Implementation of Intelligent Warehouse Based on EPC/ RFID and WSN[C]//Applied Mechanics and Materials, Trans Tech Publications,2012.

[4]Zhang B,Hu K,Zhu Y.Network Architecture and Energy A-nalysis of the Integration of RFID and Wireless Sensor Network[C]//2010 Chinese Control and Decision Conference, 2010:13791382.

[5]徐然,李文耀.一種可用于移動(dòng)支付的讀卡器設(shè)計(jì)研究[J].電視技術(shù),2013,37(5):8791.

[6]潘敏.音頻盾的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院大學(xué),2014.

[7]孟治國(guó).基于音頻接口的數(shù)據(jù)傳輸模塊設(shè)計(jì)[J].電子科技, 2013,26(3):4547.

[8]方武,盧愛(ài)紅,王典洪,等.基于智能手機(jī)音頻接口的便攜式環(huán)境感知系統(tǒng)[J].計(jì)算機(jī)測(cè)量與控制,2015,23(11):38073809.

[9]Hijack[EB/OL].[201604].http://web.eecs.umich.edu/~prabal/projects/hijack/.

[10]Kuo Y S,Verma S,Schmid T,et al.Hijacking power and bandwidth from the mobile phone's audio interface[C]// Proceedings of the First ACM Symposium on Computing for Development,2010:24.

[11]孟治國(guó).基于音頻線路傳輸數(shù)字信號(hào)的設(shè)計(jì)與應(yīng)用[J].電子設(shè)計(jì)工程,2014,22(14):99-102.

[12]胥京宇.恩智浦Quick Jack方案將智能手機(jī)音頻插孔轉(zhuǎn)變?yōu)槎喙δ茏怨╇姅?shù)據(jù)端口[J].世界電子元器件,2014(7):46-46.

[13]孫書(shū)鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開(kāi)發(fā)與應(yīng)用[J].微計(jì)算機(jī)應(yīng)用,2010(12):59-63.

[14]陳勇,陸遙.基于AS3992的超高頻RFID閱讀器的設(shè)計(jì)及仿真[J].半導(dǎo)體光電,2013(1):41.

[15]歐陽(yáng)宏志,單長(zhǎng)虹,黃智偉.物聯(lián)網(wǎng)中UHF頻段RFID讀寫(xiě)器設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(22):23-25.

鄧浩海,研究方向?yàn)橹悄苄畔⑻幚?薛健(碩士研究生),研究方向?yàn)榍度胧较到y(tǒng)及應(yīng)用。

Combined Embedded Development Method of MATLAB and STM32CubeMX

Xu Pengcheng,Li Xiaobo

(Robot Research Institute in Chongqing Research Institute of CCTEG,Chongqing 414000,China)

The specialized software MATLAB and STM32Cube MX are used to carry out the embedded modeling and simulation.After successful simulation,the compiler will translate it into a highly efficient MDK C language code,which can greatly improve the development efficiency of the embedded program,shorten the development cycle,and can also use the code optimization toolbox of MATLAB, that improves the quality of the code.The experimental results show that using MATLAB and STM32Cube MX generated code runs well in the target system in the design,the efficiency and maintain ability are better than the hand written codes.

STM32Cube MX;MATLAB;embedded system

TP368

A

(責(zé)任編輯:薛士然2016-05-03)

(責(zé)任編輯:薛士然2016-04-20)

猜你喜歡
嵌入式設(shè)計(jì)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
搭建基于Qt的嵌入式開(kāi)發(fā)平臺(tái)
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺(jué)聯(lián)盟
主站蜘蛛池模板: 男人天堂伊人网| 亚洲午夜国产精品无卡| 亚洲婷婷在线视频| 日本人真淫视频一区二区三区| 国产真实乱子伦精品视手机观看 | 久久国产亚洲偷自| 91人人妻人人做人人爽男同| 日本少妇又色又爽又高潮| 一级毛片在线免费看| 天堂亚洲网| 在线观看91精品国产剧情免费| 中文字幕亚洲专区第19页| 久综合日韩| 亚洲日本www| A级毛片高清免费视频就| 亚洲第一区在线| 中文国产成人精品久久一| 国内精品手机在线观看视频| 毛片视频网| 国产幂在线无码精品| 少妇人妻无码首页| 伊伊人成亚洲综合人网7777| 素人激情视频福利| 99re这里只有国产中文精品国产精品| 成人午夜视频在线| 啦啦啦网站在线观看a毛片| 最新国语自产精品视频在| 国产精品免费入口视频| 亚洲AV无码乱码在线观看裸奔| 日本亚洲最大的色成网站www| 天天躁夜夜躁狠狠躁躁88| 波多野结衣亚洲一区| 午夜日韩久久影院| 中国黄色一级视频| 久青草国产高清在线视频| 亚洲成人黄色在线观看| 香蕉久久国产超碰青草| 女人爽到高潮免费视频大全| 亚洲高清中文字幕在线看不卡| 中文成人无码国产亚洲| 亚洲第一精品福利| 日韩美女福利视频| 婷婷丁香在线观看| 国产成人三级| 国产超碰在线观看| 无遮挡一级毛片呦女视频| 九九久久99精品| 亚洲天天更新| 成人一区在线| 99视频精品全国免费品| 日日拍夜夜嗷嗷叫国产| 成人免费视频一区| 四虎AV麻豆| 天天色天天综合网| 五月婷婷丁香综合| 99热这里只有精品在线观看| 日韩精品中文字幕一区三区| 人妻精品久久无码区| 色妞www精品视频一级下载| 欧美精品导航| 香蕉视频在线观看www| 欧美一级视频免费| 三级视频中文字幕| 国产91小视频| 99热这里只有精品在线播放| 毛片最新网址| 亚洲91精品视频| 日本欧美午夜| 在线观看国产黄色| 一级做a爰片久久毛片毛片| 熟女视频91| 国产成人夜色91| 久久a毛片| 中国国产高清免费AV片| 成人午夜网址| 亚洲欧洲美色一区二区三区| 午夜精品一区二区蜜桃| 污污网站在线观看| 国产在线拍偷自揄拍精品| 丰满的熟女一区二区三区l| 国产在线精彩视频论坛| 毛片大全免费观看|