CW32L010 Mini Broad 上手体验【01|点灯】
<div class='showpostmsg'> 本帖最后由 Lioyae 于 2024-11-29 21:39 编辑<p><span style="font-size:20px;">CW32L010 Mini Broad 上手体验【01|点灯】</span></p>
<p><span style="color:#f1c40f;">相关资料</span></p>
<p>CW32L010数据手册、用户手册、固件库(<a href="https://www.whxy.com/index.php/anquandigonghaoMCU/CW32L010F8U6.html?act=doc)" target="_blank">https://www.whxy.com/index.php/anquandigonghaoMCU/CW32L010F8U6.html?act=doc)</a></p>
<p>CW32L010 Mini Broad 立创硬件开源链接(<a href="https://oshwhub.com/beauty_light/cw32l010-mini-board)" target="_blank">https://oshwhub.com/beauty_light/cw32l010-mini-board)</a></p>
<p><span style="color:#f1c40f;">产品参数</span></p>
<div style="text-align: center;"></div>
<p>•内核:ARM® Cortex®-M0+</p>
<p> – 最高主频 48MHz</p>
<p>•工作温度:-40℃ 至 85℃;工作电压:1.62V 至 5.5V</p>
<p>•存储容量</p>
<p> – 最大 64K 字节 FLASH,数据保持 25 年 @-40℃ ~ +85℃,支持擦写保护、读保护和安全运行库保护功能</p>
<p> – 最大 4K 字节 RAM,支持硬件奇偶校验</p>
<p> –22 字节 OTP 存储器</p>
<p>•CRC 硬件计算单元</p>
<p>•复位和电源管理</p>
<p> – 低功耗模式(Sleep,DeepSleep)</p>
<p> – 上电和掉电复位(POR/BOR)</p>
<p> –可编程低电压检测器(LVD)</p>
<p>•时钟管理</p>
<p> – 4 ~ 32MHz 晶体振荡器</p>
<p> – 32kHz 低速晶体振荡器</p>
<p> – 内置 48MHz RC 振荡器</p>
<p> – 内置 32kHz RC 振荡器</p>
<p> – 时钟监测系统</p>
<p> – 允许独立关断各外设时钟</p>
<p>•支持最多 16+1 路 I/O 接口</p>
<p> – 所有 I/O 口支持具备滤波的中断功能</p>
<p> – 所有 I/O 口支持具备滤波的唤醒功能</p>
<p> – 所有 I/O 口支持迟滞及上拉输入</p>
<p> – 所有 I/O 口支持推挽及开漏输出</p>
<p>•12 位模数转换器</p>
<p> – 最高 2M SPS 转换速度,各序列通道采样时间可单独配置</p>
<p> – 具备 8 个转换结果寄存器</p>
<p> – 内置 1.2V 电压基准</p>
<p> – 模拟看门狗功能</p>
<p> – 内置温度传感器</p>
<p>•双路电压比较器</p>
<p>•实时时钟和日历</p>
<p> – 支持由 Sleep/DeepSleep 模式唤醒4 / 66</p>
<p>•定时器</p>
<p> – 16 位高级控制定时器,支持 6 路输入捕获,支持 6 对带死区的互补 PWM 输出,支持双点比较,支持PWM 移相</p>
<p> – 一组 16 位通用定时器</p>
<p> – 三组 16 位基本定时器</p>
<p> – 一组 16 位低功耗定时器</p>
<p> – 独立看门狗定时器</p>
<p>•通信接口</p>
<p> – 二路低功耗 UART,支持小数波特率,支持低功耗接收数据,支持可配置电平转换,其中一路支持LIN 通信接口</p>
<p> – 一路 SPI 接口 24Mbit/s,支持 4~16bit 位宽</p>
<p> – 一路 I2C 接口 1Mbit/s,支持可配置电平转换,支持 SMBUS</p>
<p> – IR 调制器,可编程占空比和极性</p>
<p>•串行调试接口 (SWD)</p>
<p>•80 位唯一 ID</p>
<p>以上内容摘抄自官方数据手册。</p>
<p><span style="color:#f1c40f;">开发环境搭建以及点灯</span></p>
<p>1.下载并安Keil</p>
<p>2.下载并安装 WHXY.CW32L010_DFP.1.0.0.pack,其位置在下载的固件库文件中路径为这个的 XXXX\CW32L010_StandardPeripheralLib_V1.0.3\IDEsupport\MDK 文件夹内</p>
<p>准备完开发环境我们开始点灯,首先找到官方提供的原理图,从原理图上我们可以看到,在在最下方有一个板载 LED,GPIO 口为 PB 00。</p>
<div style="text-align: center;"></div>
<p>接下来我们打开从官网下载的示例程序打开路径为 CW32L010_StandardPeripheralLib_V1.0.3\Examples\GPIO\gpio_blink\MDK</p>
<p>文件双击 Project.uvprojx 打开 Keil 工程,打开后双击右侧 USER文件下的 main.c 文件此为官方例程。</p>
<div style="text-align: center;"></div>
<p>根据官方例程我们进行一仿写,即可得到我们自己的点灯程序。注:开发板到手后内部并未烧录程序,此点在开发板介绍中有提到。</p>
<pre>
<code class="language-cpp">#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
}
}</code></pre>
<p>写完程序编译运行,结果如下:</p>
<div style="text-align: center;"></div>
<p> </p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>这个芯片功耗应该很低吧,话说这板子是真的小。</p>
页:
[1]