硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5301|回复: 8
收起左侧

[HAL] STM32H7的HAL库所有结构体变量做局部变量用时,推荐直接初始化为0,防止不必要麻烦

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116747
QQ
发表于 2018-12-26 11:22:20 | 显示全部楼层 |阅读模式
其实不论是局部变量还是全局变量,推荐都这么干,尤其是外设局部结构体变量,如UART_HandleTypeDef,TIM_HandleTypeDef等

发现HAL库的所有xxxx_Init函数基本都有这个帖子的问题。
http://www.armbbs.cn/forum.php?mod=viewthread&tid=90443




推荐直接养成习惯,不管是全局还是局部变量使用,直接初始化为0

TIM_HandleTypeDef   TimHandle = {0};

回复

使用道具 举报

10

主题

111

回帖

141

积分

初级会员

积分
141
发表于 2018-12-26 16:03:39 | 显示全部楼层
我初始化局部变量都是memset加sizeof。LZ你这种初始化在KEIL和IAR中可以吗?
回复

使用道具 举报

2

主题

94

回帖

100

积分

初级会员

积分
100
发表于 2018-12-26 16:28:44 | 显示全部楼层
现在开始初始变量都赋值为零
回复

使用道具 举报

36

主题

2050

回帖

2158

积分

至尊会员

积分
2158
发表于 2018-12-26 16:59:09 | 显示全部楼层
xy201207 发表于 2018-12-26 16:03
我初始化局部变量都是memset加sizeof。LZ你这种初始化在KEIL和IAR中可以吗?

可以。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

4

主题

141

回帖

153

积分

初级会员

积分
153
QQ
发表于 2018-12-26 17:04:44 | 显示全部楼层
刚用 HAL 库时被这个坑过,初始化死活过不去,现在是不管是不是hal库需要的结构体,只要是局部变量的,定义后全部清零
回复

使用道具 举报

32

主题

297

回帖

393

积分

高级会员

积分
393
发表于 2018-12-26 23:13:31 | 显示全部楼层
记住了,感谢提醒,刚刚转过来,
HAL库不适应啊
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
发表于 2020-11-26 22:01:06 | 显示全部楼层
今天碰到个很奇怪的问题,
IAP程序,32768的容量 已经用了 32348
有个HAL_HCD_MspInit函数内部  只要GPIO_InitTypeDef  GPIO_InitStruct = {0};
程序就异常了,就是启动很慢

不初始化就很正常
放在函数外面,弄成全局变量也正常
----------
堆栈都加了一倍也没用
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116747
QQ
 楼主| 发表于 2020-11-27 01:36:39 | 显示全部楼层
hpxzw_foxmai 发表于 2020-11-26 22:01
今天碰到个很奇怪的问题,
IAP程序,32768的容量 已经用了 32348
有个HAL_HCD_MspInit函数内部  只要GPIO ...

这种奇葩问题,大概率是程序其它地方有问题,影响到了这里。
回复

使用道具 举报

23

主题

336

回帖

405

积分

高级会员

积分
405
发表于 2020-11-27 12:09:59 | 显示全部楼层
eric2013 发表于 2020-11-27 01:36
这种奇葩问题,大概率是程序其它地方有问题,影响到了这里。

我觉得也是,但是就是根据ST的USB升级项目改的,功能比较简单
读U盘,写片内flash。。。
不知道是不是flash快超了会这样。。之前还剩余1、2k的flash的时候挺好的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-5 00:47 , Processed in 0.256223 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表