New uVision Project,選擇CW32_new_pro文件夾目錄,輸入項目名稱,例子使用CW32_new_pro 1.2.3.選擇芯片型號 芯片型號為CW32F003F4,如下: 1.2.4.選擇CMSIS固件 1.2.5.復制CW32庫文件和啟動文件 復制CW32庫文件和啟動文件到CW32_new_pro 庫文件路徑:CW32F003_StandardPeripheralLib_V1.4Libraries, 啟動文件路徑:CW32F003_StandardPeripheralLib_V1.4IdeSupportMDKstartup_cw32f003.s 1.2.6.創(chuàng)建" />

RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CW32F003E4芯片入門學習:3.工程模板的創(chuàng)建(不使用例程或模板)

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2024-03-27 09:37 ? 次閱讀

1.2.1.新建keil工程文件夾

創(chuàng)建一個文件夾為CW32_new_pro,注意避免出現中文路徑和特殊符號

1.2.2.創(chuàng)建keil工程

打開keil,選擇Project->New uVision Project,選擇CW32_new_pro文件夾目錄,輸入項目名稱,例子使用CW32_new_pro

1.2.3.選擇芯片型號

芯片型號為CW32F003F4,如下:

1.2.4.選擇CMSIS固件

1.2.5.復制CW32庫文件和啟動文件

復制CW32庫文件和啟動文件到CW32_new_pro

庫文件路徑:CW32F003_StandardPeripheralLib_V1.4Libraries,

啟動文件路徑:CW32F003_StandardPeripheralLib_V1.4IdeSupportMDKstartup_cw32f003.s

1.2.6.創(chuàng)建main.c

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

1.2.7.添加庫文件和啟動

在Groups,新建group取名為cw32_lib

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

添加啟動文件

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.編譯

點擊上圖所示的編譯選項,會出現下圖所示的錯誤,原因是重復定義了。

打開cw32f003_systick.c文件將164行的 __weak void SysTick_Handler(void) 修改為 void SysTick_Handler(void)。 即可解決14點的錯誤

再次點擊編譯,無錯誤,完成工程創(chuàng)建。

可以看到0個錯誤,0個警告,至此,工程模板創(chuàng)建完成。

1.2.12 探討1.2.11的編譯報錯原因:

CW32要用AC5編譯器,用AC6編譯會報錯,可能是這樣的錯誤,還有一堆的警告

KEIL從MDK5.37版本開始已經不集成AC5編譯器了,想用最新版本有兩個方法:
方法1: 最簡單的方法是先安裝5.36再安裝最新版本,這樣AC5可以自動集成到MDK中。
方法2: 安裝最新版本后手動添加AC5編譯器

安裝完MDK后把ARMCC文件夾手動放到keil安裝目錄的ARM文件夾中

然后在keil中手動添加,選擇剛剛添加的文件夾

如果不想折騰安裝AC5編譯器,可以對現有工程代碼修改以適應AC6的編譯規(guī)則

CW32的例程直接用AC6編譯的話一般會報這個錯誤

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

更多的關于MDK適配AC6的內容可以下載KEIL官方的文檔進行查看
[https://developer.arm.com/documentation/kan298/latest/]
或者看ARM的AC6介紹,里面也有說明如何從AC5轉向AC6
[https://developer.arm.com/documentation/100068/latest/]

1.2.13 補充:用AC6編譯有中文的代碼會報-Winvalid-source-encoding的警告

用AC6編譯有中文的代碼會報-Winvalid-source-encoding的警告

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

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    455

    文章

    50714

    瀏覽量

    423131
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17123

    瀏覽量

    350978
  • 工程模板
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6858
  • CW32
    +關注

    關注

    1

    文章

    203

    瀏覽量

    626
收藏 人收藏

    評論

    相關推薦

    如何用VSCODE創(chuàng)建一個LE5010的工程模板

    我想問下,就是怎么用vscode來創(chuàng)建LE5010的工程模板,我看網上的資料很少很少,官方給的SDK有,但是只能SDK里面來寫代碼,所以就想問一問! (有償)
    發(fā)表于 12-04 10:01

    圖紙模板中的文本變量

    “ ?文本變量和系統(tǒng)自帶的內置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAME}?的方式
    的頭像 發(fā)表于 11-13 18:21 ?170次閱讀
    圖紙<b class='flag-5'>模板</b>中的文本變量

    A0到A4的圖框只要一個圖紙模板就搞定了?

    “ ?圖紙模板規(guī)范了圖紙的尺寸大小,同時可以在標題欄顯示與圖紙相關的信息,如產品名稱、版本、日期等。從標準化的角度考慮,公司通常會定義A0~A4的圖紙模板,用于不同的設計場合。KiCad提供了一種
    的頭像 發(fā)表于 11-13 18:13 ?259次閱讀
    A0到A<b class='flag-5'>4</b>的圖框只要一個圖紙<b class='flag-5'>模板</b>就搞定了?

    TPD4F003.TPD6F003.TPD8F003八通道EMI濾波器數據表

    電子發(fā)燒友網站提供《TPD4F003.TPD6F003.TPD8F003八通道EMI濾波器數據表.pdf》資料免費下載
    發(fā)表于 07-11 10:44 ?1次下載
    TPD<b class='flag-5'>4F003.TPD6F003.TPD8F003</b>八通道EMI濾波器數據表

    CW32數字電壓電流表軟件教程-實驗四:數碼管動態(tài)顯示

    顯示不同的值需要用到CW32的定時器功能,在定時器的中斷服務程序里面執(zhí)行顯示刷新的動作。有關CW32的定時器和中斷的相關知識請查看鏈接:【CW32F003E4核心板】入門
    的頭像 發(fā)表于 05-31 15:23 ?505次閱讀
    <b class='flag-5'>CW</b>32數字電壓電流表軟件教程-實驗四:數碼管動態(tài)顯示

    CW32F003E4芯片入門學習3.工程模板創(chuàng)建不使例程模板

    創(chuàng)建一個文件夾為CW32_new_pro,注意避免出現中文路徑和特殊符號
    的頭像 發(fā)表于 04-24 14:15 ?508次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:<b class='flag-5'>3.</b><b class='flag-5'>工程</b><b class='flag-5'>模板</b>的<b class='flag-5'>創(chuàng)建</b>(<b class='flag-5'>不使</b>用<b class='flag-5'>例程</b><b class='flag-5'>或</b><b class='flag-5'>模板</b>)

    CW32F003E4芯片入門學習4.工程模板創(chuàng)建(使用例程模板)

    模板路徑:CW32F003_StandardPeripheralLib_V1.4ExamplesTemplate
    的頭像 發(fā)表于 04-24 14:14 ?399次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:<b class='flag-5'>4</b>.<b class='flag-5'>工程</b><b class='flag-5'>模板</b><b class='flag-5'>創(chuàng)建</b>(使用<b class='flag-5'>例程</b><b class='flag-5'>或</b><b class='flag-5'>模板</b>)

    STM32L4R5生成工程模板時,必須使用CubeMx,但是生成的程序編譯極慢為什么?

    開發(fā)STM32L4R5芯片。在生成工程模板時,必須使用CubeMx,但是生成的程序編譯極慢 1、采用compiler 5編譯很慢,但是不報錯。 2、采用complier6編譯較快,但是
    發(fā)表于 04-19 07:32

    CW32F003E4芯片入門學習:器件包安裝

    安裝CW32的pack包,可以從武漢芯源官網下載固件庫
    的頭像 發(fā)表于 04-02 14:25 ?608次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:器件包安裝

    CW32F003E4芯片入門學習:開發(fā)環(huán)境安裝

    最近,Keil官方推出了一則消息:Keil MDK新增了一個版本,MDK社區(qū)版(MDK_Community edition)。
    的頭像 發(fā)表于 04-02 14:22 ?1270次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:開發(fā)環(huán)境安裝

    CW32F003E4芯片入門學習4.工程模板創(chuàng)建(使用例程模板)

    1.3.1拷貝模板工程和庫文件 模板路徑:CW32F003_StandardPeripheralLib_V1.4ExamplesTemplate 庫文件路徑
    的頭像 發(fā)表于 03-27 09:39 ?498次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:<b class='flag-5'>4</b>.<b class='flag-5'>工程</b><b class='flag-5'>模板</b><b class='flag-5'>創(chuàng)建</b>(使用<b class='flag-5'>例程</b><b class='flag-5'>或</b><b class='flag-5'>模板</b>)

    CW32F003E4芯片入門學習:2.器件包安裝

    “Next”按鈕進行安裝,如圖1-2-3所示。 注:其他CW32芯片包的安裝方式均相同。 1.1.3 可能遇到的報錯及解決辦法 雙擊pack包安裝時,會彈出這個報錯: 原因可能是 KEIL 版本更新,對器件包格式有新的限定。
    的頭像 發(fā)表于 03-27 09:32 ?679次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:2.器件包安裝

    CW32F003E4芯片入門學習:1.開發(fā)環(huán)境安裝

    1.1.Keil社區(qū)版介紹 最近,Keil官方推出了一則消息:Keil MDK新增了一個版本,MDK社區(qū)版(MDK_Community edition)。 該版本主要有以下幾個特點: 可供電子愛好者、學生、學者等群體非商業(yè)免費評估和使用。 沒有代碼大小限制。 支持Arm Compiler 6:可為所有基于Arm Cortex-M的產品提供精簡的代碼和強大的性能。 可訪問超過9500款支持基于Cortex-M處理器的微控制器器件。 可用于基于Arm架構的微處理器的CMSIS標準框架。 大量可免費使用的中間件(keil RTX5、lwIP、CMSIS-FreeR
    的頭像 發(fā)表于 03-27 09:27 ?538次閱讀
    <b class='flag-5'>CW32F003E4</b><b class='flag-5'>芯片</b><b class='flag-5'>入門</b><b class='flag-5'>學習</b>:1.開發(fā)環(huán)境安裝

    使用Jenkins和單個模板部署多個Kubernetes組件

    在持續(xù)集成和部署中,我們通常需要部署多個實例組件到Kubernetes集群中。通過Jenkins的管道腳本,我們可以自動化這個過程。在本文中,我將演示如何使用Jenkins Pipeline及單個
    的頭像 發(fā)表于 01-02 11:40 ?759次閱讀
    使用Jenkins和單個<b class='flag-5'>模板</b>部署多個Kubernetes組件

    如何使用CMW500測試頻譜模板

    在使用CMW500測試頻譜模板之前,首先我們需要了解什么是頻譜模板以及其在通信系統(tǒng)測試中的作用。頻譜模板是指在特定的頻率范圍內,記錄了該頻率范圍內的信號功率譜密度的一種圖形表示。在通信系統(tǒng)測試中
    的頭像 發(fā)表于 12-25 15:10 ?1610次閱讀
    RM新时代网站-首页