基于STM32原子战舰板内存管理源码
for(offset=memtblsize[memx]-1;offset> if(!mallco_dev.memmap[memx][offset])cmemb++;//连续空内存块数增加,offset从1249-> 一维数组,每个元素对应的实际意义是对应的一个内存块,顺序是offset从1249(高)-> 址,是一个指针变量,第三个形参就是要输出的参数;所以说sprintf函数包含的内容很多,作用很大。 2),sprintf函数的作用是在显示屏中显示相关参数,即向p写入一些内容即Memory Malloc Test%03d”; 结合LCD_ShowString(60,270,200,16,16,p)的显示结果更好理解,即显示P的存储内容即在相应的坐标处“Memory Malloc Test%03d”;” 3),例子: u8 s[8]; char* who = "I"; //将字符“I”赋给char* 类型变量who; char* whom = "STM32"; //将字符串“STM32”赋给char* 类型变量whom; sprintf(s, "%s love %s.", who, whom); //产生:"I love STM32. " 这字符串写到s中 LCD_ShowString(60,250,200,16,16,s); //sprintf(s, "%10.3f", 3.1415626); //产生:" 3.142",浮点型显示 4),sprintf函数一般情况下是用在需要字符显示的场合,比如你要显示一个数字,通常的做法是取出某一位然后加上0x30这个数,这样一位一位来比较麻烦,用sprintf这个函数呢,一次性就给你搞定了 比如你想打印3.1415926这个数值到液晶上显示,通常的做法代码就很多而且乱,有了这个函数呢,直接这样 float PI=3.1415926; u16 strbuffer[10]; sprintf(strbuffer,"PI=:%09d",PI); 然后直接将strbuffer这个数组送去显示即可,或者打印到串口,这样就可以直接字符显示了 注意:sprintf函数必须结合LCD显示函数使用才能有效!并且形参必须定义好合适的数据类型;sprintf()函数的最大作用就是非常方便的在LCD显示屏上显示自己想要的数据类型!参考关于sprintf函数的实验。 3,疑问? a,在51单片机中,如何将sprintf函数包含进51的启动代码中?如果不将sprintf函数包含进51的头文件,显示屏肯定不能用sprintf函数显示数据。 b,在stdio.h中,找到的是int sprintf(char * __restrict /*s*/, const char * __restrict /*format*/, ...) __attribute__((__nonnull__(1,2)));怎么看不到函数内容? sprintf是C语言标准库提供的函数, 包含在stdio.h中, 只要在文件头#include 原型为int sprintf ( char * str, const char * format, ... ); /////////////////////////插补:printf和sprintf函数的用法////////////////////////////
STM32原子战舰板内存管 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)