單芯片解決方案,開啟全新體驗(yàn)——W55MH32 高性能以太網(wǎng)單片機(jī)
W55MH32是WIZnet重磅推出的高性能以太網(wǎng)單片機(jī),它為用戶帶來(lái)前所未有的集成化體驗(yàn)。這顆芯片將強(qiáng)大的組件集于一身,具體來(lái)說(shuō),一顆W55MH32內(nèi)置高性能Arm? Cortex-M3核心,其主頻最高可達(dá)216MHz;配備1024KB FLASH與96KB SRAM,滿足存儲(chǔ)與數(shù)據(jù)處理需求;集成TOE引擎,包含WIZnet全硬件TCP/IP協(xié)議棧、內(nèi)置MAC以及PHY,擁有獨(dú)立的32KB以太網(wǎng)收發(fā)緩存,可供8個(gè)獨(dú)立硬件socket使用。如此配置,真正實(shí)現(xiàn)了All-in-One解決方案,為開發(fā)者提供極大便利。
在封裝規(guī)格上,W55MH32 提供了兩種選擇:QFN68和QFN100。
W55MH32Q采用QFN68封裝版本,尺寸為8x8mm,它擁有36個(gè)GPIO、3個(gè)ADC、12通道DMA、17個(gè)定時(shí)器、2個(gè)I2C、3個(gè)串口、2個(gè)SPI接口(其中1個(gè)帶I2S接口復(fù)用)、1個(gè)CAN以及1個(gè)USB2.0。在保持與同系列其他版本一致的核心性能基礎(chǔ)上,僅減少了部分GPIO以及SDIO接口,其他參數(shù)保持一致,性價(jià)比優(yōu)勢(shì)顯著,尤其適合網(wǎng)關(guān)模組等對(duì)空間布局要求較高的場(chǎng)景。緊湊的尺寸和精簡(jiǎn)化外設(shè)配置,使其能夠在有限空間內(nèi)實(shí)現(xiàn)高效的網(wǎng)絡(luò)連接與數(shù)據(jù)交互,成為物聯(lián)網(wǎng)網(wǎng)關(guān)、邊緣計(jì)算節(jié)點(diǎn)等緊湊型設(shè)備的理想選擇。 同系列還有QFN100封裝的W55MH32L版本,該版本擁有更豐富的外設(shè)資源,適用于需要多接口擴(kuò)展的復(fù)雜工控場(chǎng)景,軟件使用方法一致。更多信息和資料請(qǐng)進(jìn)入http://www.w5500.com/網(wǎng)站或者私信獲取。
此外,本W(wǎng)55MH32支持硬件加密算法單元,WIZnet還推出TOE+SSL應(yīng)用,涵蓋TCP SSL、HTTP SSL以及MQTT SSL等,為網(wǎng)絡(luò)通信安全再添保障。
為助力開發(fā)者快速上手與深入開發(fā),基于W55MH32Q這顆芯片,WIZnet精心打造了配套開發(fā)板。開發(fā)板集成WIZ-Link芯片,借助一根USB C口數(shù)據(jù)線,就能輕松實(shí)現(xiàn)調(diào)試、下載以及串口打印日志等功能。開發(fā)板將所有外設(shè)全部引出,拓展功能也大幅提升,便于開發(fā)者全面評(píng)估芯片性能。
若您想獲取芯片和開發(fā)板的更多詳細(xì)信息,包括產(chǎn)品特性、技術(shù)參數(shù)以及價(jià)格等,歡迎訪問(wèn)官方網(wǎng)頁(yè):http://www.w5500.com/,我們期待與您共同探索W55MH32的無(wú)限可能。
第三章 開發(fā)環(huán)境搭建
本章,我們將向大家介紹 W55MH32的開發(fā)環(huán)境搭建,主要通過(guò)以下三個(gè)方面介紹:
1 常用開發(fā)工具簡(jiǎn)介
2 安裝IDE
3 MDK5使用技巧
1 常用開發(fā)工具簡(jiǎn)介
KEIL MDK是ARM公司推出的一款面向ARM架構(gòu)微控制器(如Cortex - M系列)的集成開發(fā)環(huán)境,提供代碼編寫、編譯、調(diào)試、下載一站式服務(wù)。它支持多語(yǔ)言開發(fā),擁有強(qiáng)大編譯器和豐富的調(diào)試與仿真功能,具備大量庫(kù)與中間件,還有可視化配置工具,支持跨平臺(tái)使用。廣泛應(yīng)用于嵌入式開發(fā)、實(shí)時(shí)系統(tǒng)、工業(yè)控制等領(lǐng)域,有不同版本以滿足多樣需求,雖商業(yè)版授權(quán)費(fèi)高且對(duì)非ARM架構(gòu)支持有限,但仍是嵌入式開發(fā)主流工具。
2 安裝IDE
2.1 溫馨提示
1.安裝路徑不能帶中文,必須是英文路徑。
2.安裝目錄不能跟 51 的 KEIL 或者 KEIL4 沖突,三者目錄必須分開。
3.KEIL5 的安裝比起 KEIL4 多了一個(gè)步驟,必須添加 MCU 庫(kù),不然沒法使用。
2.2 獲取 KEIL5 安裝包
W55MH32 開發(fā)板支持 KEIL5 MDK 微控制器開發(fā)套件開發(fā),可前往官網(wǎng) www.keil.com 下載安裝包。
Keil 官網(wǎng)安裝包示意圖
2.3 開始安裝KEIL5
雙擊官網(wǎng)下載的安裝包,點(diǎn)擊 Next 按鈕開始安裝
開始安裝 KEIL5
按照提示逐步進(jìn)行安裝,安裝完成后如下圖所示。
安裝完成 KEIL5
2.4 安裝W55MH32 芯片包
打開軟件包目錄下的 W55MH32_DFP.1.1.0.pack,點(diǎn)擊 Next 即可完成安裝。
安裝 pack 包
3 MDK5使用技巧
本節(jié),我們將向大家介紹 MDK5 軟件的一些使用技巧,這些技巧在代碼編輯和編寫方面會(huì)非常有用,希望大家好好掌握,最好實(shí)際操作一下,加深印象。
3.1 文本美化
文本美化,主要是設(shè)置一些關(guān)鍵字、注釋、數(shù)字等的顏色和字體。如果你剛裝 MDK,沒進(jìn)行字體顏色配置,以下面圖為例,你的界面效果如圖所示:
MDK 默認(rèn)配色效果
上圖是 MDK 默認(rèn)的設(shè)置,可以看到其中的關(guān)鍵字和注釋等字體的顏色不是很漂亮,而MDK 提供了我們自定義字體顏色的功能。我們可以在工具條上點(diǎn)擊 (配置對(duì)話框)彈出如圖所示界面:
置對(duì)話框
① 設(shè)置代碼編輯器字體使用:Chinese GB2312(Simplified),以更好的支持中文。
② 設(shè)置編輯器的空格可見:View White Space,所有空格使用“.”替代,TAB 使用“→”替代,這樣可以方便我們對(duì)代碼進(jìn)行對(duì)齊操作。同時(shí),我們推薦所有的對(duì)齊都用空格來(lái)替代,這樣在不同軟件之間查看源代碼,就不會(huì)引起由于 TAB 鍵大小不一樣導(dǎo)致代碼不對(duì)齊的問(wèn)題,方便使用不同軟件查看和編輯代碼。
③ 設(shè)置 C/C++文件,TAB 鍵的大小為 4 個(gè)字符,且字符使用空格替代(Insert spaces fortabs)。這樣我們?cè)谑褂?TAB 鍵進(jìn)行代碼對(duì)齊操作的時(shí)候,都會(huì)用空格替代,保證不同軟件使用代碼都可以對(duì)齊。然后,選擇:Colors & Fonts 選項(xiàng)卡,在該選項(xiàng)卡內(nèi),我們就可以設(shè)置自己的代碼的字體和顏色了。由于我們使用的是 C 語(yǔ)言,故Window 下面選擇:C/C++ Editor Files 在右邊就可以看到相應(yīng)的元素了。如圖所示:
Colors & Fonts 選項(xiàng)卡
然后點(diǎn)擊各個(gè)元素(Element)修改為你喜歡的顏色(注意雙擊,且有時(shí)候可能需要設(shè)置多次才生效,MDK 的 bug),當(dāng)然也可以在 Font 欄設(shè)置你字體的類型,以及字體的大小等。然后,點(diǎn)擊 User Keywords 選項(xiàng)卡,設(shè)置用戶定義關(guān)鍵字,以便用戶自定義關(guān)鍵字也顯示對(duì)應(yīng)的顏色(對(duì)應(yīng)圖 4-18 中的 User Keyword/Lable 顏色)。在 User Keywords 選項(xiàng)卡對(duì)話框下面輸入你自己定義的關(guān)鍵字,如圖所示:
3.2 語(yǔ)法檢測(cè)&代碼提示
MDK4.70 以上的版本,新增了代碼提示與動(dòng)態(tài)語(yǔ)法檢測(cè)功能,使得 MDK 的編輯器越來(lái)越好用了,這里我們簡(jiǎn)單說(shuō)一下如何設(shè)置,同樣,點(diǎn)擊 ,打開配置對(duì)話框,選擇 TextCompletion 選項(xiàng)卡,如圖所示:
Text Completion 選項(xiàng)卡設(shè)置
Strut / Class Members,用于開啟結(jié)構(gòu)體/類成員提示功能。
Function Parameters,用于開啟函數(shù)參數(shù)提示功能。
Symbols after xx characters,用于開啟代碼提示功能,即在輸入多少個(gè)字符以后,提示匹配的內(nèi)容(比如函數(shù)名字、結(jié)構(gòu)體名字、變量名字等),這里默認(rèn)設(shè)置 3 個(gè)字符以后,就開始提示。如圖 所示:
代碼提示
ENTER/TAB as fill-up character,使用回車和 TAB 鍵填充字符。
Dynamic Syntax Checking,則用于開啟動(dòng)態(tài)語(yǔ)法檢測(cè),比如編寫的代碼存在語(yǔ)法錯(cuò)誤的時(shí)候,會(huì)在對(duì)應(yīng)行前面出現(xiàn) 圖標(biāo),如出現(xiàn)警告,則會(huì)出現(xiàn) 圖標(biāo),將鼠標(biāo)光標(biāo)放圖標(biāo)上面,則會(huì)提示產(chǎn)生的錯(cuò)誤/警告的原因,如圖所示:
語(yǔ)法動(dòng)態(tài)檢測(cè)功能
這幾個(gè)功能,對(duì)我們編寫代碼很有幫助,可以加快代碼編寫速度,并且及時(shí)發(fā)現(xiàn)各種問(wèn)題。不過(guò)這里要提醒大家,語(yǔ)法動(dòng)態(tài)檢測(cè)這個(gè)功能,有的時(shí)候會(huì)誤報(bào)(比如 sys.c 里面,就有誤報(bào)),大家可以不用理會(huì),只要能編譯通過(guò)(0 錯(cuò)誤,0 警告),這樣的語(yǔ)法誤報(bào),一般直接忽略即可。
3.3 代碼編輯技巧
這里給大家介紹幾個(gè)我常用的技巧,這些小技巧能給我們的代碼編輯帶來(lái)很大的方便,相信對(duì)你的代碼編寫一定會(huì)有所幫助。
1. TAB 鍵的妙用
首先要介紹的就是 TAB 鍵的使用,這個(gè)鍵在很多編譯器里面都是用來(lái)空位的,每按一下移空幾個(gè)位。如果你是經(jīng)常編寫程序的對(duì)這個(gè)鍵一定再熟悉不過(guò)了。但是 MDK 的 TAB 鍵和一般編譯器的 TAB 鍵有不同的地方,和 C++的 TAB 鍵差不多。MDK 的 TAB 鍵支持塊操作。也就是可以讓一片代碼整體右移固定的幾個(gè)位,也可以通過(guò) SHIFT+TAB 鍵整體左移固定的幾個(gè)位。
假設(shè)我們前面的串口 1 中斷回調(diào)函數(shù)如圖所示:
頭大的代碼
上圖的代碼很不規(guī)范,這還只是短短的 30 來(lái)行代碼,如果你的代碼有幾千行,全部是這個(gè)樣子,不頭大才怪。這時(shí)我們就可以通過(guò) TAB 鍵的妙用來(lái)快速修改為比較規(guī)范的代碼格式。選中一塊然后按 TAB 鍵,你可以看到整塊代碼都跟著右移了一定距離,如圖所示:
代碼整體偏移
接下來(lái)我們就是要多選幾次,然后多按幾次 TAB 鍵就可以達(dá)到迅速使代碼規(guī)范化的目的最終效果如圖所示
修改后的代碼經(jīng)過(guò)這樣的整理之后,整個(gè)代碼一下就變得有條理多了,看起來(lái)很舒服。
2. 快速定位函數(shù)/變量被定義的地方
上一節(jié),我們介紹了 TAB 鍵的功能,接下來(lái)我們介紹一下如何快速查看一個(gè)函數(shù)或者變量所定義的地方。
大家在調(diào)試代碼或編寫代碼的時(shí)候,一定有想看看某個(gè)函數(shù)是在那個(gè)地方定義的,具體里面的內(nèi)容是怎么樣的,也可能想看看某個(gè)變量或數(shù)組是在哪個(gè)地方定義的等。尤其在調(diào)試代碼或者看別人代碼的時(shí)候,如果編譯器沒有快速定位的功能的時(shí)候,你只能慢慢的自己找,代碼量比較少還好,如果代碼量一大,那就郁悶了,有時(shí)候要花很久的時(shí)間來(lái)找這個(gè)函數(shù)到底在哪里。型號(hào) MDK 提供了這樣的快速定位的功能。只要你把光標(biāo)放到這個(gè)函數(shù)/變量(xxx)的上面(xxx 為你想要查看的函數(shù)或變量的名字),然后右鍵,彈出如圖 所示的菜單欄 :
快速定位
我們找到 RCC_GetClocksFreq(&clocks); 這個(gè)地方,然后單擊左鍵就可以快速跳到 RCC_GetClocksFreq 函數(shù)的定義處(注意要先在 Options for Target 的Output 選項(xiàng)卡里面勾選 Browse Information 選項(xiàng),再編譯,再定位,否則無(wú)法定位!)。如圖所示:
定位結(jié)果
對(duì)于變量,我們也可以按這樣的操作快速來(lái)定位這個(gè)變量被定義的地方,大大縮短了你查找代碼的時(shí)間。很多時(shí)候,我們利用 Go to Definition 看完函數(shù)/變量的定義后,又想返回之前的代碼繼續(xù)看,此時(shí)我們可以通過(guò) IDE 上的 按鈕(Back to previous position)快速的返回之前的位置,這個(gè)按鈕非常好用!
3. 快速注釋與快速消注釋
接下來(lái),我們介紹一下快速注釋與快速消注釋的方法。在調(diào)試代碼的時(shí)候,你可能會(huì)想注釋某一片的代碼,來(lái)看看執(zhí)行的情況,MDK 提供了這樣的快速注釋/消注釋塊代碼的功能。也是通過(guò)右鍵實(shí)現(xiàn)的。這個(gè)操作比較簡(jiǎn)單,就是先選中你要注釋的代碼區(qū),然后右鍵,選擇Advanced→Comment Selection 就可以了。
以 led_init 函數(shù)為例,比如我要注釋掉下圖中所選中區(qū)域的代碼,如圖所示:
選中要注釋的區(qū)域
我們只要在選中了之后,選擇右鍵,再選擇 Advanced→Comment Selection 就可以把這段代碼注釋掉了。執(zhí)行這個(gè)操作以后的結(jié)果如圖 所示:
注釋完畢
這樣就快速的注釋掉了一片代碼,而在某些時(shí)候,我們又希望這段注釋的代碼能快速的取消注釋,MDK 也提供了這個(gè)功能。與注釋類似,先選中被注釋掉的地方,然后通過(guò)右鍵→Advanced,不過(guò)這里選擇的是 Uncomment Selection。
3.4 其他小技巧
除了前面介紹的幾個(gè)比較常用的技巧,這里還介紹幾個(gè)其他的小技巧,希望能讓你的代碼編寫如虎添翼。
第一個(gè)是快速打開頭文件。在將光標(biāo)放到要打開的引用頭文件上,然后右鍵選擇 Open document“XXX”,就可以快速打開這個(gè)文件了(XXX 是你要打開的頭文件名字)。如圖所示:
第二個(gè)小技巧是查找替換功能。這個(gè)和 WORD 等很多文檔操作的替換功能是差不多的,在 MDK 里面查找替換的快捷鍵是“CTRL+H”,只要你按下該按鈕就會(huì)調(diào)出如圖 所示界面:
替換文本
這個(gè)替換的功能在有的時(shí)候是很有用的,它的用法與其他編輯工具或編譯器的差不多,相信各位都不陌生了,這里就不啰嗦了。
第三個(gè)小技巧是跨文件查找功能,先雙擊你要找的函數(shù)/變量名(這里以系統(tǒng)時(shí)鐘初始化函數(shù):wizchip_bus_readbyte為例),然后再點(diǎn)擊 IDE 上面的
,彈出如圖所示對(duì)話框:
跨文件查找
點(diǎn)擊 Find All,MDK 就會(huì)幫你找出所有含有 wizchip_bus_readbyte字段的文件并列出其所在位該方法可以很方便的查找各種函數(shù)/變量,而且可以限定搜索范圍(比如只查找.c 文件和.h 文件等),是非常實(shí)用的一個(gè)技巧。
審核編輯 黃宇
-
微控制器
+關(guān)注
關(guān)注
48文章
7897瀏覽量
153635 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
238瀏覽量
17014 -
keil5
+關(guān)注
關(guān)注
7文章
47瀏覽量
21017
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論