问题描述
- 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] ='';
}
main 函数中如果调用my_itoa函数两次以上,程序就在调试过程进入HardFault_Handler() 错误。网上找了,我怀疑是函数过界问题,求高手教如何处理。
时间: 2024-09-19 09:45:27