文档还在更新中,先写测试用到的自己忘掉的东西,加以熟悉,后面会把我写的关于8266模拟spi驱动tft屏的源码抛出,附带解释说明。
sprintf的相关用法。
前提:
我需要把IP和时间全部存到字符串里去,因为我的lcd显示函数的参数为字符串。ip为char类型数组 ,时间为int类型的整数。
实现的原理:
简单理解起来即为,char类型数组转换成字符串,int类型的整数转换成字符串。
sprintf函数的解析:
sprintf 函数打印到字符串中,在完成其他数据类型转换成字符串类型操作中应用广泛。
函数原型:int sprintf( char *buffer, const char *format [, argument] … );前两个参数是固定的,后面的参数是可变的。关于第二个参数的格式输出控制,决定了他的用法独特。sprintf使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。简直太方便了。
测试DEMO:
先完成我自己程序用到的部分:
unsigned char ip[4]={192,168,4,1};unsigned char buf[20]={0};
sprintf(buf,"%d.%d.%d.%d",ip[0],ip[1],ip[2],ip[3]);
printf("buf is :%s\n",buf);
int w=20;
sprintf(buf,"%d",w);
printf("buf is :%s\n",buf);
-》 buf is :192.168.4.1
buf is :20
原本我用的方法是,把IP[0]中的百位十位个位取出来,放在数组里面,一次类推,得到了一个新的数组,里面分别是1,9,2,1,6,8,0,0,4,0,0,1。这样的方法倒是没问题,问题是拆分之后要转换成一个字符串,说实在的难倒我了,换了几种方法都没转换出来,有知道的兄弟可以告诉我一下。