嵌入式C语言
1、功能性代码块总结;
2、常用数据结构模板;
3、C语言应用技巧。
liefyuan
一招鲜吃变天!
展开
-
C语言--内存四区、野指针以及堆栈的区别
目录C语言内存分区C语言内存四区:代码区、数据区、栈区、堆区动态内存的申请和释放malloc工作机制:关于野指针堆和栈的区别1.申请方式2.申请后的系统响应3.申请大小的限制。4.申请速度的限制5.堆和栈中的存储内容https://www.cnblogs.com/still-smile/p/11646090.htmlC语言内存分区C语言内存四区:代码区、数据区、栈区、堆区1.代码区(.text):代码区中主要存放程序中的代码(二进制),属性是只读。2.数据区(静态存储区):主要包括静态全局原创 2020-11-25 22:17:40 · 339 阅读 · 0 评论 -
嵌入式--热敏电阻的应用
概念NTC :负温度系数热敏电阻器,在温度越高时电阻值越低PTC :正温度系数热敏电阻器,在温度越高时电阻值越大 NTC的初始电阻大,因此对电流的阻碍作用就更大,可以有效地阻挡住尖峰电流,当电路趋于稳定时,NTC电阻就逐渐变小,从而保护电路。 PTC与NTC恰恰相反,在稳定的电路中,PTC相当于导线,当遇到一个临时的脉冲信号时,PTC阻值急剧增大,电路相当于开路;当脉冲信号离开,电流变...原创 2020-02-25 19:01:20 · 1130 阅读 · 0 评论 -
10种常用的软件滤波方法及示例程序
一、限幅滤波法A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点:无法抑制那种周期性的干扰平滑度差二、中位值滤波法A、方法:连续采样N次(N取奇数)把N次采样值...原创 2020-02-19 00:10:22 · 1667 阅读 · 0 评论 -
嵌入式单片机应用开发--I2C开发实践
IIC驱动的实现简介 IIC驱动可以有两种方法实现阻塞式(等待型)非阻塞式(中断型)阻塞型驱动 需要打开:I2C外设中断开关 一般包含以下函数接口:初始I2C外设:void i2c_init(void);去初始I2C外设:void i2c_uninit(void);I2C开始信号:void i2c_start(void);I2C停止信号:void i2c_sto...原创 2019-11-05 09:03:54 · 645 阅读 · 0 评论 -
#define宏的高级用法
一 、宏的定义与撤销 #普通宏定义 #define PI 3.14 //编译阶段替换掉宏 #define T1 3+4 //容易产生歧义 #define T2 (3+4) //添加括号后,语义清楚 float r = 1.0; float area = PI * r * r; int a = 2* T1 ...转载 2019-10-18 14:35:00 · 1383 阅读 · 0 评论 -
嵌入式C语言--指针与字符串
使用指针这一工具来操作字符串。定义字符串变量的初始化方法char *strptr = "liefyuan";char strarray1[] = "liefyuan";char strarray2[8] = "liefyuan";char strarray3[8] = {'l', 'i', 'e', 'f', 'y', 'u', 'a', 'n'};...原创 2018-10-03 01:58:25 · 647 阅读 · 0 评论 -
C语言--字符串操作函数及其使用
strcpy函数名: strcpy 功 能: 拷贝一个字符串到另一个 声 明: char *strcpy(char *dst, const char *src); 程序实现:char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL)) return NU...原创 2018-07-14 12:15:07 · 522 阅读 · 0 评论 -
C语言--字符串拷贝、字符串查找、字符串比较、字符串截取
在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。一、字符串拷贝1、memcpy2、strcpy区别二、字符串查找三、字符串比较四、字符串截取1、一种简单而又机智的方法–strncpy strncpy函数是拷贝N个字符到另一个字符数组中的库函数。利用它的性质可以达到截取字符串的目的: 首先:从源串中拷贝3个字符到终串中去(不能拷贝4个,否则会出现乱码!)...原创 2018-09-27 01:11:40 · 55016 阅读 · 4 评论 -
C语言--十六进制数组转换为字符串、十六进制字符数组串口发送
首先,我们会遇到这么多种的“十六进制的表达字符串”:char *str1 = "FF FF 12 FE EE 00 2F 09 3D 22 00 FF";char *str2 = "FFFF12FEEE002F093D2200FF";char *str3 = "0xFF 0xFF 0x12 0xFE 0xEE 0x00 0x2F 0x09 0x3D 0x22 0x00 0xFF";...原创 2018-04-13 19:51:56 · 10333 阅读 · 0 评论 -
C语言--十六进制之理解(一)
十六进制typedef unsigned char uint8;void hex2str(uint8* dest_addr){ printf("十六进制显示:%X\n", dest_addr); // 0XFE printf("十进制显示:%d\n", dest_addr); // 254 printf("左移四位--显示高四位的十六进制:%X\n", (i...原创 2018-04-21 10:54:18 · 3872 阅读 · 0 评论 -
C语言--CJSON的使用
源码的下载地址:https://sourceforge.net/projects/cjson/基本知识typedef struct cJSON { struct cJSON *next, *prev; struct cJSON *child; int type; char *valuestring; ...原创 2018-04-23 10:51:10 · 1739 阅读 · 0 评论 -
C语言--工具函数(一)--字符数组中插入字符串
一、指定位置插入一个字符#include "stdafx.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 100char query[] = "insert into babyData values(,'yuanlifu',37.5,0,22,0,55,0,10,0,12,0,23,0,now());";voi转载 2017-04-24 23:59:56 · 11935 阅读 · 0 评论 -
C语言--字符串操作函数
参考博客:http://www.jb51.net/article/37410.htm一、字符串操作strcpy(p, p1) 复制字符串strncpy(p, p1, n) 复制指定长度字符串strcat(p, p1) 附加字符串strncat(p, p1, n) 附加指定长度字符串strlen(p) 取字符串长度strcmp(p, p1) 比较字符串strcasecmp忽略大小写比较字原创 2017-04-30 10:27:31 · 444 阅读 · 0 评论 -
C语言--格式化输入/输出函数(printf/scanf,fprintf/fscanf,sprintf,sscanf)
1、printf/scanf函数说明printf()将输出按指定格式放置在标准输出流stdout上,函数声明如下:int printf(const char *,...);scanf()可以从标准的输入流stdin中按指定的格式读取数据,函数声明如下:int scanf(const char *,...);printf()函数和scanf()函数均为可变参数函数,printf()函数返回值为输出的信原创 2017-05-01 01:05:20 · 2642 阅读 · 0 评论 -
C语言--函数指针学习
事件机制函数回调函数无参数:#include <stdio.h>void hello(){ printf("Hello World\n");}int main(){ void(*fp)() = &hello; fp(); return 0;}输出Hello World函数带参数:#include "stdio"void hello(int i,int b,ch原创 2017-05-07 11:32:58 · 605 阅读 · 0 评论 -
C语言--无类型指针
简单的小例子:#include <stdio.h>int main(){ void *data = "Hello World";//一个无类型指针代替所有的类型,这里是存储字符型数据 printf("%s\n",data);//将其输出 return 0;}下面是无类型指针,访问是一个字节一个字节的访问的。#include <stdio.h>#include <stdlib.原创 2017-05-07 11:52:19 · 4154 阅读 · 1 评论