從下節(jié)課開(kāi)始,我們將要開(kāi)始學(xué)習(xí)TI的MSP430系列單片機(jī),它與Arduino相比,有更高的運(yùn)行速度、更大的內(nèi)存、更多的引腳以及更多的功能。首先是開(kāi)發(fā)環(huán)境的配置。
TI所有系列單片機(jī)都可以用一個(gè)名為CCS(Code Composer Studio)的IDE進(jìn)行開(kāi)發(fā),所以只要熟悉了MSP430的開(kāi)發(fā)與調(diào)試步驟,就可以順利地過(guò)渡到TI其他系列單片機(jī)的開(kāi)發(fā)。本文除了介紹CCS外,還將對(duì)如何使用VScode進(jìn)行項(xiàng)目開(kāi)發(fā)進(jìn)行介紹,利用其自動(dòng)補(bǔ)全功能可以給編寫(xiě)程序帶來(lái)極大的便利。
Part I CCS
Step1.下載CCS并安裝:
下載地址:http://processors.wiki.ti.com/index.php/Download_CCS#Download_the_latest_CCS
下載最新版的就可以了,不需要與截圖一致
安裝過(guò)程:正常安裝即可,以下只說(shuō)需要注意的
關(guān)于CCS安裝時(shí)由于中文用戶(hù)名導(dǎo)致的安裝錯(cuò)誤,可以通過(guò)以下方法解決(使用注冊(cè)表硬改用戶(hù)名,win10家庭版也適用):
https://blog.csdn.net/weixin_44912787/article/details/101167806


Step2.工作路徑設(shè)置
自己創(chuàng)建一個(gè)文件夾,工作路徑也要全英文!


Step3.文件準(zhǔn)備
由于一些奇妙的原因,ResourceExplorer常常打不開(kāi),不過(guò)可以通過(guò)這個(gè)地址進(jìn)入到TI的資源檢索頁(yè)進(jìn)行檢索:http://dev.ti.com/tirex/#/,速度都有點(diǎn)慢,可以借助一些工具進(jìn)行加速,不在本文介紹范圍之內(nèi)。將我們所要查找的芯片/開(kāi)發(fā)板信號(hào)輸入搜索框就能得到關(guān)于這個(gè)期間的所有資料,下圖以我們所要使用的MSP430F5529為例。查找到相應(yīng)元件會(huì)跳轉(zhuǎn)到這對(duì)應(yīng)的頁(yè)面,資料應(yīng)有盡有,從原理圖、數(shù)據(jù)手冊(cè)、用戶(hù)手冊(cè)到示例代碼。我們主要需要的是芯片與開(kāi)發(fā)板的原理圖(管腳接法)、用戶(hù)手冊(cè)(寄存器版本和庫(kù)函數(shù)版本)、庫(kù)函數(shù)代碼以及示例??梢钥吹?,這里面還有我們所要使用的開(kāi)發(fā)板的介紹(MSP430F5529LP)。



然后點(diǎn)擊軟件支持頁(yè)的下載按鈕把相關(guān)文件下載下來(lái)(好像只能一次性全部下完),有1G多,打開(kāi)壓縮包我們可以看到文件結(jié)構(gòu)比較復(fù)雜,因?yàn)槠浒烁鞣N功能的介紹和demo,而且是一整個(gè)大系列的芯片,而經(jīng)過(guò)觀察與猜測(cè),我們只要把其中的driberlib文件夾提出來(lái)就夠了。其中有我們需要的基本庫(kù)函數(shù)文件(~/driverlib/MSP430F5xx_6xx)、基礎(chǔ)功能的庫(kù)函數(shù)實(shí)現(xiàn)示例(~/examples/MSP430F5xx_6xx)、以及庫(kù)函數(shù)的文檔(~/docs/MSP430F5xx_6xx)。


Step4.創(chuàng)建一個(gè)項(xiàng)目
File-New-CCS Project,選擇芯片型號(hào),填寫(xiě)項(xiàng)目名稱(chēng)(英文)

新建完成之后,自動(dòng)彈出main.c,點(diǎn)擊工具欄中的Build,稍等幾秒鐘,可以看到底下Console處顯示Build Finished

通過(guò)usb連接上我們的msp430,再點(diǎn)一下工具欄上面的小蟲(chóng)子,進(jìn)入debug模式,中間除了出現(xiàn)進(jìn)度條的窗口讓他自己執(zhí)行之外,其他都選yes(一定要保證在代碼保存+已經(jīng)build成功的情況下再debug,要不然就會(huì)報(bào)錯(cuò)讓你修改代碼)。第一次用板子可能會(huì)彈窗提示固件需要更新,選確定讓它更新即可。然后出來(lái)下圖的界面。其實(shí)跟C語(yǔ)言用的codeblocks挺像的,其中一個(gè)很重要的窗口就是寄存器窗口,這個(gè)對(duì)我們的調(diào)試非常重要,而且也不是每種單片機(jī)都能這么方便地使用這個(gè)功能的(stm32出來(lái)挨打)。一開(kāi)始默認(rèn)是停在main的,再點(diǎn)一下工具欄上的Resume(綠色那個(gè))就開(kāi)始自動(dòng)運(yùn)行了,除非設(shè)置了斷點(diǎn)或者手動(dòng)暫停,否則不會(huì)繼續(xù)運(yùn)行。點(diǎn)擊Stop退出調(diào)試模式。如果還想要?jiǎng)e的窗口,可以通過(guò)菜單欄的View下面的項(xiàng)目對(duì)它們進(jìn)行調(diào)出。


現(xiàn)在,輸入以下代碼:
#include <msp430.h>
#include "driverlib.h"
void main (void)
{
? ? //Stop WDT
? ? WDT_A_hold(WDT_A_BASE);
? ? //P8.1 output
? ? GPIO_setAsOutputPin(GPIO_PORT_P8,GPIO_PIN1);
? ? //Set all PA pins HI
? ? GPIO_setOutputHighOnPin(GPIO_PORT_P8,GPIO_PIN1);
? ? //Enter LPM4 w/interrupts enabled
? ? __bis_SR_register(LPM4_bits + GIE);
? ? //For debugger
? ? __no_operation();
}
Build

當(dāng)然不行啦!庫(kù)函數(shù)都沒(méi)加進(jìn)去,driverlib.h都找不到怎么編譯嘛,接下來(lái)我們就把庫(kù)函數(shù)加進(jìn)去(~/driverlib/MSP430F5xx_6xx)


然后,再編譯……沒(méi)錯(cuò)!這次也不能成功!還要把它加到編譯目錄中。
選中項(xiàng)目-右鍵-Properties

然后……沒(méi)有然后了,這次編譯是真的能過(guò)了。
再點(diǎn)開(kāi)Debug選項(xiàng),下載并運(yùn)行程序,可以看到口袋版上最左側(cè)的LED燈亮了。
到此,一個(gè)能使用庫(kù)函數(shù)的項(xiàng)目創(chuàng)建完畢!以后都能通過(guò)這個(gè)流程創(chuàng)建項(xiàng)目了。
Part 2 VScode
Step1. 下載并安裝
https://code.visualstudio.com/
這個(gè)沒(méi)什么難度,可能還要安裝一些插件吧,自動(dòng)補(bǔ)全之類(lèi)的,具體谷歌/百度。(注:需要安裝C/C++的推薦插件)
打開(kāi)界面大致長(zhǎng)這樣

Step2.添加文件(夾),建立工作區(qū)

不過(guò)這個(gè)時(shí)候還是不能直接在driverlib.h上右鍵“轉(zhuǎn)到定義”的,需要 文件-另存為工作區(qū),把目前的狀態(tài)保存了之后才可以將整個(gè)文件夾里面的內(nèi)容鏈接起來(lái)。另存為工作區(qū)之后,可以看到已經(jīng)可以根據(jù)庫(kù)函數(shù)文件進(jìn)行自動(dòng)補(bǔ)全了。

還有一個(gè)很重要的功能,Go to Declearation,在新窗口中打開(kāi)該函數(shù)或者宏定義的定義位置。由于TI的庫(kù)函數(shù)寫(xiě)得比較好,有得時(shí)候直接根據(jù)注釋就能看懂這一系列函數(shù)怎么用了,連UserGuide都不用看~ Ctrl+F12這個(gè)快捷鍵很常用



當(dāng)然,CCS里面也有跳轉(zhuǎn)功能,步驟也是一樣的,選中對(duì)應(yīng)的函數(shù)/變量,右鍵就能看到,快捷鍵是F3。(但是他沒(méi)有自動(dòng)補(bǔ)全,差評(píng))
最后一點(diǎn),有一個(gè)文件也很重要,就是msp430f5529.h,可以看到我們例程的第一行用的是msp430.h,不過(guò)這樣只有CCS能識(shí)別出來(lái),VScode識(shí)別不出來(lái),我們需要在安裝目錄(我的是E:\Program Files (x86)\CCS\ccsv8\ccs_base\msp430\include)下找到這個(gè)文件,復(fù)制到我們項(xiàng)目的根目錄中,再把main.c第一行改成#include <msp430f5529.h>,這樣就能在VScode中看到并引用其中的一些變量了。

至此,VScode這邊也配置完畢。
p.s.中文亂碼解決辦法
如果注釋中有中文,CCS保存的文件使用的是GB2312編碼,而VS中默認(rèn)是UTF-8編碼??梢酝ㄟ^(guò)選擇菜單-文件-首選項(xiàng)-設(shè)置,在右邊用戶(hù)設(shè)置輸入:"files.autoGuessEncoding": true,并保存即可自動(dòng)識(shí)別編碼。


如果不是GB2312的編碼,記得先保存到這種編碼再在CCS中打開(kāi)

如果現(xiàn)有的代碼已經(jīng)時(shí)UTF-8了,在CCS中打開(kāi)可能會(huì)亂碼,點(diǎn)擊編輯區(qū),菜單欄Edit-Set Encoding,選擇Other,下拉點(diǎn)擊UTF-8就餓能正常顯示了。


盡情享受msp430吧~
p.s.如果無(wú)法正常打開(kāi)CCS(閃退),請(qǐng)?jiān)囍帽镜刭~戶(hù)登陸。