#申请原创# @21小跑堂
先创建一个文件夹,把官方库放进去,可以按照自己喜欢的方式创建额外的文件夹
打开MDK,选择project-new uVision Project
保存位置选择MDK文件夹
在接下来的窗口中选择CW32L031C8
在接下来的窗口中勾选这两个,注意core后面的版本,如果版本低于5.1.0之后编译时还会报错,如何解决请参考开箱那篇帖子最后的链接
按照自己喜好在工程内创建分组,添加必要的库文件
选择工程目录下的Libraries\src中的文件
你可以直接全部添加,也可以只添加自己需要的,这里只添加了点灯必要的
添加库头文件路径,将工程目录中的Libraries\inc和USERCODE文件夹添加到路径中MDK会自动转为相对路径
如果有自己定义的头文件需要包含,也可以按照上面的流程添加,如果想使用绝对路径直接在这个界面输入路径即可,路径间用英文的;分隔
接下来配置工程其它参数,仿照官方例程的参数配置即可
这里可以选择使用AC6,有一个库文件没有适配AC6,但是现在没用到它,如果之前添加库文件时直接添加了全部,这里选AC6编译时就会报错,如何解决请参考开箱那篇帖子最后的链接
如果需要输出hex文件,要勾选这个
这里要选C99
修改自己使用的烧录器
成功识别烧录器和芯片的话这里是这样的
勾选这个,不然程序烧录完后不会自动运行
接下来创建一个main.c文件,在新建的main.c中写好点灯用的代码,顺便写一个Cotex-M系列内核通用的延时方法
#include "cw32l031.h"
#include "cw32l031_gpio.h"
#include "cw32l031_rcc.h"
#include "system_cw32l031.h"
extern uint32_t SystemCoreClock;
void yuyy_delay_us(uint16_t us)
{
uint32_t temp;
SysTick->CTRL = 0x0; /*!< disable systick function */
SysTick->LOAD = us * (SystemCoreClock/1000000); /*!< time count for 1us with SYSCLK */
SysTick->VAL = 0x00; /*!< clear counter */
SysTick->CTRL = 0x5; /*!< start discrease with Polling */
do
{
temp = SysTick->CTRL;
}
while ((temp & 0x01) && !(temp & (1 << 16))); /*!< wait time count done */
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; /*!< Close Counter */
SysTick->VAL = 0X00;
}
void yuyy_delay_ms(uint16_t ms)
{
while(ms--)
yuyy_delay_us(1000);
}
int32_t main(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
__RCC_GPIOB_CLK_ENABLE();
GPIO_InitStruct.IT = GPIO_IT_NONE;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pins = GPIO_PIN_8 | GPIO_PIN_9;
GPIO_Init(CW_GPIOB, &GPIO_InitStruct);
while (1)
{
GPIO_TogglePin(CW_GPIOB, GPIO_PIN_8);
yuyy_delay_ms(500);
GPIO_TogglePin(CW_GPIOB, GPIO_PIN_9);
yuyy_delay_ms(500);
}
}
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line)
{
/* USER CODE BEGIN 6 */
/* User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
/* USER CODE END 6 */
}
#endif
编译发现了一个警告,&比==的运算优先级低,还是处理一下比较好,加个括号就行了
运行效果
|
赞一下