[CW32F030系列] 【CW32F030CxTx StartKit测评】1.LED测试

[复制链接]
1012|2
 楼主| zhouminjie 发表于 2022-7-7 23:15 | 显示全部楼层 |阅读模式
本帖最后由 zhouminjie 于 2022-7-8 22:06 编辑

非常感谢芯源和二姨给予这次测评CW32F030CxTx StartKit开发板的机会,CW32F030是芯源自主研发的首款基于 Cortex-M0+ 内核MCU,与其他品牌Pin2Pin引脚兼容,可以满足各种基础应用
微信图片_20220705224041.jpg

下载.png

CW32F030CxTx StartKit开发板上没有板载仿真器,建议在以后推出的开发板上能增加板载仿真器,板载资源比较丰富,除了LED指示灯和轻触开关外,还包括了华邦25Q64Flash芯片、24C02 EEPROM芯片以及USB转串口芯片CH340
开发板原理图: PSMCU0006.pdf (52.28 KB, 下载次数: 1)

1、开发环境设置
Keil软件安装完成后,在芯源官网下载芯片固件库CW32F030_StdPeriph_Lib压缩文件(下载地址:https://www.whxy.com/support/filelist?id=13&c=8)
1.png


下载完成后解压压缩文件,找到PSMCU0005--->cw32f030-stdperiph-lib--->IdeSupport--->MDK--->PS.CW32F030_DFP.1.0.1.pack
1.png


双击安装.pack文件,安装完成后Keil便支持芯源芯片
也可在keil中点击Pack Installer进行安装
2.png


在Pack Installer界面中,点击选择File--->Import…
3.png


在对话框中选择.pack文件路径,找到.pack文件后,点击打开,开始安装
4.png


安装完成后,Device一栏中会显示
5.png



2、新建工程
新建工程文件夹CW32F030CxTx_LEDtest,工程文件夹中新建各子文件夹
6.png


点击Project--->New uVision Project…
选择进入CW32F030CxTx_LEDtest中Mdk文件夹,输入project工程名,点击保存
7.png


选择芯片型号CW32F030C8,点击OK
9.png


在显示的Manage Run-Time Environment对话框中,需要√选CMSIS--->CORE(注意此处和其他厂商32位机新建工程时不同),点击OK
10.png


点击File Extensions, Books and Environment…
11.png


在Manage Project Items中,新建Groups,并在其中添加相应的.c文件,点击OK
12.png


Project一栏中显示
13.png


点击Options for Target…
14.png


Output一栏勾选Create HEX File
15.png


C/C++--->IncludePaths中添加工程.h文件路径
16.png

17.png



Debug一栏选择仿真器仿真,仿真器选用J-LINK
18.png




3、硬件
PB9引脚连接LED1,使用J-LINK的SWD模式,连接VCC、GND、SWDIO、SWCLK
19.png

20.jpg


21.png

微信图片_20220705224022.jpg


4、软件
LED1驱动引脚PB9的复用功能GTIM4_CH1,通用定时器4作PWM输出功能时,PB9作为CH1输出
22.png


GTIM配置PWM功能输出时,需注意预分频系数只可设置为2的N次方,这里和其他32位机有所区别
23.png


GTIM4作PWM输出时,使用的是定时器模式,根据PWM周期时间及分频系数,便可计算出重载值ARR
24.png


PWM配置步骤
25.png


PWM初始化
  1. void hal_pwmInit(void)
  2. {
  3.     GPIO_InitTypeDef GPIO_InitStructure;
  4.     GTIM_InitTypeDef GTIM_InitStructure;

  5.     __RCC_GPIOB_CLK_ENABLE();
  6.     __RCC_GTIM4_CLK_ENABLE();

  7.     GPIO_InitStructure.IT = GPIO_IT_NONE;
  8.     GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
  9.     GPIO_InitStructure.Pins = LED2_PIN;
  10.     GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
  11.     PB09_AFx_GTIM4CH1();
  12.     GPIO_Init(LED2_PORT, &GPIO_InitStructure);

  13.     GTIM_InitStructure.Mode = GTIM_MODE_TIME;
  14.     GTIM_InitStructure.OneShotMode = GTIM_COUNT_CONTINUE;
  15.     GTIM_InitStructure.Prescaler = GTIM_PRESCALER_DIV8; //TCLKD = PCLK / 8 = 48MHz / 8 = 6MHz
  16.     GTIM_InitStructure.ReloadValue = 2999; //ARR值 = 500(PWM周期值us) / (1 / 6(MHz)) - 1 = 500 * 6 - 1
  17.     GTIM_InitStructure.ToggleOutState = DISABLE;

  18.     GTIM_TimeBaseInit(CW_GTIM4, >IM_InitStructure);
  19.     GTIM_OCInit(CW_GTIM4, GTIM_CHANNEL1, GTIM_OC_OUTPUT_PWM_LOW);
  20.     GTIM_SetCompare1(CW_GTIM4, 0);
  21.     //GTIM_ITConfig(CW_GTIM4, GTIM_IT_OV, ENABLE);

  22.     GTIM_Cmd(CW_GTIM4, ENABLE);
  23. }

呼吸灯效果处理
  1. void BreathingProc(void)
  2. {
  3.     static unsigned short dir, LEDPwmVal;

  4.     if(dir == 0) //从暗到亮
  5.         LEDPwmVal += 10;
  6.     else //从亮到暗
  7.         LEDPwmVal -= 10;

  8.     if(LEDPwmVal > 2999)
  9.         dir = 1;

  10.     if(LEDPwmVal == 0)
  11.         dir = 0;

  12.     GTIM_SetCompare1(CW_GTIM4, LEDPwmVal);
  13. }

main函数
  1. int main(void)
  2. {
  3.     //RCC_HSI_Enable(RCC_HSIOSC_DIV6); //系统上电复位完成后默认选择HSI 作为SysClk 的时钟源,时钟频率默认值是8MHz(48MHz6分频)
  4.                 //RCC_HSE_Enable( RCC_HSE_MODE_OSC, 16000000, RCC_HSE_DRIVER_NORMAL, RCC_HSE_FLT_CLOSE); //外部高速时钟作为系统时钟源,板载晶振频率16MHz
  5.         
  6.                 hal_CPUInit();
  7.     hal_ledInit();
  8.                 hal_pwmInit();
  9.         
  10.     OS_TaskInit();
  11.     //OS_TaskCreat(OS_TASK1, LedProc, 1, OS_SLEEP); //10ms调用一次
  12.         
  13.                 OS_TaskCreat(OS_TASK2, BreathingProc, 1, OS_SLEEP); //10ms调用一次
  14.         
  15.     OS_Start();
  16. }

5、调试验证LED1呼吸灯显示效果
WeChat_20220705224059_-min (2).gif


6、测试代码
CW32F030CxTx_LEDtest.rar (2.77 MB, 下载次数: 4)


海滨消消 发表于 2022-8-15 11:06 来自手机 | 显示全部楼层
恭喜点灯成功
mickit 发表于 2022-8-16 20:07 | 显示全部楼层
这个学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

140

帖子

3

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