请选择 进入手机版 | 继续访问电脑版

硬汉嵌入式论坛

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

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

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106338
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};

回复

使用道具 举报

9

主题

103

回帖

130

积分

初级会员

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

使用道具 举报

2

主题

87

回帖

93

积分

初级会员

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

使用道具 举报

36

主题

2038

回帖

2146

积分

至尊会员

积分
2146
发表于 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

主题

139

回帖

151

积分

初级会员

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

使用道具 举报

32

主题

295

回帖

391

积分

高级会员

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

使用道具 举报

19

主题

303

回帖

360

积分

高级会员

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

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

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

19

主题

303

回帖

360

积分

高级会员

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 01:46 , Processed in 0.280965 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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