![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言
文章平均质量分 73
lobmo
这个作者很懒,什么都没留下…
展开
-
CRC校验学习笔记
CRC校验学习笔记在两台设备传输过程中,如果对数据要求较高,需要高的准确性,那么校验是必不可少的。一般用到的校验方式有奇偶校验和CRC校验。假设我们要用单片机和pc之间进行通信,每次数据不能出错,如果出错,那么这一帧数据直接无效,那么用什么方法可以检验其有效性?假设数据为111010(数据段)+(校验位)。下面就上述例子介绍CRC校验:首先发送端要将数据进行打包处理。就上述而言,每次我们...原创 2020-04-10 20:05:03 · 248 阅读 · 0 评论 -
C语言常见面试点
一:C语言存储区划分:c语言分为以下几个区:1:代码区:代码区是只读的,该区域是用来存放程序的代码的,内存由系统管理.存放CPU执行的机器指令。通常代码段是可共享的,这使得需要频繁被执行的程序只需要在内存中拥有一份拷贝即可。代码段也通常是只读的,这样可以防止其他程序意外地修改其指令。另外,代码段还规划了局部数据所申请的内存空间信息。2:静态存储区:该段包含了在程序中明确被初始化的全局变量、静...原创 2019-05-03 23:38:07 · 569 阅读 · 0 评论 -
C语言快速排序算法
排序算法可以说是C语言面试中经常被面试官问到的问题了,常见的排序算法:冒泡排序,选择排序,快速排序。一般情况下就这三个是最可能被问到的。快速排序的思想是从选择一个中间的数作为基数,然后从左向右和从右向左分别遍历。左边扫到大于基数的后停止,右边扫到小于基数的后停止,否则,继续。然后将左右两个数互换,完成第一轮的互换。想要全部做这样的互换,就必须做重复的操作。所以使用递归是最好的方式。下面给出完整代...原创 2019-05-20 14:14:03 · 319 阅读 · 0 评论 -
C语言链表实现
头文件#ifndef _NODE_LIST_H#define _NODE_LIST_H#include<stdio.h>#include<stdlib.h>typedef struct { char id[10]; char name[10]; int age;}Date;typedef struct node{ void *data; ...原创 2019-07-09 15:10:04 · 135 阅读 · 0 评论 -
STM32接收一帧完整数据,加帧头和长度校验,接收任意格式,可变长的字符数据。
相信看我文章的你一定是有这个需要点进来的。stm32的串口每次接收一个字符,当我们做任务的时候,可能需要上下位机之间相互通信。并且通信数据严谨的时候,就需要严格的收发每一帧数据来保证可靠性。本人自己写了一个简单协议,其核心思路如下:先来说说发送协议:为了让数据具有可靠性,我在加了帧头的基础上还加了长度校验。并且啃了好久的printf()的写法,学了c语言可变参函数的写法,为了让发送函数适应所...原创 2019-07-27 12:30:32 · 10721 阅读 · 6 评论