本帖最后由 lulugl 于 2023-10-28 07:56 编辑
#申请原创# #有奖活动# @21小跑堂 @21ic小可爱
【开发板介绍】
NUCLEO-L073RZ(stm32l073rzt6芯片)开发板,整体上这个板子沿用了传统的塑料包装。 简约不简单,内含纸板双面分别标有引脚图及芯片简单介绍和入门引导。Arduino™的连接支持和ST Morpho的扩展连接头使用户很容易扩大STM32 Nucleo板对外开发平台的功能,该平台提供了多种可供选择的适配外设板。STM32的Nucleo板集成了ST-LINK/V2-1调试器/编程器,和STM32 Nucleo板搭配的软件包有包含了众多例程的STM32 HAL软件库,在mbed在线平台上也能找到。
该开发板整体结构分为两部分,下载器部分和核心板部分独立分布,其中含有USB接口一侧的板为stlink下载仿真部分,按键及排针排座那一部分为主电路部分。灵活的跳线帽选择,可以使得我们还可以下载与调试其他stm32开发板,只需断开印有丝印“ST—LINK”的跳线帽,同时将CN4排针与其他stm32开发板相连即可。
核心板部分的外扩接口为Arduino标准接口,可以无缝对接常用的传感器,可以使得用户很快的投入研究与使用。无需自己跳线连接。板载一个低速的32768hz的晶振,毕竟主打低功耗芯片,主时钟选择内部振荡器,可以更加减少PCB布局,节约成本等。
开发板附带的彩页,注明STM32L073RZT6的主控芯片为ARM-Contex-M0+,32M主频,192KB的FLASH,20KB的内存,开发板板载了Arduino Uno标准接口与ST morpho接口,板载STM-LINK V2版本进行调试与下载固件。
【开发环境简介】
开发板可以在 win、Linux、MacOS下面进行开发。
开发工具支持MDK、IAR以及stm32cubeIde。
官方提供了stm32cube对开发板的RTOS、USB以及外设的示例。
本次开发采用win11下stm32cubeIDE进行示例的创建、编译、下载与调试。
【创建呼吸灯】
开发板板载了给用户使用的LED灯1个,一个用户使用的按键。工程达到的效果为实现呼吸灯。
1、下载与安装stm32CubeIDE(省略)。
2、打开stm32CubeIDE,(菜单:file->new->STM32 Project)打开新建stm32project对话框,选择board select,新建开发板工程,查询出开发板后选定,按下一步继续配置工程
3、输入工程名称后,按完成,等待工程创建完毕:
第一次生成工程需要等待从官网下载固件包,完成后就生成了工程:
4、要实现呼吸灯,需要配置LED2为PWM输出。在图上点击PA5切换到TM2-CH1。
5、配置钟频率为32MHz,同时TIM2总线的时钟也是32MHz:
6、使能TIM2通道1为PWM输出,时钟源为内部时钟(32MHz),分频为32,计数器为1000,即PWM波为1KHz的频率,使用自动重载,初始占空比为0。
7、选择生成单独的工程文件。按ALT+K或者工具栏上的按键生成代码。
8、添加用户代码:
首先添加使能tim2 channel1:
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);
然后添加呼吸灯代码,代码首先对占空比累加,达到100%后,我们再累减到零,往复修改形成呼吸灯的效果。
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(F == 0)
{
dutyCycle = dutyCycle+50;
if(dutyCycle >= 1000)
{
dutyCycle = 1000;
F = 1;
}
}
else{
dutyCycle = dutyCycle-50;
if(dutyCycle <= 0)
{
F = 0;
dutyCycle = 0;
}
}
__HAL_TIM_SET_COMPARE(&htim2,TIM_CHANNEL_1,dutyCycle);
HAL_Delay(50);
}
生成代码后,下载到开发板,用示波器接到PA5上观察PWM波形,从示波器上看频率为1KHz,与程度设计的一样。
视频效果如下:
【试用心得】
Stm32的生态非常好,特别是官方的开发板,stm32cubeIDE的开发板的创建工程非常简单,配置外设也是图形化的配置,用户体验感非常好。
|