OpenEdv-开源电子网

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

请问(u16*)Buffer和(u16*)Buffer(0)具体有什么区别?

[复制链接]

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
发表于 2014-4-2 15:45:39 | 显示全部楼层 |阅读模式
请问(u16*)Buffer和(u16*)Buffer(0)具体有什么区别?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-4-2 23:25:59 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-3 10:04:44 | 显示全部楼层
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer,SIZE);
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-3 10:05:36 | 显示全部楼层
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer[0],SIZE);
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-3 16:00:20 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer,SIZE);
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer[0],SIZE);
回复 支持 反对

使用道具 举报

13

主题

89

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-3-11
在线时间
5 小时
发表于 2014-4-3 16:32:27 | 显示全部楼层
()和[ ]的区别好大的呀
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-4-3 16:38:54 | 显示全部楼层
回复【5楼】SSSA:
---------------------------------
一样的效果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-4 15:00:13 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
但是我实验的结果是不一样的啊?
第一种情况:LED翻转20次,正常
DJ_Buffer[0]=20;     //led灯翻转次数
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer,1);
第二种情况:LED翻转很多很多次,不正常!
DJ_Buffer[0]=20;
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)DJ_Buffer[0],1);
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-4 15:19:16 | 显示全部楼层
原子哥还有一个问题:我想把 DJ_Buffer[1]写到 FLASH_SAVE_ADDR+2里,该怎么写?
写成:
 DJ_Buffer[1]=30;
STMFLASH_Write(FLASH_SAVE_ADDR+2,(u16*)(DJ_Buffer+2),1);
LED翻转很多很多次不正常。
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-4 15:22:01 | 显示全部楼层
回复【9楼】SSSA:
---------------------------------
这个问题解决了,改成(u16*)(DJ_Buffer+1)就可以了。
回复 支持 反对

使用道具 举报

1

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-3-12
在线时间
9 小时
发表于 2014-4-7 19:38:35 | 显示全部楼层
回复【楼主位】SSSA:
---------------------------------
假设DJ_Buffer是个char型数组
char DJ_Buffer[] = {0xaa,0xbb,0xcc,0xdd,0xee,0xff};
那(u16*)DJ_Buffer应该是将这个数组的首地址(假设为0XFFF0)类型转换为u16*,其原来类型是char *;
而(u16*)DJ_Buffer[0]则是将数组中第一个元素转换为u16*的指针变量,即是指向0xaa的地址。
功夫再高、也怕羊刀
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2014-2-21
在线时间
7 小时
 楼主| 发表于 2014-4-7 23:15:52 | 显示全部楼层
回复【11楼】加速度:
---------------------------------
谢谢!讲的很清楚。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-5-25
在线时间
0 小时
发表于 2014-5-25 23:45:27 | 显示全部楼层
一个是定义16位的整形变量定义,还有一个是返回值为指针形参为强制类型转换的函数声明吧;
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-23 22:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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