stm 32 sprintf问题

arm杀手 2017-02-24 04:46:16
stm32 使用sprintf函数


void name_creat_txt(char *name,u8 year,u8 mouth,u8 day,u8 hour,u8 min,u8 second )
{
sprintf (name, "0:\%04x%02x%02x%02x%02x%02x.txt", year,mouth,day,hour,min,second);
}

void main()
{
char *text_name;
ReadTime[7]={ox17,0x02,0x21,0x11,0x23,0x20,0x02};
text_name=(u8 *)mymalloc(SRAMEX,1024); //给指针分配外部地址
name_creat_txt( text_name,ReadTime[0],ReadTime[1],ReadTime[2],ReadTimep[3,ReadTime[4],ReadTime[5],ReadTime[6]);
myfree(SRAMEX,text_name);//释放内存

}

这样使用 指针的方式一直不对,当我把name和text_name改为数组格式以后,就可以了,不明白哪里有问题
...全文
774 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
arm杀手 2017-05-12
  • 打赏
  • 举报
回复
自己解决了 char *text_name 必须初始分配地址,要不乱了
Acuity. 2017-02-27
  • 打赏
  • 举报
回复
malloc是从堆上分配内存,如果是裸跑请检查startup_stm32f10x_hd.s启动文件的堆大小设置情况,默认是Heap_Size EQU 0x00000200 (512),这样分配1024内存肯定出错。如果带系统,请查看系统的内存管理设置。
uid123 2017-02-24
  • 打赏
  • 举报
回复
name在HEAD里面是不是有定义??打开前面引用的所有头文件,看看有没有定义的name。

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧