很多知识点c语言(单片机)
来源:互联网 发布:淘宝假冒品牌处罚 编辑:程序博客网 时间:2024/05/24 06:21
c语言*(volatile unsigned char xdata *) 0x2f5f,这个表示方法是什么意思?
答1:将一个立即数,强制转换一个指针,再以这个指针取出这个地址开始一个字节的内容。具体0x2f5f,是什么,那就要看芯片的数据手册了。比如说,如果A寄存器的地址是0x2f5f,那么,定义了#define A *(volatile unsigned char xdata *) 0x2f5f那么就可能对寄存器A赋值,只要 A = 0xff;就可以了。去看看芯片的数据手册,看下0x2f5f是什么地址空间,才能知道他到底是什么。
答2:这是指一个外部的绝对物理地址,后面的0x2f5f就是它的具体地址,在一些用KEIL编译的程序里面通常这样来指定一个绝对地址。
答3:#define U0RBR (*((volatile unsigned char *) 0xE000C000))这个在单片机里很常见,((volatile unsigned char *) 0xE000C000) 是将0xE000C000强制转换为保存可能随时更新(volatile的作用)无符号字符型数据的地址前面又加了*,是表示指向这个地址里面的值,这与其他普通定义的指针一样了,如char x,y,*p;p=&x;*p=y;y=*p就如同一个变量一样,既可以从这里读出值,也可以给被赋值,这里需要注意的是,这个地址值里的东西是不是既可以读又可以写,这个在datasheet应该有定义,或者看程序中都拿他干什么。#define U0RBR (*((volatile unsigned char *) 0xE000C000)) 这个是宏定义,即UORBR替换(*((volatile unsigned char *) 0xE000C000)),宏定义是为了程序书写方便,因为在程序中可能有好多地方要使用(*((volatile unsigned char *) 0xE000C000)),在用时,总要写这么多东西麻烦。问:0x1000L是什么意思?在常量后加L则认为它是long int型常量
0 0
- 很多知识点c语言(单片机)
- 单片机C语言易错知识点经验笔记
- 单片机C语言易错知识点经验笔记
- c语言知识点(变量)
- 单片机 C语言延时 分析(转载)
- 单片机C语言学习(菜鸟入门)
- 单片机C语言学习
- 单片机C语言下载
- 单片机C语言编程
- 单片机的c语言
- 单片机C语言程序结构
- 单片机C语言
- 单片机C语言
- 单片机C语言模板
- C语言单片机!
- C语言语法&单片机
- 单片机C语言编程
- 单片机c语言
- R语言绘制布林带通道
- Codeforces Round #356 (Div. 2) C. Bear and Prime 100
- Struts拦截器使用
- kali sources.list
- MySQL数据库常用命令
- 很多知识点c语言(单片机)
- android中双击退出程序的帮助类
- 定制椭圆形状
- 使用Servlet+jsp构建MVC体系结构的Web应用
- Different Ways to Add Parentheses 不同的添加括号的方式
- leetcode #83 in cpp
- Crossin先生的微信打飞机游戏(3)
- Struts2的配置
- 让CodeReview成为一种团队习惯