打印
[ZLG-ARM]

请教申明变量的问题

[复制链接]
1041|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mklwcai|  楼主 | 2007-7-30 12:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MCU:LPC2136
分散加载文件用的是ZLG的模板

我把ZLG给的UART0接收函数加了一个超时判断
所以,用指针作为参数,指向的地址存放收到的数据

uint8 UART0_GetByte (uint8* rcv_dat)
{
    uint32 i=0;
    uint8  data_tmp;
    while(1)
    {
        if(U0LSR & 0x01)
        {
            data_tmp = U0RBR;    
            *rcv_dat = data_tmp;
            return OK_RECEIVE;
        }
        if(i==0xfffff*TIMEOUT)
            return ERROR_TIMEOUT;
        i++;
    }
        
}

然后在另一个函数里调用
uint8 interface(void)
{
    uint8 *receive_data;
    ……
    while(UART0_GetByte(receive_data)!=OK_RECEIVE);
    ……

}

但是 
编译之后调试发现
receive_data指向的地址是 E0028000
和IOPIN一样,并不在RAM中

但是申明用 uint8 receive_data;
这时却是正常的,在RAM中

请问下,这是什么原因,怎么改?
谢谢

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝