微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STM32原子战舰板内存管理源码

基于STM32原子战舰板内存管理源码

时间:12-01 来源:互联网 点击:

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函数的用法////////////////////////////

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top