在MDK5的安装路径中:D:\MDK5\ARM\ARMCC\include,可以看到很多C库头文件,在程序中只要包含了相应的头文件,编译器就会自动把相应的代码编译链接进去。
下面介绍在STM32可能会用到的函数:
#include "math.h"
1、 三角函数
double sin(double);正弦
double cos(double);余弦
double tan(double);正切
2、指数与对数
double frexp(double value,int *exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f*2^exp。其中f取值在0.5~1.0范围或者0。
double ldexp(double x,int exp);这个函数刚好跟上面那个frexp函数功能相反,它的返回值是x*2^exp
double modf(double value,double *iptr);拆分value值,返回它的小数部分,iptr指向整数部分。
double log (double); 以e为底的对数
double log10 (double);以10为底的对数
double pow(double x,double y);计算x的y次幂
float powf(float x,float y); 功能与pow一致,只是输入与输出皆为浮点数
double exp (double);求取自然数e的幂
double sqrt (double);开平方
3 、取整
double ceil (double); 取上整,返回不比x小的最小整数
double floor (double); 取下整,返回不比x大的最大整数
4 、绝对值
int abs(int i); 求整型的绝对值
double fabs (double);求实型的绝对值
double cabs(struct complex znum);求复数的绝对值
5 、取整与取余,用/和%可代替
double modf (double,double*); 将参数的整数部分通过指针回传,返回小数部分
double fmod (double,double); 返回两参数相除的余数
#include "stdlib.h"
//返回整数变元num的绝对值
int abs(int num);
//返回长整形num的绝对值。
long labs(long int num);
//把str指向的串转换为双精度浮点值,串中必须含合法的浮点数,否则返回值不确定。
//串中的数可以由有效浮点数中的任何字符结束,如空白符、除句号外的标点符号和E或e之外的字符等。
double atof(const char *str);
//把str指向的串转换为整数(int)值。串中必须含合法整型数,否则返回值无定义。
//串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。
int atoi(const char *str);
//把str指向的串转换为长整数(long int)值。串中必须含合法整型数,否则返回值无定义。
//串中的整数内容可由任何不是该整数的一部分的字符终止,如空白符、标点符号和字符等。
long atol(const char *str);
//产生伪随机数序列,每次它被调用时返回一个0到RAND_MAX间的整数。RAND_MAX值至少是32767。
int rand(void);
//为rand()生成的伪随机数序列设置起点。
void srand(unsigned int seed);
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_40170041/article/details/139468259
|