专栏名称: 武汉芯源半导体
武汉芯源半导体有限公司,于2018年8月28日成立,注册资本伍仟万元,为上市公司武汉力源信息技术股份有限公司全资子公司,专业负责自研芯片的研发、设计、推广、销售及技术服务相关业务。
目录
相关文章推荐
成都本地宝  ·  2025春节放假安排!成都第一波活动抢先看→ ·  昨天  
清廉蓉城  ·  小寒丨雁归年将至,雪伴寒梅香 ·  昨天  
成都发布  ·  成都6条国际航线上新! ·  2 天前  
51好读  ›  专栏  ›  武汉芯源半导体

CW32F003E4芯片入门学习:3.工程模板的创建(不使用例程或模板)

武汉芯源半导体  · 公众号  ·  · 2024-04-24 10:00

正文

  1.2.1.新建keil工程文件夹

  创建一个文件夹为CW32_new_pro,注意避免出现中文路径和特殊符号

  1.2.2.创建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.4\Libraries,

启动文件路径:CW32F003_StandardPeripheralLib_V1.4\IdeSupport\MDK\startup_cw32f003.s

1.2.6.创建main.c

在keil中右键Source Group1(根据自己的group名称还选择),选择Add New Item toGroupxxx,创建main.c文件.

1.2.7.添加库文件和启动

在Groups,新建group取名为cw32_lib

选择cw32_lib,点击AddFiles,找到CW32_new_pro\Libraries\src目录,把所有.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;//电平发名字卷 FirmwareDelay(100000); }}

1.2.11.编译

点击上图所示的编译选项,会出现下图所示的错误,原因是重复定义了。

打开cw32f003_systick.c文件将164行的__weak void SysTick_Handler(void)修改为void SysTick_Handler(void)。即可解决14点的错误

再次点击编译,无错误,完成工程创建。

可以看到0个错误,0个警告,至此,工程模板创建完成。


1.2.12 探讨1.2.11的编译报错原因:

CW32要用AC5编译器,用AC6编译会报错,可能是这样的错误,还有一堆的警告

KEIL从MDK5.37版本开始已经不集成AC5编译器了,想用最新版本有两个方法:方法1: 最简单的方法是先安装5.36再安装最新版本,这样AC5可以自动集成到MDK中。


安装完MDK后把ARMCC文件夹手动放到keil安装目录的ARM文件夹中

然后在keil中手动添加,选择刚刚添加的文件夹

如果不想折腾安装AC5编译器,可以对现有工程代码修改以适应AC6的编译规则

CW32的例程直接用AC6编译的话一般会报这个错误

AC6中__weak这个关键字不能被识别,改为__WEAK就好了(或如上删去),关键字的不同可以看这个图:

更多的关于MDK适配AC6的内容可以下载KEIL官方的文档进行查看https://developer.arm.com/documentation/kan298/latest/或者看ARM的AC6介绍,里面也有说明如何从AC5转向AC6https://developer.arm.com/documentation/100068/latest/

1.2.13 补充:用AC6编译有中文的代码会报-Winvalid-source-encoding的警告

用AC6编译有中文的代码会报-Winvalid-source-encoding的警告

可以在下方如图位置填入-Wno-invalid-source-encoding 将该警告信息屏蔽



END


往期回顾

REVIEW

【产品应用】CW32电动工具产品开源

【产品应用】基于CW32的智能充电宝(方案开源)

【产品应用】CW-W88水泵通用控制板设计方案(已开源)

【产品应用】基于CW32的角磨机控制器产品方案

【产品方案】基于CW32F030C8的低压无刷风机无感控制器

CW32生态社区(WX)群



扫码加入QQ群

3群| 610403240

获取资料及“开发者扶持计划”第一手资讯