OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3263|回复: 6

STM32库函数版本在源文件中定义的结构体类型全局变量无法访问其成员

[复制链接]

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-4-13
在线时间
12 小时
发表于 2020-4-20 16:48:15 | 显示全部楼层 |阅读模式
问题描述:
我用STM32cubeMX生成基于STM32F103ZET6芯片的CAN通信模板,发现生成的can.c中有一个“CAN_HandleTypeDef hcan;”的全局变量,我因为误操作想访问hcan的成员,为什么在函数“{}”之外无法访问结构体的成员,只能在某个函数内部访问。

定义的全局变量在函数之外无法访问成员

定义的全局变量在函数之外无法访问成员
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-20 17:43:08 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

172

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3142
金钱
3142
注册时间
2014-11-29
在线时间
183 小时
发表于 2020-4-20 19:40:34 | 显示全部楼层
路过………………
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-4-13
在线时间
12 小时
 楼主| 发表于 2020-4-21 08:40:37 | 显示全部楼层

我MDK和IAR都试过了,无法在定义了结构体类型变量的下一行使用这个变量,也就更不能访问其成员了。只能在后方某个函数内部使用
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-4-13
在线时间
12 小时
 楼主| 发表于 2020-4-21 08:43:01 | 显示全部楼层
会不会是软件决定的,就不允许在函数之外使用结构体类型全局变量。不过遇到过定义结构体类型全局变量是直接用“ = {0};”来初始化
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-4-13
在线时间
12 小时
 楼主| 发表于 2020-4-21 08:45:18 | 显示全部楼层
IAR, keil MDK都用过了。无法在定义完结构体类型全局变量的下一行直接使用该变量,更无法访问其成员。
回复 支持 反对

使用道具 举报

7

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
317
金钱
317
注册时间
2017-9-16
在线时间
80 小时
发表于 2020-4-24 21:17:10 来自手机 | 显示全部楼层
我觉得你需要了解一下结构体的初始化行为,另外,在函数外部修改结构体有什么意义吗?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 02:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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