问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在单片机编译环境中。。。C指针能直接操作内存地址吗?

发布网友 发布时间:2023-04-11 11:55

我来回答

2个回答

热心网友 时间:2023-09-23 07:18

可以,对地址直接进行操作时单片机环境中非常常见的。比方说硬件控制寄存器的实现就是通过地址映射。

例如:
#define PERIPH_BASE ((u32)0x40000000)
#define APB1PERIPH_BASE PERIPH_BASE
#define TIM2_BASE (APB1PERIPH_BASE + 0x0000)
#define TIM2 ((TIM_TypeDef *) TIM2_BASE)
typedef struct
{
...
vu16 DIER;
...
} TIM_TypeDef;
TIM2->DIER |= 0x0002;
展开就是((TIM_TypeDef *)((u32)0x40000000))->DIER |= 0x0002;
对地址0x40000000进行写,0x40000000是硬件控制器地址。

在你的例子中0x20应该刚好是可读可写的RAM区。

热心网友 时间:2023-09-23 07:19

开始看你的程序,觉得很好玩,所以试了一下,发现结果正如你所说的那样。每一句都是可行的。
但是平常编程很少这样使用,一般是用absacc.h这个头文件对内存直接操作,还有就是一般对这个地址的访问是用间接寻址,所以一般不会对寄存器区有影响

不信你自己下个keilC试试,在project菜单下options for target‘target 1’中listing标签下勾上Assembly code,然后在你的文件夹中有一个.lst文件,里面有你的C,和汇编语言,你就知道它操作的是哪个地址了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
未订阅苹果music自动扣款 分隔符和分页符的区别 提速快是看马力还是扭力 马力大提速快还是扭矩大提速快 体脂秤不准确怎样重新调试 为什么TVB连续剧里面的警察全部是西九龙重案组的? 为什么tvb电视剧中出现的警察经常是“西九龙重案组”的? 单相电表箱哪家公司口碑好? 牛郎织女人物形象 失题(末缺)(李颀)拼音版、注音及读音 简述科学的本质和特点 STM32F103中#define PERIPH_BB_BASE ((u32)0x42000000)是啥地址? AHB1PERIPH_BASE的基址怎么从芯片手册找到啊 请高手解释一下下面程序 求各位高手,当定义#define PERIPH_BASE ((u32)0x40000000),那么(PERIPH_BASE + 0x10000)的结果是什么呢 stm32中APB1PERIPH_BASE是什么意思 x光胸透辐射有多大 三坐标测量平面度如何进行变量计算 海迅达654三坐标怎样测量角度 王者荣耀用什么英雄上王者 李子树和山楂树哪个好 李子树木料贵不贵 梦见到处是玉米种子 梦见跟女朋友一起抓乌龟 鸡腿要放垃圾辣椒吗 辣椒粕算垃圾分类吗 怎样找回原来注册的和密码 求推荐一台戴尔的笔记本电脑,配置i5处理器即可,显卡GTX850类型的,一定要散热性能好的,价位5 鸡蛋羹一般蒸几分钟 鸡蛋羹蒸几分钟 中草药能自己配吗!会吃死人吗 蒸鸡蛋羹要蒸几分钟 玉胞   [yù bāo]什么意思?近义词和反义词是什么?英文翻译是什么? 玉胞的解释 九月生活榨菜鲜肉月饼的热量 一般行政处罚案卷丢失被判刑 请问在ps里打20点的小字印刷出来会虚吗? 我有一款纸箱一个字印刷的时候差个点,蓝色的,请问有什么办法补救???急急急 我想整理点印刷字体装订成简单的小册子或卡片卖。行不行。 摄像头焦距60mm和16mm有什么区别 如何把两张照片p在一起? 海南有哪些三本院校 什么是预备教育 大龄女性该如何备育优生? 备育备装练必体 升学,人生预备教育是什么意思呀? 教育准备是什么意思 如何补充精子备育呢?吃什么好? 关于孕前备孕准备工作 保险公司来人到现场拍照取证了会耍赖吗 保险公司能介入网约车平台取证吗 要打唇钉会不会很疼 啊