×
嵌入式 > 技术百科 > 详情

单片机编程使用C库函数

发布时间:2020-06-16 发布时间:
|

1.printf函数


这个非常简单。只要重定向printf函数即可。


这个是STM8L单片机代码,注意:如果是IAR编译器需要开启library-FULL


亲测在msp430,stm32,stm8l上均可使用,将1,2替换成对应单片机的函数即可


int fputc(int ch, FILE *f)//printf

{

USART_SendData8(USART1, (uint8_t) ch);//1

 

while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) {}//2

   

    return ch;

}

2.memset()函数


memset(void *, int, size_t);//IAR环境

*memset  (void *s, char val, int n);//keil环境

这里只讲在单片机中编程中的使用,以上是两种编译环境的memset函数,实现的功能是一样的


第一个参数:指向一个起始地址


第二个参数:任意数值(0~255)value


第三个参数:长度n(从起始地址起连续n个字节)


从起始地址起连续n个字节,全部置为value


我们一般用来进行数组清0,非常方便,比如:


 memset(RevBuffer,0,sizeof(RevBuffer));//清0数组

RevBuffer:字符型数组

3.memcpy函数


void *memcpy(void*dest, const void *src, size_t n);


从源src所指的内存地址的起始位置开始,拷贝n个字节的数据到目标dest所指的内存地址的起始位置中。


char buf[]="123456";

char buf2[5];

memcpy(buf2,buf,3);

printf("%s\r\n",buf2);

 

输出:123

4.strcpy函数


strcpy是一种C语言的标准库函数,strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char*。


原型声明:char *strcpy(char* dest, const char *src);


头文件:#include


功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间


说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。


返回指向dest的指针。


char buf[]="123";

char buf1[5];

strcpy(buf1,buf);

printf("%s\r\n",buf1);

5.atoi函数(注意引用#include


(表示 ascii to integer)是把字符串转换成整型数的一个函数。


int atoi(const char *nptr);


*nptr:把参数 nptr 所指向的字符串转换为一个整数(类型为 int 型)。


#include

#include

 

int main()

{

    int n;

    char *str = "1234567";

    n = atoi(str);

    printf("n=%d\n",n);

    return 0;

 

}






『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
中国国产第三代核电实现并网发电