你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【2025·STM32峰会】参加STM32U3-ULP低功耗实训

[复制链接]
阿青_STM32 发布时间:2025-5-18 23:57

线下实训时间安排:9:00-9:30签到获取NUCLEO-U385RG-Q开发板;9:30-10:00进行实验前宣导;10:00-12:30进行个人独立实验。

在参会前,由于知道本人的电脑电池已经接近报废,必须插上电源才能正常使用,因此自备了小米排插,结果一到会场,让我大吃一惊,现场每个座位下都备好了排插,会场准备的相当充分,体验非常不错。不像之前参加瑞萨与RT-Thread联合举办的线下实践活动,电脑电池续航不行的,只能看着旁边的小伙伴玩。

找好位置后,第一时间拿小卡片签到,领开发板,本以为拿了两根新的Type-C数据线,不需要借领数据线,后来才发现自己的数据线居然不能正常通讯,不得不再借领数据线。

由于会前都下载好了软件工具,因此就不需要借用技术人员提供的U盘进行拷贝了,扫码进入微信群,方便获取本次宣导的指导性文件。完成实验目标的三个任务,根据登记时间,排名前五的可以获得ST电脑背包一个。

实验目标.png

实验前刚一宣讲,本人电脑屏幕一黑,哦豁,完犊子了,排插没电了,报告给ST技术人员,不久后排插恢复来电,立马开机,根据微信群中分享的“2025_Summit_STM32U3_Workshop_V1.1.pdf”文档进行实验,万万没想到,第一步就踩坑了。打开STM32CubeMX,本来新建工程选择的是芯片型号,而习惯性的选择从板卡类型开始,这样导致了后面的报错。

新建工程入口.png

正如上面图示,如果选择从板卡类型新建工程,然后按照文档指示,设定管脚为如下:

管脚设置.png

屏蔽管脚.png

SYSCLK默认96MHz,如果是从选择芯片型号新建工程,则需要调整分频系数,使其HCLK为96MHz(最高)。导出工程时选择采用"STM32CubeIDE"打开,下面的固件包存储位置默认是在C盘,而本人已将固件包下载到其它盘了,勾选了“Use Default Firmware Location”,CubeMX检测到默认路径下没有固件包,则生成工程前会自动在线重新下载“STM32Cube_FW_U3_V1.1.0”。

导出工程.png

由于新建工程的入口是选择从板卡型号开始,导出的工程使用STM32CubeIDE打开,编译则会报错。

编译报错.png

按照常理,在没有添加任何C代码,直接编译的话应该是没错误,没警告才属正常,为啥会这样?于是乎请教ST技术人员,结果第一位FAE也不知道是为啥,然后他帮我请来另一位技术人员,才告知我CubeMX不能从选板卡型号处新建工程,必须从选MCU芯片型号新建工程。

于是乎重新新建工程,创建按键中断,设定HCLK为96MHz,导出工程后,编译无误,再增加代码且编译ok,然而待将程序下载到开发板时,却检测不到ST-Link驱动,后面借领了技术人员提供的数据线,才将程序下载到开发板中。增加的代码如下:

int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* Enable the SMPS regulator to improve power efficiency*/
if(HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY) != HAL_OK)
{
Error_Handler();
}
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ICACHE_Init();
/* USER CODE BEGIN 2 */
HAL_Delay(2000);
/* Disable Prefetch Buffer */
__HAL_FLASH_PREFETCH_BUFFER_DISABLE();
/* SLEEP Mode */
/* Suspend Tick increment to prevent wakeup by Systick interrupt. */
/* Otherwise the Systick interrupt will wake up the device within 1ms */
/* (HAL time base). */
HAL_SuspendTick();
/* Enter Sleep Mode , wake up is done once User push-button is
pressed */
HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON,PWR_SLEEPENTRY_WFI);
/* Configure the system clock */
SystemClock_Config();
/* Resume Tick interrupt if disabled prior to STOP mode entry */
HAL_ResumeTick();
/* STOP Mode */
HAL_Delay(1000);
HAL_SuspendTick();
/* Enter STOP 2 mode */
HAL_PWR_EnterSTOPMode(PWR_LOWPOWERMODE_STOP2,PWR_STOPENTRY_WFI);
/* Configure the system clock */
SystemClock_Config();
/* Resume Tick interrupt if disabled prior to STOP mode entry */
HAL_ResumeTick();
/* Standby Mode */
HAL_Delay(1000);
/* Enter Standby mode */
HAL_PWREx_EnableUltraLowPowerMode();
HAL_PWR_EnterSTANDBYMode();
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}

接着根据文档指引,正确连接好“STLINK_V3PWR”硬件后,然后打开“STM32CubeMonitor-Power”工具(注意事需先关闭杀毒软件),结果“STM32CubeMonitor-Power”工具能识别到串口号,说明通讯是正常的,但V3PWR的“USB”指示灯不是绿色,始终打不开供电图标,后面反馈问题给技术人员,他们说是电脑的USB接口供电不支持,幸好他们提供的数据线也是支持TypeC-TypeC的,于是采用TypeC接入到本人电脑中,竟然可以正常打开V3PWR了,旁边小伙伴的电脑TypeA USB不支持供电的,实验一低功耗测试就没法进行。

硬件连线.png

实验的结果如下:

实测结果.jpg

显然与参考的标准值还是有点出入,也不知道是自己电脑的问题还是其它原因。咨询了ST的技术人员,也没排查出问题来。标准参考值如下图:

参考值.png

后面由于时间的原因,就没继续实验二、实验三了,退掉借用的相关板卡与数据线,扫描参加问卷调查,有5位大佬完成顺利完成了三个实验,获得了ST的电脑背包。到此,本次峰会线下实训告一段落,下午场没报上名,因此吃完自助餐就回家了。

上述就是本人参加此次线下实训的详尽过程,有些啰嗦,有点遗憾,但也受益匪浅,期待下期峰会吧,再会!

收藏 评论0 发布时间:2025-5-18 23:57

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版