EDN首页   博客首页

日志档案

发表于 2006-9-15 13:12:59

32

标签: 单片机  库函数  液晶  LCD  

单片机编程时善用库函数

标准C库是个经典的东西,以前总觉得单片机编程的时候用不到,总是自己写一些功能并不强大使用也不太方便的函数。实际上,善于使用C库函数会使编程很方便,

比如,写一个程序里面有让LCD显示字符串,并且显示的内容是字符串和变量夹杂的,比如要显示“page 20”,这个20是变量i的值,这个值会随时改变,显示也要跟着变,平时都是先送出”page “字符串,然后再写一个整数转成字符串的函数,再送到LCD,这样使用的时候就不方便了,而且增加了编程的难度,当然,本着多学习的态度,自己写这些函数是好的,但是使用库函数会减轻你的劳动,并且会让你的主函数很清洁,看了很舒服。这里我们可以使用下面两句来完成:

sprintf(buffer,“page %d“,i);

PrintToLcd(buffer);

这里sprintf是标准输入输出函数,把后面的格式输出内容放到buffer缓冲区,这个buffer是个指针。PrintToUart是自己定义的一个普通的纯字符串输出的函数。

下面还有一些函数值得在编程的时候使用:

字符串库(string.h)
    字符串连接(相加)  char *strcat(char *dest,const char *stc)
   把src连接到dest字符串后面,返回指向dest的指针
    字符串比较  int strcmp(char *str1,char *str2)
   返回值:小于0: str1str2
    字符串拷贝1  char *strcpy(char *dest,const char *src)
   结果把src的内容拷进dest,两个字符串内容相同,返回指向dest的指针
    字符串拷贝2  char *strdup(const char *src)
   src:待拷贝的源字符串,返回值:指向拷贝后的字符串的指针
    字符串倒序  char *strrev(char *s);
   返回指向倒序后字符串的指针
类型转换(math.h; stdlib.h)
   字符串转双精度(类似C++Builder里的StrToDouble)  double atof(char *str)
   字符串转整数(类似StrToInt)  int atoi(char *str)
   字符串转长整型  long atol(char *str)
   浮点数转字符串  char *ecvt(double value,int ndigit,int*dec,int *sign)
                   char *fcvt(double value,int ndigit,int*dec,int *sign)
    输入参数:value: 待转换浮点数,ndigit: 转换后的字符串长度
    输出参数:dec: 小数点位置,sign: 符号
    返回转换后的字符串指针
   整型转字符串  char *itoa(int value,char *string,int radix)
    输入参数:value: 要转换的数,radix: 转换的进制
    输出参数:string: 转换后的字符串
    返回指向string的指针
   长整型转字符串  char *ltoa(long value,char *string,int radix)

   

系统分类: 单片机   |   用户分类: 无分类   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(2878)    回复(7)  

投一票您将和博主都有获奖机会!

最新评论

  • mubo

    2006-9-26 13:05:35

    是,用库函数对空间要求比较高,可能会大大增加你的程序代码,如果是用程序空间很小的单片机做一个空间比较紧张的程序还是慎重用库函数。

  • 大大大大

    2006-9-25 16:55:16

    写得真不错 非常有用 不过楼主怎么不传照片上来啊

  • Jason

    2006-9-25 14:23:20

    有些库函数很慢,使用时要注意

  • bamv

    2006-9-21 20:11:59

    有同感,自己写基本的函数可以做为练习,实际项目要是用库函数比较好

  • hgman

    2006-9-21 22:47:51

    顶!

  • cocappjj

    2006-9-20 10:38:39

    哈,谢博主,并且投票!!!

  • XGR

    2006-11-18 19:34:05

    对其了解后可以用.

    站的高,看的远!