资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
一、库函数头文件介绍库函数按不同的类别声明在不同的头文件中,以字母为序分别介绍头文件:ctype.h :字符类型函数eeprom.h :EEPROM 访问函数errno.h :错误处理函数ina90.h :与 IAR C 兼容的头文件interrupt.h :中断处理函数inttypes.h :定义不同的数据类型io.h :包含寄存器定义和其它头文件math.h :数学函数pgmspace.h :与 IAR C 兼容的头文件,内含对Flash 存储器中数据读写函数progmem.h :与 pgmspace.h 头文件相同setjmp.h :长跳转函数sig-avr.h :与 signal.h 相同,旧版头文件,建议不使用signal.h :信号处理函数stdlib.h :标准库函数stdio.h :标准输入输出函数string.h :字符串操作函数timer.h :定时器控制函数twi.h:针对 ATmega163的 I2C 函数wdt.h :看门狗定时器控制函数注: AVRGCC 在使用前应包含头文件,例如include ,这里要包含头文件所在的文件夹 avr,用户自己的头文件可以先复制到avr 文件夹下。二、字符类型处理函数库int isalnum(int c) :如果 c 为字母或数字则返回1,否则返回0。int isalpha(int c):如果 c 为字母则返回1,否则返回0。int isascii(int c) :如果 c 为 ASCII 码则返回 1,否则返回0。int isblank(int c) :如果 c 为空格字符则返回1,否则返回0,可以是 space 键或 tab 键输入的空格字符。int iscntrl(int c) :如果 c 为控制字符则返回1,否则返回0。int isdigit(int c) :如果 c 为数字则返回1,否则返回0。int isgraph(int c):如果 c 为可打印字符 (不包括空格 )则返回 1,否则返回0。int islower(int c):如果 c 为小写字母则返回1,否则返回0。int isprint(int c):如果 c 为可打印字符 (包括空格 )则返回 1,否则返回0。int ispunct(int c):如果 c 为标点符号则返回1,否则返回0。int isspace(int c):如果 c 为空格、 、f、r、t、v之一则返回1,否则返回0。int isupper(int c):如果 c 为大写字母则返回1,否则返回0。int isxdigit(int c) :如果 c 为 16 进制数则返回1,否则返回0。int toascii(int c) :将 c 转换为 7 位 ASCII 字符,成功返回1,否则返回0。int tolower(int c) :将 c 转换为小写字母,成功返回1,否则返回0。int toupper(int c) :将 c 转换为大写字母,成功返回1,否则返回0。三、 AVRGCC 内置 EEPROM 访问函数库void eeprom_read_block(void *buf, unsigned int addr, size_t n):从 EEPROM 的 addr 地址开始,读取n个字节到 buf。int eeprom_is_ready():宏定义, EEPROM 准备好 (EECR =0) 返回非 0,否则返回0。unsigned char eeprom_read_byte (unsigned int addr):从 EEPROM 读取 addr 地址处的字节数据,在以前的版本中为unsigned char eeprom_rb(unsigned int addr),新版也兼容旧版本的函数。unsigned int eeprom_read_word(unsigned int addr):从 EEPROM 读取一个整数,低字节地址addr,高字节地址 (addr+1) ,在以前的版本中为unsigned int eeprom_rw(unsigned int addr),新版本也兼容旧版本的函数。void eeprom_write_byte (unsigned int addr, unsigned char val):向 EEPROM 的 addr 地址处写入字节数据 val,在以前的版本中为void eeprom_wb(unsigned int addr, unsigned char val),新版本也兼容旧版本的函数。_EEPUT(addr, val) eeprom_wb(addr, val):与 IAR C 的兼容函数_EEGET(var, addr) (var) = eeprom_rb(addr):与 IAR C 的兼容函数四、 AVRGCC 定义不同类型的数据在使用前应包含头文件include ,在本头文件中重新进行数据类型定义,将GNU 的数据类型改为符合 ANSI C 的规范。typedef signed char int8_t:8 位有符号数typedef unsigned char uint8_t:8 位无符号数typedef int int16_t:16 位有符号数typedef unsigned int uint16_t:16 位无符号数typedef long int32_t:32 位有符号数typedef unsigned long uint32_t:32 位无符号数typedef long long int64_t:64 位有符号数typedef unsigned long long uint64_t:64 位无符号数Typedef int16_t intptr_t:指针Typedef uint16_t uintptr_t:指针注意:在使用 “ -mint8” 选项时,编译器将把int 类型定义为 8 位五、 AVRGCC 数学函数库在使用前应包含头文件include ,而且 math.h 数学函数库中定义的函数需要libm.a 库文件支持,因此在在连接时增加-lm 参数,或者在在makefile 的 LDFLAGS= 后面追加 -lm 参数。M_PI :常数,为3.141592653589793238462643 M_SQRT2 :常数,为1.4142135623730950488016887 double cos( double x ):返回以弧度形式表示x 的余弦值double fabs( double x ):返回 x 的绝对值。double fmod( double x, double y ):返回 x/y 的余数double modf( double x, double *iptr ):把浮点数分解成整数部分和小数部分,整数部分存放到pint 指向的变量,小数部分应当大于或等于0 而小于 1,并且作为函数返回值返回。double sin( double x ):返回以弧度形式表示x 的正弦值。double sqrt( double x ):返回 x 的平方根double tan( double x ):返回以弧度形式表示x 的正切值。double floor( double x ):返回不大于x 的最大整数。double ceil( doublce x ):返回不小于x 的最小整数。double frexp( double x, int *exp ):把浮点数x 分解成数字部分y(尾数 )和以 2 为底的指数n 两个部分,即x=y*2n ,y 的范围为 0.5 y1,y 值被函数返回,而n 值存放在 pexp 指向的变量中double ldexp( double x, int exp ):返回 x*2exp 。double exp( double x ):返回以 e 为底 x 的幂,即 ex double cosh( double x ):以弧度形式返回x 的双曲余弦值double sinh( double x ):以弧度形式返回x 的双曲正弦值double tanh( double x ):以弧度形式返回x 的双曲正切值double acos( double x ):以弧度形式返回x 的余弦值double asin( double x ):以弧度形式返回x 的正弦值double atan( double x ):以弧度形式返回x 的余弦值double atan2( double x, double y ):返回 y/x 的反正切,其范围在- + 之间double log( double x ):返回 x 的自然对数。double log10( double x ):返回以 10 为底的对数double pow( double x, double y ):返回 xy 值int isnan(double x):如果 x 为非负数 (NAN ,值为 0xffffffff) ,返回 1,否则返回0 int isnaf(double x):如果 x 的值为正溢出 (+INF ,值大于0x7f800000) 和负溢出 (-INF,值小于 0xff800000)则返回 0,否则返回1 double strtod( const char *s, char *endptr ):将 ASCII 字符串转换为double 数double square( double x ):返回 x 的平方根double inverse( double x ):返回 1/x 六、 AVRGCC 字符串操作函数库在使用前应包含头文件include void * memccpy (void *dest,const void *src,int val,size_t len):从 scr 复制不超过len 个字节到 dest,在复制的过程中如果存在val,则停止复制并返回,如果不存在val,则复制len 个字符。void * memchr(const void *src,int val,size_t len):在字符串 src 中搜索 len 个字节长度以寻找与val 相同的字符,如果成功返回匹配字符的地址指针,否则返回NULL int memcmp(const void *s1,const void *s2,size_t len):对字符串s1 和 s2 的前 len 个字符进行比较,如果相同返回0,如果 s1 中字符串大于s2 中字符串,则返回大于0 的值,如果s1 中字符串小于s2 中字符串,则返回小于0 的值。void * memcpy(void *dest,const void *src,size_t len):拷贝 src 所指的对象中拷贝len 个字符至dest 所指的对象中,函数返回dest 的值。void * memmove(void *dest,const void *src,size_t len):拷贝 src 中 len 个字符至 dest ,其它与 memcpy基本相同,但拷贝区可以重迭,在拷贝过程中使用了个长度为len 的临时数组。void * memset(void *dest,int val,size_t len):在 dest 中从开始位置填充len 个字节的val,它返回 dest int strcasecmp(const char *s1,const char *s2):比较两个字符串,如果相同返回0,如果 s1 中字符串大于s2 中字符串,则返回大于0 的值,如果 s1 中字符串小于s2 中字符串,则返回小于0 的值。char * strcat(char *dest,const char *src):将 src 所指向的字符串 (包括终止字符串的空字符)复制到 dest 所指向的数组的末尾 ,并且 src 所向指向的字符串的初始字符将覆盖dest 末尾的空字符 ,函数返回 dest 的值。char *strchr(const
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号