1.2.1.新建keil工程文件夾
創(chuàng)建一個(gè)文件夾為CW32_new_pro,注意避免出現(xiàn)中文路徑和特殊符號(hào)
1.2.2.創(chuàng)建keil工程
打開keil,選擇Project->New uVision Project,選擇CW32_new_pro文件夾目錄,輸入項(xiàng)目名稱,例子使用CW32_new_pro

1.2.3.選擇芯片型號(hào)
芯片型號(hào)為CW32F003F4,如下:

1.2.4.選擇CMSIS固件

1.2.5.復(fù)制CW32庫文件和啟動(dòng)文件
復(fù)制CW32庫文件和啟動(dòng)文件到CW32_new_pro
庫文件路徑:CW32F003_StandardPeripheralLib_V1.4Libraries,
啟動(dòng)文件路徑:CW32F003_StandardPeripheralLib_V1.4IdeSupportMDKstartup_cw32f003.s

1.2.6.創(chuàng)建main.c
在keil中右鍵Source Group1(根據(jù)自己的group名稱還選擇),選擇Add New Item toGroupxxx,創(chuàng)建main.c文件.


1.2.7.添加庫文件和啟動(dòng)
在Groups,新建group取名為cw32_lib

選擇cw32_lib,點(diǎn)擊AddFiles,找到CW32_new_proLibrariessrc目錄,把所有.c選中,點(diǎn)擊Add->Close->OK,完成添加。

添加啟動(dòng)文件

1.2.8.添加頭文件路徑

1.2.9.選擇編譯器

1.2.10.main.c文件編寫
示例如下:
#include "base_types.h"
#include "cw32f003.h"
#include "system_cw32f003.h"
int32_t main(void)
{
CW_SYSCTRL- >AHBEN_f.GPIOC = 1U; // Open GPIOC Clk
CW_GPIOC- >ANALOG_f.PIN0 = 0U; // Digital
CW_GPIOC- >BRR_f.BRR0 = 1U; // Reset PA00
CW_GPIOC- >DIR_f.PIN0 = 0U; // Output
while (1)
{
CW_GPIOC- >TOG = bv0;//電平發(fā)名字卷
FirmwareDelay(100000);
}
}
1.2.11.編譯

點(diǎn)擊上圖所示的編譯選項(xiàng),會(huì)出現(xiàn)下圖所示的錯(cuò)誤,原因是重復(fù)定義了。

打開cw32f003_systick.c文件將164行的 __weak void SysTick_Handler(void) 修改為 void SysTick_Handler(void)。 即可解決14點(diǎn)的錯(cuò)誤
再次點(diǎn)擊編譯,無錯(cuò)誤,完成工程創(chuàng)建。

可以看到0個(gè)錯(cuò)誤,0個(gè)警告,至此,工程模板創(chuàng)建完成。
1.2.12 探討1.2.11的編譯報(bào)錯(cuò)原因:
CW32要用AC5編譯器,用AC6編譯會(huì)報(bào)錯(cuò),可能是這樣的錯(cuò)誤,還有一堆的警告

KEIL從MDK5.37版本開始已經(jīng)不集成AC5編譯器了,想用最新版本有兩個(gè)方法:
方法1: 最簡(jiǎn)單的方法是先安裝5.36再安裝最新版本,這樣AC5可以自動(dòng)集成到MDK中。
方法2: 安裝最新版本后手動(dòng)添加AC5編譯器
安裝完MDK后把ARMCC文件夾手動(dòng)放到keil安裝目錄的ARM文件夾中

然后在keil中手動(dòng)添加,選擇剛剛添加的文件夾


如果不想折騰安裝AC5編譯器,可以對(duì)現(xiàn)有工程代碼修改以適應(yīng)AC6的編譯規(guī)則
CW32的例程直接用AC6編譯的話一般會(huì)報(bào)這個(gè)錯(cuò)誤

AC6中__weak這個(gè)關(guān)鍵字不能被識(shí)別,改為__WEAK就好了(或如上刪去),關(guān)鍵字的不同可以看這個(gè)圖:

更多的關(guān)于MDK適配AC6的內(nèi)容可以下載KEIL官方的文檔進(jìn)行查看
[https://developer.arm.com/documentation/kan298/latest/]
或者看ARM的AC6介紹,里面也有說明如何從AC5轉(zhuǎn)向AC6
[https://developer.arm.com/documentation/100068/latest/]
1.2.13 補(bǔ)充:用AC6編譯有中文的代碼會(huì)報(bào)-Winvalid-source-encoding的警告
用AC6編譯有中文的代碼會(huì)報(bào)-Winvalid-source-encoding的警告

可以在下方如圖位置填入-Wno-invalid-source-encoding 將該警告信息屏蔽

審核編輯 黃宇
-
芯片
+關(guān)注
關(guān)注
462文章
53492瀏覽量
458437 -
mcu
+關(guān)注
關(guān)注
147文章
18586瀏覽量
385833 -
工程模板
+關(guān)注
關(guān)注
0文章
11瀏覽量
7048 -
CW32
+關(guān)注
關(guān)注
1文章
281瀏覽量
1665
發(fā)布評(píng)論請(qǐng)先 登錄
CW32F003怎么配置主頻?
NucleiStudio基于一代蜂鳥E203的工程創(chuàng)建
【RA4M2-SENSOR】1、開箱+新建模板工程
(芯源半導(dǎo)體)32位 無線射頻,超低功耗,通用高性能MCU,存儲(chǔ)芯片 選型
HarmonyOS5云服務(wù)技術(shù)分享--Serverless抽獎(jiǎng)模板部署
基于LockAI視覺識(shí)別模塊:C++多模板匹配
基于LockAI視覺識(shí)別模塊:C++多模板匹配
基于LockAI視覺識(shí)別模塊:C++模板匹配
基于LockAI視覺識(shí)別模塊:C++模板匹配
如何快速創(chuàng)建用戶自定義Board和App工程

CW32F003E4芯片入門學(xué)習(xí):3.工程模板的創(chuàng)建(不使用例程或模板)
評(píng)論