首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >单片机编程使用C库函数

单片机编程使用C库函数

作者头像
知否知否应是绿肥红瘦
发布2025-02-19 15:41:49
发布2025-02-19 15:41:49
27100
代码可运行
举报
文章被收录于专栏:Linux知识Linux知识
运行总次数:0
代码可运行

1.printf函数

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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()函数

代码语言:javascript
代码运行次数:0
运行
复制
memset(void *, int, size_t);//IAR环境
代码语言:javascript
代码运行次数:0
运行
复制
*memset  (void *s, char val, int n);//keil环境

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

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

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

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
 memset(RevBuffer,0,sizeof(RevBuffer));//清0数组
代码语言:javascript
代码运行次数:0
运行
复制
RevBuffer:字符型数组

3.memcpy函数

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

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

代码语言:javascript
代码运行次数:0
运行
复制
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 <string.h> 和 #include <stdio.h>

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

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

返回指向dest的指针

代码语言:javascript
代码运行次数:0
运行
复制
char buf[]="123";
char buf1[5];
strcpy(buf1,buf);
printf("%s\r\n",buf1);

5.atoi函数(注意引用#include <stdlib.h>

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

int atoi(const char *nptr);

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

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    char *str = "1234567";
    n = atoi(str);
    printf("n=%d\n",n);
    return 0;

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档