calloc函数求解!!

2019-07-16 06:44发布

功能:定义一个公共指针str。用中断方式接收一串数据。接收完后开辟一个暂时的空间,将收到的数据再回送完后,释放内存。
但问题是:我用串口调试一直是“?”求解!!
unsigned char *str=NULL;
void main(void)
{
while(1)
{
str=(unsigned char*)calloc(30, sizeof(unsigned char));
Delay1ms();
if(str!=NULL)
{
        TR1=1;
        REN=1;
        ES=1;
               while(!Exterminal_Edid_Receive_OK);
        ES=0;
SBUF=str[0];
while(!ti);
TI=0;
free(str);
str=NULL;
Exterminal_Edid_Receive_OK=0;
}
else
{
  str=NULL;
SBUF=temp;
while(!TI);
TI=0;
}
}
void UART_SER(void) interrupt 4
{
if(RI)
        {       
                RI=0;
                str[0]=SBUF;
                Exterminal_Edid_Receive_OK=1;
}
我为了测试方便。我写成了开辟30个8位空间,但只接收一个字符然后回传,最后释放空间。但收到的一直是“?”
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。