|
| 那就是C51用@Ri(i=0,1)指令冒充指针,这个指令无法访问SFR。 |
|
特殊功能寄存器是开启其他用途的,有的是io口大电流强拉功能,有的是开启扩展大ram,怎么可能随便写 数据进去呢,这些硬件结构不了解怎么玩编程 |
angmall 发表于 2025-9-27 11:10 谢谢, 仔细查了一下资料。sfr没有间址访问指令。想动态直接访问sfr不容易做到。 |
|
此型号较老,大部分特殊功能寄存器地址都是空白不可写。 具体把源码粘贴完整才能知道是什么问题造成的。 |
| 看汇编呗!你也是研究了好多年ARM汇编的烈士,看51汇编还不是小菜一碟? |
| c语言指针方式访问不了特殊功能寄存器。【已解决】 |
|
[color=oklch(0.3039 0.04 213.68)][backcolor=oklch(0.9902 0.004 106.47)]你的现象和疑惑主要来自以下几点8051 C的“data/volatile/特殊功能寄存器指针”混用特点和陷阱: 1. data修饰符和data空间的指针
2. volatile修饰作用
3. 写SFR的正确方式与陷阱
4. 你的问题总结建议
总结
8051 data/xdata 指针和SFR的本质
volatile的实际作用
实用建议
总结
|
| 不太懂,就是为了学习指针操作才这么搞的吗?另外哪位前辈给说说为何在形参中使用volatile? |