首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

版主及各位大侠,请教一个与指针有关的问题.

版主及各位大侠,请教一个与指针有关的问题.

大家好,小弟现在在用UF32做USB和程序.现有一个问题


UF32的SETUP包数据缓冲区与本地缓冲区0,1在头文件中都没有定义,我按照它们的地址进行读取,我现在的方法是这样的:


比如我要读寄存器地址从0X0338开始的SETUP的数据接收缓冲区内容


方法1


uchar **USTB;  //定义一个指针变量


uchar Setup_data[8];//定义一个存放SETUP包数据的数组,共8字节


*USTB=(uchar *)0X0038//把0x0038赋给USTB指针变量,0X0038是由0X0338-0X0300所得,因为指针变量是字符型,所以只能这样写。


uchar i;


for(i=0;i<8;i++)


{Setup_data=*(*USTB+0x0300);(*USTB)++;}//把SETUP数据接收缓冲区的内容读到Setup_data数组内


方法2:


uchar Setup_data[8] @0x0338;//数组首地址定位在0X0338


//在发现有数据接收到时,直接读Setup_data中的内容。


因其RAM区是从0x1200 TO 0x1FFF;我不知这样能不能读到我要的数据。


由于USB程序才开始做,不知方法2对不对,我认为方法1是可行。请版主及各位大侠指教一下,谢谢。


 




 


 

可以自己按照UF32头文件中其他寄存器的方法定义USTB寄存器

比如volatile byte USTB @(REG_BASE + 0x00000038);

这样比较直观,也方便以后开发
试试看好了。
海纳百川  有容乃大
返回列表