2 a195538248 a195538248 于 2014.06.03 16:38 提问

keil 调用my_itoa多次后,程序自动HardFault_Handler 错误

代码如下:
int main(void)
{
struct tm time;
uint8_t year[256],mon[256],mday[256],hour[256], min[256],sec[256];

time = Time_GetCalendarTime();//(获得日历时间)

my_itoa(time.tm_year,year,10);

my_itoa(time.tm_mday,mday,10);
my_itoa(time.tm_hour,hour,10);
// my_itoa(time.tm_min,min,10);
// my_itoa(time.tm_sec,sec,10);

}

void my_itoa(int value,uint8_t *string,int radix)//整型转字符串
{

int i=0,j=0;
char tmp[256];

memset(tmp,0,256);

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

{

tmp[i]=(value%radix)+'0';

value=value/radix;

if(value==0)

break;

}

for(;i>=0;i--)  
{
        string[j] = tmp[i]; 
j++;
    }           
string[j] ='\0';  

}

main 函数中如果调用my_itoa函数两次以上,程序就在调试过程进入HardFault_Handler() 错误。网上找了,我怀疑是函数过界问题,求高手教如何处理。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!