[开发板] 【CW32L031CxTx StartKit评估板测评】2.新建工程并点灯

[复制链接]
 楼主| yuyy1989 发表于 2023-9-23 17:43 | 显示全部楼层 |阅读模式
#申请原创# @21小跑堂  

先创建一个文件夹,把官方库放进去,可以按照自己喜欢的方式创建额外的文件夹
QQ截图20230923124006.png
打开MDK,选择project-new uVision Project
QQ截图20230923124044.png
保存位置选择MDK文件夹
QQ截图20230923124114.png
在接下来的窗口中选择CW32L031C8
QQ截图20230923124136.png
在接下来的窗口中勾选这两个,注意core后面的版本,如果版本低于5.1.0之后编译时还会报错,如何解决请参考开箱那篇帖子最后的链接
QQ截图20230923124247.png
按照自己喜好在工程内创建分组,添加必要的库文件
QQ截图20230923165635.png
选择工程目录下的Libraries\src中的文件
QQ截图20230923165725.png 你可以直接全部添加,也可以只添加自己需要的,这里只添加了点灯必要的
QQ截图20230923173216.png
添加库头文件路径,将工程目录中的Libraries\inc和USERCODE文件夹添加到路径中MDK会自动转为相对路径
QQ截图20230923165946.png QQ截图20230923173314.png
如果有自己定义的头文件需要包含,也可以按照上面的流程添加,如果想使用绝对路径直接在这个界面输入路径即可,路径间用英文的;分隔
QQ截图20230923173440.png
接下来配置工程其它参数,仿照官方例程的参数配置即可
这里可以选择使用AC6,有一个库文件没有适配AC6,但是现在没用到它,如果之前添加库文件时直接添加了全部,这里选AC6编译时就会报错,如何解决请参考开箱那篇帖子最后的链接
QQ截图20230923172404.png
如果需要输出hex文件,要勾选这个
QQ截图20230923172416.png
这里要选C99
QQ截图20230923172444.png
修改自己使用的烧录器
QQ截图20230923170115.png
成功识别烧录器和芯片的话这里是这样的
QQ截图20230923111124.png
勾选这个,不然程序烧录完后不会自动运行
QQ截图20230923111140.png
接下来创建一个main.c文件,在新建的main.c中写好点灯用的代码,顺便写一个Cotex-M系列内核通用的延时方法
  1. #include "cw32l031.h"
  2. #include "cw32l031_gpio.h"
  3. #include "cw32l031_rcc.h"
  4. #include "system_cw32l031.h"

  5. extern uint32_t SystemCoreClock;
  6. void yuyy_delay_us(uint16_t us)
  7. {
  8.     uint32_t temp;
  9.     SysTick->CTRL = 0x0;               /*!< disable systick function */
  10.     SysTick->LOAD = us * (SystemCoreClock/1000000);         /*!< time count for 1us with SYSCLK */
  11.     SysTick->VAL  = 0x00;              /*!< clear counter */
  12.     SysTick->CTRL = 0x5;               /*!< start discrease with Polling */
  13.     do
  14.     {
  15.         temp = SysTick->CTRL;
  16.     }
  17.     while ((temp & 0x01) && !(temp & (1 << 16))); /*!< wait time count done */
  18.     SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;    /*!< Close Counter */
  19.     SysTick->VAL   = 0X00;
  20. }

  21. void yuyy_delay_ms(uint16_t ms)
  22. {
  23.     while(ms--)
  24.         yuyy_delay_us(1000);
  25. }

  26. int32_t main(void)
  27. {
  28.     GPIO_InitTypeDef GPIO_InitStruct = {0};
  29.     __RCC_GPIOB_CLK_ENABLE();

  30.     GPIO_InitStruct.IT = GPIO_IT_NONE;
  31.     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  32.     GPIO_InitStruct.Pins = GPIO_PIN_8 | GPIO_PIN_9;

  33.     GPIO_Init(CW_GPIOB, &GPIO_InitStruct);

  34.     while (1)
  35.     {
  36.         GPIO_TogglePin(CW_GPIOB, GPIO_PIN_8);
  37.         yuyy_delay_ms(500);
  38.         GPIO_TogglePin(CW_GPIOB, GPIO_PIN_9);
  39.         yuyy_delay_ms(500);
  40.     }
  41. }

  42. #ifdef  USE_FULL_ASSERT
  43. void assert_failed(uint8_t* file, uint32_t line)
  44. {
  45.     /* USER CODE BEGIN 6 */
  46.     /* User can add his own implementation to report the file name and line number,
  47.        tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  48.        /* USER CODE END 6 */
  49. }
  50. #endif
编译发现了一个警告,&比==的运算优先级低,还是处理一下比较好,加个括号就行了

QQ截图20230923170911.png QQ截图20230923170936.png
运行效果
24811fda938e9b8104bb1dfd1a73076d 00_00_00-00_00_30.gif

评论

赞一下  发表于 2023-9-25 10:30
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:同飞软件研发工程师
简介:制冷系统单片机软件开发,使用PID控制温度

161

主题

815

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部
认证:同飞软件研发工程师
简介:制冷系统单片机软件开发,使用PID控制温度

161

主题

815

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部