打印
[产品介绍及宣传专区]

CW32L010 Mini Broad 上手体验【01|点灯】

[复制链接]
34|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Lioyae|  楼主 | 2024-11-29 21:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Lioyae 于 2024-11-29 21:28 编辑

#申请原创#
CW32L010 Mini Broad 上手体验【01|点灯】
相关资料
CW32L010数据手册、用户手册、固件库
CW32L010 Mini Broad 立创硬件开源链接
产品参数

  • 内核:ARM® Cortex®-M0+
          – 最高主频 48MHz
  • 工作温度:-40℃ 至 85℃;工作电压:1.62V 至 5.5V
  • 存储容量
          – 最大 64K 字节 FLASH,数据保持 25 年 @-40℃ ~ +85℃,支持擦写保护、读保护和安全运行库保护功能
          – 最大 4K 字节 RAM,支持硬件奇偶校验
          – 22 字节 OTP 存储器
  • CRC 硬件计算单元
  • 复位和电源管理
          – 低功耗模式(Sleep,DeepSleep)
          – 上电和掉电复位(POR/BOR)
          – 可编程低电压检测器(LVD)
  • 时钟管理
          – 4 ~ 32MHz 晶体振荡器
          – 32kHz 低速晶体振荡器
          – 内置 48MHz RC 振荡器
          – 内置 32kHz RC 振荡器
          – 时钟监测系统
          – 允许独立关断各外设时钟
  • 支持最多 16+1 路 I/O 接口
  • 所有 I/O 口支持具备滤波的中断功能
          – 所有 I/O 口支持具备滤波的唤醒功能
          – 所有 I/O 口支持迟滞及上拉输入
          – 所有 I/O 口支持推挽及开漏输出
  • 12 位模数转换器
          – 最高 2M SPS 转换速度,各序列通道采样时间可单独配置
          – 具备 8 个转换结果寄存器
          – 内置 1.2V 电压基准
          – 模拟看门狗功能
          – 内置温度传感器
  • 双路电压比较器
  • 实时时钟和日历
          – 支持由 Sleep/DeepSleep 模式唤醒4 / 66
  • 定时器
          – 16 位高级控制定时器,支持 6 路输入捕获,支持 6 对带死区的互补 PWM 输出,支持双点比较,支持PWM 移相
          – 一组 16 位通用定时器
          – 三组 16 位基本定时器
          – 一组 16 位低功耗定时器
          – 独立看门狗定时器
  • 通信接口
          – 二路低功耗 UART,支持小数波特率,支持低功耗接收数据,支持可配置电平转换,其中一路支持LIN 通信接口
          – 一路 SPI 接口 24Mbit/s,支持 4~16bit 位宽
          – 一路 I2C 接口 1Mbit/s,支持可配置电平转换,支持 SMBUS
          – R 调制器,可编程占空比和极性
  • 串行调试接口 (SWD)
  • 80 位唯一 ID
以上内容摘抄自官方数据手册。
开发环境搭建以及点灯
1.下载并安Keil
2.下载并安装 WHXY.CW32L010_DFP.1.0.0.pack,其位置在下载的固件库文件中路径为这个的 XXXX\CW32L010_StandardPeripheralLib_V1.0.3\IDEsupport\MDK 文件夹内
准备完开发环境我们开始点灯,首先找到官方提供的原理图,从原理图上我们可以看到,在在最下方有一个板载 LED,GPIO 口为 PB 00。

接下来我们打开从官网下载的示例程序打开路径为 CW32L010_StandardPeripheralLib_V1.0.3\Examples\GPIO\gpio_blink\MDK
文件双击 Project.uvprojx 打开 Keil 工程,打开后双击右侧 USER文件下的 main.c 文件此为官方例程。

根据官方例程我们进行一仿写,即可得到我们自己的点灯程序。注:开发板到手后内部并未烧录程序,此点在开发板介绍中有提到。
#include "../inc/main.h"

#define LED_GPIO_PORT CW_GPIOB
#define LED_GPIO_PINS GPIO_PIN_0

int main(void)
{
        GPIO_InitTypeDef        GPIO_InitStruct = {0};
   
        SYSCTRL_HSI_Enable(SYSCTRL_HSIOSC_DIV1);
        __SYSCTRL_GPIOB_CLK_ENABLE();
        
        GPIO_InitStruct.IT = GPIO_IT_NONE;
        GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_InitStruct.Pins = LED_GPIO_PINS;
        GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
   
        while(1)
        {
                GPIO_TogglePin(LED_GPIO_PORT, LED_GPIO_PINS);
                FirmwareDelay(1000000);                        // 此为系统时钟延时函数,单位为us
        }               
}

写完程序编译运行,结果如下:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝