[LKS32 软件] 【凌鸥创芯电机开发板LKS32MC071CBT8评测报告】3.新建工程

[复制链接]
 楼主| yuyy1989 发表于 2023-6-20 09:01 | 显示全部楼层 |阅读模式
<
#申请原创# 3.新建工程
本帖介绍不使用例程,从头新建一个Keil工程的方法
新建一个文件夹用于存放工程文件和代码文件
QQ截图20230615085128.png
打开文件夹,将驱动库文件放入这个目录,另外根据自己的习惯建立存放工程文件和用户代码的文件夹
QQ截图20230615085356.png
打开Keil,选择project-new uVision Project
QQ截图20230615085639.png
工程保存位置选择刚刚创建的文件夹
QQ截图20230615085849.png
芯片型号选择Linko->LKS07 Series->LKS32MC071CBT8
QQ截图20230615085957.png
在Manage Run-Time Environment窗口勾选CMSIS CORE,驱动库对这个组件有依赖,不勾选编译会报错
QQ截图20230615090301.png
根据自己的习惯在工程下创建分组
QQ截图20230615090927.png
添加驱动库文件
QQ截图20230615091021.png
为了省事可以直接添加lks32mc07x_periph_driver\Source文件夹下的全部文件
QQ截图20230615091101.png
添加头文件包含路径,将lks32mc07x_periph_driver\Include和UserCode包含进来
QQ截图20230615091645.png
其它工程参数设置,按照例程的工程设置进行调整即可
如果你用的是新版本MDK,这里默认是用的AC6编译器,用这个编译库文件会报错需要改为AC5,MDK从5.37开始不再集成AC5编译器,如何在新版本MDK上使用AC5请自行百度
QQ截图20230615092323.png
修改烧录器为自己使用的型号,建议勾选上Reset and Run,不然烧录后需要手动复位程序才能运行
QQ截图20230615092924.png
QQ截图20230615093144.png
QQ截图20230615092618.png
创建main.c,并编写测试代码,这里写的是3个led流水灯的代码,需要注意的是LED3是低电平点亮,而LED1和LED2都是高电平点亮
QQ截图20230619164354.png
  1. #include "lks32mc07x.h"
  2. #include "lks32mc07x_gpio.h"
  3. #include "lks32mc07x_sys.h"

  4. #define LED_GPIO GPIO0
  5. #define LED1_PIN GPIO_Pin_6
  6. #define LED2_PIN GPIO_Pin_7
  7. #define LED3_PIN GPIO_Pin_3
  8. #define LED_PINS LED1_PIN|LED2_PIN|LED3_PIN

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

  25. void yuyy_delay_ms(uint16_t ms)
  26. {
  27.     while(ms--)
  28.         yuyy_delay_us(1000);
  29. }

  30. void SystemInit(void)
  31. {
  32.     SYS_MclkChoice(SYS_MCLK_96M_RC); /*选择当前主时钟频率*/
  33. }

  34. void led_init(void)
  35. {
  36.     GPIO_InitTypeDef GPIO_InitStruct;
  37.     GPIO_StructInit(&GPIO_InitStruct);

  38.     GPIO_StructInit(&GPIO_InitStruct);
  39.     GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
  40.     GPIO_InitStruct.GPIO_Pin =  LED_PINS;
  41.     GPIO_Init(LED_GPIO, &GPIO_InitStruct);
  42.     GPIO_ResetBits(LED_GPIO, LED1_PIN|LED2_PIN);
  43.     GPIO_SetBits(LED_GPIO, LED3_PIN);
  44. }

  45. void mcu_init(void)
  46. {
  47.     __disable_irq();         /* 关闭中断 中断总开关 */
  48.     SYS_WR_PROTECT = 0x7a83; /*使能系统寄存器写操作*/
  49.     FLASH_CFG |= 0x00080000; /* enable prefetch ,FLASH预取加速使能*/       
  50.     IWDG_DISABLE();                                                /*关闭清零看门狗*/
  51.     SYS_MclkChoice(SYS_MCLK_96M_RC); /*选择当前主时钟频率*/
  52.     SysClock = SYS_ReadMcuClk();
  53.     led_init();       
  54.     yuyy_delay_us(100);          /* 延时等待硬件初始化稳定 */
  55.     SYS_WR_PROTECT = 0x0;    /*关闭系统寄存器写操作*/
  56.     __enable_irq();          /* 开启总中断 */
  57. }

  58. int main(void)
  59. {
  60.     mcu_init();
  61.         while (1)
  62.         {
  63.         GPIO_SetBits(LED_GPIO, LED1_PIN);
  64.                 GPIO_ResetBits(LED_GPIO, LED2_PIN);
  65.         GPIO_SetBits(LED_GPIO, LED3_PIN);
  66.                 yuyy_delay_ms(200);
  67.         GPIO_ResetBits(LED_GPIO, LED1_PIN);
  68.                 GPIO_SetBits(LED_GPIO, LED2_PIN);
  69.         GPIO_SetBits(LED_GPIO, LED3_PIN);
  70.                 yuyy_delay_ms(200);
  71.         GPIO_ResetBits(LED_GPIO, LED1_PIN);
  72.                 GPIO_ResetBits(LED_GPIO, LED2_PIN);
  73.         GPIO_ResetBits(LED_GPIO, LED3_PIN);
  74.                 yuyy_delay_ms(200);
  75.         }
  76. }

编译烧录,查看效果
WeChat_20230619161819 00_00_00-00_00_30.gif

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

161

主题

815

帖子

10

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

161

主题

815

帖子

10

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