OpenEdv-开源电子网

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

求教:原子老大: STM32 怎么使用 C 语言 取地址 运算符 &?

[复制链接]

80

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
749
金钱
749
注册时间
2014-9-30
在线时间
129 小时
发表于 2021-8-8 13:35:20 | 显示全部楼层 |阅读模式
1金钱
求教:原子老大: STM32 怎么使用 C 语言 取地址 运算符 &
。网上的例子。。。 。。。
1 #include <stdio.h>
  2
  3 int *local_address(void)
  4 {
  5         int num;
  6         printf("Sub function address: %p\n", &num);
  7         return &num;
  8 }
  9
结果:(基于Linux系统)Sub function address: 0x7ffec3c04294
。上面的 & 确确实实 取得了 变量 num 的地址 。
我在STM32 中做了 四个变量 Ram_0c ... 4c
QQQQ.png

PPPP.png
求教:原子老大:怎样才能在STM32 程序中 取得 全局变量的 地址?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

80

主题

537

帖子

0

精华

高级会员

Rank: 4

积分
749
金钱
749
注册时间
2014-9-30
在线时间
129 小时
 楼主| 发表于 2021-8-8 13:46:47 | 显示全部楼层
STM32 中  一个地址 不就是 一个32位数字么 !??

“uint32_t *”类型的值不能分配给“uint32_t”类型的实体 ?

取得地址(32位数) 赋值给 32位的 变量 —— 没什么不对吧!





回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4105
金钱
4105
注册时间
2018-8-14
在线时间
696 小时
发表于 2021-8-8 17:40:22 | 显示全部楼层
Ram_1c = Ram_0C + (uint32_t)&Ram_3C;
下面的一条也同样的改
回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4309
金钱
4309
注册时间
2019-9-4
在线时间
896 小时
发表于 2021-8-9 10:39:15 | 显示全部楼层
caosix 发表于 2021-8-8 13:46
STM32 中  一个地址 不就是 一个32位数字么 !??

“uint32_t *”类型的值不能分配给“uint32_ ...

理论上32位的值确实能存到32位的变量中,但是编译器不是看这个的,他是看类型的,他一看你一个是指针变量,一个是32位变量,就不给你存。你可以强转一下试试
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 05:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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