专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)这句话的具体作用是什么啊
2019-08-18 19:04
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
6086
18
1329
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)这句话的具体作用是什么啊
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
cdshkf
1楼-- · 2019-08-18 20:02
精彩回答 2 元偷偷看……
加载中...
Admin
2楼-- · 2019-08-18 22:28
回复【3楼】 ping1185279685 :
---------------------------------
1. GPIOA 他要的是结构体指针类型,不是结构体类型。所以要加*
2. 第二个,就是c语言基础了:
引用如下:
结构(struct)
结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。
结构中可以使用不同的数据类型。
1. 结构说明和结构变量定义
在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它
类型的变量一样, 在使用结构变量时要先对其定义。
定义结构变量的一般格式为:
struct 结构名 [mw_shl_code=c,true] struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; [/mw_shl_code]
} 结构变量;
结构名是结构的标识符不是变量名。
类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和
无值型)。
构成结构的每一个类型变量称为结构成员, 它象数组的元素一样, 但数组中
元素是以下标来访问的, 而结构是按变量名字来访问成员的。
下面举一个例子来说明怎样定义结构变量。
[mw_shl_code=c,true] struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } person; [/mw_shl_code]
这个例子定义了一个结构名为string的结构变量person, 如果省略变量名
person, 则变成对结构的说明。用已说明的结构名也可定义结构变量。这样定义
时上例变成:
[mw_shl_code=c,true] struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; }; struct string person; [/mw_shl_code]
如果需要定义多个具有相同形式的结构变量时用这种方法比较方便, 它先作
结构说明, 再用结构名来定义变量。
例如:
struct string Tianyr, Liuqi, ...;
如果省略结构名, 则称之为无名结构, 这种情况常常出现在函数内部, 用这
种结构时前面的例子变成:
[mw_shl_code=c,true] struct { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } Tianyr, Liuqi; [/mw_shl_code]
加载中...
cdshkf
3楼-- · 2019-08-19 00:53
1、#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)这句话我给你简单翻译一下:GPIOA首先是一个指向地址GPIOA_BASE的指针,指针类型为一个GPIO_TypeDef类型的结构体,也就是说GPIOA指向的结构体第一个成员为GPIOA的第一个寄存器,而这第一个寄存器的地址偏移一般是0,也就是说第一个寄存器的地址就是GPIOA_BASE,第二个寄存器地址为GPIOA_BASE+4个字节,以此类推。
2、不能把*号去掉,这是嵌入式C语言中定义指向固定地址指针的严格格式,比如我想在SRAM的地址0x2000FFF0处定义一个指针变量,就可以如下:
#define dat (unsigned char *)0x2000FFF0;(*号不能少)
*dat=0;
3、你所说的ss不是指针。
加载中...
ping1185279685
4楼-- · 2019-08-19 02:40
回复【2楼】cdshkf:
---------------------------------
你说 GPIOA定义成一个基地址为GPIOA_BASE 的地址指针 , 这里的地址指针 我理解为地址的地址....为什么不定义成#define GPIOA ((GPIO_TypeDef ) GPIOA_BASE)去掉*号啊??另外,c语言中,struct { int a;}ss;这里的ss是指针么???谢谢了
加载中...
Admin
5楼-- · 2019-08-19 04:16
回复【5楼】cdshkf:
---------------------------------
3.ss是结构体变量,不是指针。
加载中...
cdshkf
6楼-- · 2019-08-19 05:41
精彩回答 2 元偷偷看……
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
---------------------------------
1. GPIOA 他要的是结构体指针类型,不是结构体类型。所以要加*
2. 第二个,就是c语言基础了:
引用如下:
结构(struct)
结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。
结构中可以使用不同的数据类型。
1. 结构说明和结构变量定义
在Turbo C中, 结构也是一种数据类型, 可以使用结构变量, 因此, 象其它
类型的变量一样, 在使用结构变量时要先对其定义。
定义结构变量的一般格式为:
struct 结构名 [mw_shl_code=c,true] struct 结构名 { 类型 变量名; 类型 变量名; ... } 结构变量; [/mw_shl_code]
} 结构变量;
结构名是结构的标识符不是变量名。
类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和
无值型)。
构成结构的每一个类型变量称为结构成员, 它象数组的元素一样, 但数组中
元素是以下标来访问的, 而结构是按变量名字来访问成员的。
下面举一个例子来说明怎样定义结构变量。
[mw_shl_code=c,true] struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } person; [/mw_shl_code]
这个例子定义了一个结构名为string的结构变量person, 如果省略变量名
person, 则变成对结构的说明。用已说明的结构名也可定义结构变量。这样定义
时上例变成:
[mw_shl_code=c,true] struct string { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; }; struct string person; [/mw_shl_code]
如果需要定义多个具有相同形式的结构变量时用这种方法比较方便, 它先作
结构说明, 再用结构名来定义变量。
例如:
struct string Tianyr, Liuqi, ...;
如果省略结构名, 则称之为无名结构, 这种情况常常出现在函数内部, 用这
种结构时前面的例子变成:
[mw_shl_code=c,true] struct { char name[8]; int age; char sex[2]; char depart[20]; float wage1, wage2, wage3, wage4, wage5; } Tianyr, Liuqi; [/mw_shl_code]
2、不能把*号去掉,这是嵌入式C语言中定义指向固定地址指针的严格格式,比如我想在SRAM的地址0x2000FFF0处定义一个指针变量,就可以如下:
#define dat (unsigned char *)0x2000FFF0;(*号不能少)
*dat=0;
3、你所说的ss不是指针。
---------------------------------
你说 GPIOA定义成一个基地址为GPIOA_BASE 的地址指针 , 这里的地址指针 我理解为地址的地址....为什么不定义成#define GPIOA ((GPIO_TypeDef ) GPIOA_BASE)去掉*号啊??另外,c语言中,struct { int a;}ss;这里的ss是指针么???谢谢了
---------------------------------
3.ss是结构体变量,不是指针。
一周热门 更多>