|
MCU:LPC2136<br />分散加载文件用的是ZLG的模板<br /><br />我把ZLG给的UART0接收函数加了一个超时判断<br />所以,用指针作为参数,指向的地址存放收到的数据<br /><br />uint8 UART0_GetByte (uint8* rcv_dat)<br />{<br /> uint32 i=0;<br /> uint8 data_tmp;<br /> while(1)<br /> {<br /> if(U0LSR & 0x01)<br /> {<br /> data_tmp = U0RBR; <br /> *rcv_dat = data_tmp;<br /> return OK_RECEIVE;<br /> }<br /> if(i==0xfffff*TIMEOUT)<br /> return ERROR_TIMEOUT;<br /> i++;<br /> }<br /> <br />}<br /><br />然后在另一个函数里调用<br />uint8 interface(void)<br />{<br /> uint8 *receive_data;<br /> ……<br /> while(UART0_GetByte(receive_data)!=OK_RECEIVE);<br /> ……<br /><br />}<br /><br />但是 <br />编译之后调试发现<br />receive_data指向的地址是 E0028000<br />和IOPIN一样,并不在RAM中<br /><br />但是申明用 uint8 receive_data;<br />这时却是正常的,在RAM中<br /><br />请问下,这是什么原因,怎么改?<br />谢谢<br /><br /> |
|