原创 单片机编程时善用库函数

2006-9-15 13:12 6587 12 13 分类: MCU/ 嵌入式

标准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)


   

PARTNER CONTENT

文章评论6条评论)

登录后参与讨论

mubo_996067292 2006-9-26 13:05

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

用户95612 2006-9-25 16:55

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

用户13739 2006-9-25 14:23

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

用户53076 2006-9-21 22:47

顶!

用户28425 2006-9-21 20:11

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

用户1053025 2006-9-20 10:38

哈,谢博主,并且投票!!!
相关推荐阅读
mubo_996067292 2010-11-07 23:09
继续升级,CTE1.3
新增:rms2vpp <rms value> -- sine signal amplitude convertvpp2rms <vpp value> -- sine signa...
mubo_996067292 2010-10-23 02:10
关于天灾
    胡公,温公,世之英杰。而其享国之日,天灾频现。自胡公七年(西历二千零八年)至于今日,三年之中,凡日蚀二,大地震二,大旱一。    方今之日,中国日强,使夷狄不敢正视,此千秋之功也。而剥其表视其...
mubo_996067292 2010-09-03 00:27
继续升级:mil-mm,db-倍数,m/s-km/h,电阻并联转换计算器
新增:    增加了电阻并联计算。另:   所有的转换和计算,输入数字的时候都不能有数字之外的字符。...
mubo_996067292 2010-08-27 00:47
mil-mm,db-倍数,m/s-km/h转换计算器
几组常用的转换。...
mubo_996067292 2010-08-03 22:59
mm和mil转换
命令行模式,四个命令:help显示帮助信息quit 退出程序mil2mm <mil值>  mil转换为mmmm2mil <mm值>  mm转换为mil 直接找了个朋友在单片机上...
mubo_996067292 2010-03-09 22:31
雨夜弹琴
雨落深圳寒,加班夜归晚。坐闻窗飒飒,发性抚琴弹。...
EE直播间
更多
我要评论
6
12
关闭 站长推荐上一条 /3 下一条