一、 CW32工程模板創(chuàng)建
1.以參考標(biāo)準(zhǔn)庫(kù)中GPIO例程為例來(lái),來(lái)新建工程。
2.新建“GPIO”文件,在GPIO文件夾內(nèi)建立user文件夾。
3.制MDK安裝目錄下的4個(gè)文件。
如“C:UsersAdministratorAppDataLocalArmPacksARMCMSIS5.7.0CMSISCoreInclude”目錄下的“cmsis_armcc.h”“cmsis_compiler.h”“cmsis_version.h”“core_cm0plus.h”文件。在user文件夾下新建“SYSLIB”文件夾,并將這4個(gè)文件復(fù)制進(jìn)去,如圖1所示。

圖1 復(fù)制文件
4.復(fù)制標(biāo)準(zhǔn)庫(kù)中“CW32F030_StandardPeripheralLib_V1.8Examplesgpiogpio_input_outputUSER”目錄下的SRC文件夾與INC文件夾到GPIO文件夾下的USER文件夾里。
5.將標(biāo)準(zhǔn)庫(kù)中的Libraries、IdeSupport文件夾復(fù)制到新建的GPIO工程文件里面,如圖2所示。

圖2 復(fù)制到新建GPIO工程文件
6.打開(kāi)MDK開(kāi)發(fā)環(huán)境,選擇“Project”/“New μVision Project”命令,新建工程,如圖3所示。

圖3新建工程文件
7.為工程輸入名稱(chēng),并保存在剛才所建立的GPIO文件夾內(nèi),之后會(huì)彈出選擇芯片型號(hào),如圖4所示。

圖4 選擇ARMCMOP
8.單擊“OK”按鈕并進(jìn)行保存。
9.右鍵單擊“Target 1”,在彈出的菜單中選擇“Manage Project items”命令,在工程目錄中添加.c文件,如圖5所示。

圖5 添加.c文件
10.在出現(xiàn)的對(duì)話框中,增加user和Library文件夾,并添加標(biāo)準(zhǔn)庫(kù)的.c源文件到Library的Groups,如圖6所示。

圖6 添加庫(kù).c文件
11.添加user文件夾下SRC文件夾下的文件到user Groups,如圖7所示。

圖7 添加user Groups
12.添加啟動(dòng)文件。啟動(dòng)文件“startup_cw32f030.s”在標(biāo)準(zhǔn)庫(kù)“IdeSupportMDK”路徑下,如圖8所示。

圖8 添加啟動(dòng)文件
13.單擊“Options for Target‘Target 1’”項(xiàng)目,單擊C/C++(AC6)選項(xiàng)卡,如圖9所示,在Include Paths編輯框中添加標(biāo)準(zhǔn)庫(kù).H文件的路徑,最后單擊“OK”按鈕完成頭文件。

圖9 添加頭文件與.c文件
14.選擇“Target”選項(xiàng)卡,在“ARM Compiler”框中選擇“Use default compiler version 5”選項(xiàng),然后單擊“OK”,如圖10所示。

圖10 選擇“Use default compiler version 5”選項(xiàng)
15.選擇“Debug”選項(xiàng)卡,保持默認(rèn)“Use Simulator”被選中。
注意:如果使用硬件調(diào)試器+目標(biāo)板開(kāi)發(fā)調(diào)試,請(qǐng)選中“Use”,然后修改調(diào)試器為“CMSIS-DAP Debugger”(使用CW-DAPLINK或DAP兼容調(diào)試器時(shí)選擇該選項(xiàng)。如果使用其它調(diào)試器,請(qǐng)選擇合適的對(duì)應(yīng)選項(xiàng)),如圖11所示。

圖11 修改調(diào)試器為“CMSIS-DAP Debugger”
16.選擇“Utilities”項(xiàng),單擊“Settings”按鈕,在彈出的對(duì)話框中選擇“FLASH Download”選項(xiàng),如圖12所示。

圖12 選擇“FLASH Download”選項(xiàng)
17.單擊“Add”按鈕,找到“CW32F030”的FLASH燒寫(xiě)算法,單擊“Add”按鈕添加,如圖13所示。

圖13 添加“CW32F030”的FLASH燒寫(xiě)算法
18.在“Project”菜單中選擇“Rebuild all target files”以編譯項(xiàng)目。如果項(xiàng)目編譯成功,將顯示以下窗口,如圖14所示。

圖14 成功編譯CW32F030項(xiàng)目顯示窗口
19.根據(jù)需要修改源代碼。完成編寫(xiě)后,如需要硬件調(diào)試,則接入DAPLINK調(diào)試器到目標(biāo)板上,并為目標(biāo)板供電。然后在MDK IDE中,從調(diào)試菜單中選擇“開(kāi)始/停止”調(diào)試會(huì)話或單擊工具欄中的“開(kāi)始/停止”調(diào)試會(huì)話按鈕,以對(duì)FLASH存儲(chǔ)器進(jìn)行編程并開(kāi)始調(diào)試,如圖15所示。

圖15 對(duì)FLASH存儲(chǔ)器進(jìn)行編程并調(diào)試
20.MDK-ARM中的調(diào)試器可用于用C語(yǔ)言和匯編語(yǔ)言調(diào)試源代碼,設(shè)置斷點(diǎn),以及監(jiān)控各個(gè)變量和代碼執(zhí)行過(guò)程中發(fā)生的事件,如圖16所示。

圖16 MDK-ARM中調(diào)試器使用事件
至此,可以使用MDK初步開(kāi)發(fā)CW32的相關(guān)應(yīng)用了。
二、 快速點(diǎn)亮一個(gè)LED
以CW32F030為例,演示如何快速實(shí)現(xiàn)點(diǎn)亮一個(gè)LED。
1、軟件準(zhǔn)備
- MDK開(kāi)發(fā)環(huán)境已安裝完成。
- CW32固件庫(kù)已下載。
- 芯片PACK包已安裝。
-
工程模板已創(chuàng)建。
2、硬件準(zhǔn)備
- 準(zhǔn)備一套調(diào)試器CW-DAPLINK(或其他兼容調(diào)試器)。
- 一個(gè)CW32F030的核心板(具體實(shí)物可參考第8章內(nèi)容)。
- USB供電線。
硬件準(zhǔn)備實(shí)物圖,如圖17所示。

圖17 硬件準(zhǔn)備
3、代碼修改
CW32核心板上面有一個(gè)LED2指示燈,其控制端口連接至PC13,如圖18所示。從圖中不難分析,當(dāng)PC13端口置為低電平時(shí),LED指示燈亮。

圖18 LED指示燈電路
打開(kāi)2.4.1小節(jié)創(chuàng)建的工程模板,修改主程序代碼如下。
int32_t main(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
CW_SYSCTRL->AHBEN_f.GPIOC = 1; //打開(kāi)GPIOC時(shí)鐘
//設(shè)置PC13為輸出模式
GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置為推挽輸出模式
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
PC13_SETLOW(); //置低PC13,點(diǎn)閃LED2
while (1);
}
在MDK環(huán)境下修改代碼,如圖19所示。

圖19 指示燈控制的代碼
4、下載測(cè)試
連接CWDAPLINK至目標(biāo)核心板,并給核心板插入U(xiǎn)SB線供電,電源指示燈LED1紅燈亮起,代表板子電源供電正常。請(qǐng)注意,此時(shí)LED2是熄滅狀態(tài),如圖20所示。

圖20 實(shí)物連接圖
在MDK工程中,配置下載器為DAP類(lèi)型的調(diào)試工具,如圖21所示。

圖21 下載器選項(xiàng)配置
5、下載并運(yùn)行程序
下載程序完成后,按SW1紅色復(fù)位鍵先進(jìn)行復(fù)位,以確保程序的可靠運(yùn)行。復(fù)位運(yùn)行后,可以看到:核心板上面的電源指示燈LED1紅燈仍然常亮,下面的LED2藍(lán)燈受程序控制,已經(jīng)被點(diǎn)亮,如圖22所示。

圖22 程序運(yùn)行,LED2被點(diǎn)亮
如果要控制LED2燈熄滅,又該如何修改代碼呢?
參考代碼如下:
int32_t main(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
CW_SYSCTRL->AHBEN_f.GPIOC = 1; //打開(kāi)GPIOC時(shí)鐘
//設(shè)置PC13為輸出模式
GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置為推挽輸出模式
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
PC13_SETHIGH();//置高PC13,熄滅LED2
while (1);
}
如果要控制LED2燈閃爍,又該如何修改代碼呢?
參考代碼如下:
int32_t main(void)
{
unsigned long i;
GPIO_InitTypeDef GPIO_InitStruct;
CW_SYSCTRL->AHBEN_f.GPIOC = 1; //打開(kāi)GPIOC時(shí)鐘
//設(shè)置PC13為輸出模式
GPIO_InitStruct.Pins = GPIO_PIN_13; //PC13端口
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //配置為推挽輸出模式
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;//高速模式
GPIO_Init(CW_GPIOC, &GPIO_InitStruct);//初始化端口
while (1)
{
for(i=0;i
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
CW32
+關(guān)注
關(guān)注
1
文章
242
瀏覽量
1056
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
代碼+案例+生態(tài):武漢芯源半導(dǎo)體CW32嵌入式開(kāi)發(fā)實(shí)戰(zhàn)正式出版
,快速掌握 CW32 單片機(jī)的開(kāi)發(fā)技能。
我們相信,這本書(shū)的出版將為 CW32 單片機(jī)的推廣和應(yīng)用起到積極的推動(dòng)作用,也將進(jìn)一步促進(jìn)嵌入式開(kāi)發(fā)
發(fā)表于 03-03 15:14
CW32 MCU開(kāi)發(fā)資料匯總(手冊(cè)、工具、固件庫(kù))
32L083_StdPeriph_Lib.zip4、CW32 MCU開(kāi)發(fā)工具:*附件:CW-DAPLINK調(diào)試器驅(qū)動(dòng).zip*附件:CW-DAPLINK使用手冊(cè).pdf*附件:
發(fā)表于 07-27 14:47
【CW32飯盒派開(kāi)發(fā)板試用體驗(yàn)】+初識(shí)CW32飯盒派開(kāi)發(fā)板
盼星星,盼月亮,終于收到了CW32飯盒派開(kāi)發(fā)板?;叵肫鹉翘齑饛?fù)參加活動(dòng)郵件發(fā)出去的那一刻,就在期盼。
以前也了解過(guò)CW32單片機(jī),這是一款非常優(yōu)秀的32位單片機(jī)。外部資源也豐富。這回的CW32
發(fā)表于 05-29 15:51
cw32和stm32的區(qū)別
cw32和stm32的區(qū)別 CW32和STM32是兩種常見(jiàn)的單片機(jī),被廣泛應(yīng)用于各種電子設(shè)備中。在本文中,我們將深入探討CW32和STM32之間的區(qū)別和優(yōu)劣勢(shì)。 1. 硬件性能 硬件性能是衡量單片機(jī)
cw32和gd32的區(qū)別
cw32和gd32的區(qū)別 CW32和GD32是兩種不同的芯片系列,分別由WCH和GigaDevice公司推出,兩者有很多不同之處,下面我們來(lái)詳細(xì)介紹。 首先從CW32系列開(kāi)始,CW32
基于CW32的遙控循跡小車(chē)
本實(shí)驗(yàn)是使用CW32單片機(jī)制作一個(gè)入門(mén)的遙控循跡小車(chē)。遙控采用藍(lán)牙配合手機(jī)APP進(jìn)行遙控。循跡使用一個(gè)5路的循跡模塊。使用OLED模塊進(jìn)行顯示當(dāng)前小車(chē)狀態(tài)。
評(píng)論